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_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
230 return NDR_ERR_SUCCESS;
233 static enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
236 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
238 return NDR_ERR_SUCCESS;
241 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
243 ndr_print_uint32(ndr, name, r);
245 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
246 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
247 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
248 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
249 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
250 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
259 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
260 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
273 static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
276 return NDR_ERR_SUCCESS;
279 static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
282 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
284 return NDR_ERR_SUCCESS;
287 _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
289 ndr_print_uint32(ndr, name, r);
291 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
292 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
293 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
294 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
295 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
296 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
297 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
298 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
299 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
300 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
301 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
302 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
303 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
307 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
309 if (ndr_flags & NDR_SCALARS) {
310 NDR_CHECK(ndr_push_align(ndr, 4));
312 uint32_t _flags_save_string = ndr->flags;
313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
314 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
315 ndr->flags = _flags_save_string;
318 uint32_t _flags_save_string = ndr->flags;
319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
320 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
321 ndr->flags = _flags_save_string;
323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
326 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
336 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
338 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
341 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
342 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
345 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
346 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
351 if (ndr_flags & NDR_BUFFERS) {
353 uint32_t _flags_save_string = ndr->flags;
354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
355 if (r->printername) {
356 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
357 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
359 ndr->flags = _flags_save_string;
362 uint32_t _flags_save_string = ndr->flags;
363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
365 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
366 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
368 ndr->flags = _flags_save_string;
371 return NDR_ERR_SUCCESS;
374 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
376 uint32_t _ptr_printername;
377 TALLOC_CTX *_mem_save_printername_0;
378 uint32_t _ptr_servername;
379 TALLOC_CTX *_mem_save_servername_0;
380 if (ndr_flags & NDR_SCALARS) {
381 NDR_CHECK(ndr_pull_align(ndr, 4));
383 uint32_t _flags_save_string = ndr->flags;
384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
386 if (_ptr_printername) {
387 NDR_PULL_ALLOC(ndr, r->printername);
388 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
390 r->printername = NULL;
392 ndr->flags = _flags_save_string;
395 uint32_t _flags_save_string = ndr->flags;
396 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
397 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
398 if (_ptr_servername) {
399 NDR_PULL_ALLOC(ndr, r->servername);
400 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
402 r->servername = NULL;
404 ndr->flags = _flags_save_string;
406 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
407 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
408 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
409 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
419 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
421 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
424 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
425 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
428 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
429 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
434 if (ndr_flags & NDR_BUFFERS) {
436 uint32_t _flags_save_string = ndr->flags;
437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
438 if (r->printername) {
439 uint32_t _relative_save_offset;
440 _relative_save_offset = ndr->offset;
441 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
442 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
443 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
444 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
446 ndr->offset = _relative_save_offset;
448 ndr->flags = _flags_save_string;
451 uint32_t _flags_save_string = ndr->flags;
452 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
454 uint32_t _relative_save_offset;
455 _relative_save_offset = ndr->offset;
456 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
457 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
458 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
459 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
461 ndr->offset = _relative_save_offset;
463 ndr->flags = _flags_save_string;
466 return NDR_ERR_SUCCESS;
469 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
471 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
473 ndr_print_ptr(ndr, "printername", r->printername);
475 if (r->printername) {
476 ndr_print_string(ndr, "printername", r->printername);
479 ndr_print_ptr(ndr, "servername", r->servername);
482 ndr_print_string(ndr, "servername", r->servername);
485 ndr_print_uint32(ndr, "cjobs", r->cjobs);
486 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
487 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
488 ndr_print_spoolss_Time(ndr, "time", &r->time);
489 ndr_print_uint32(ndr, "global_counter", r->global_counter);
490 ndr_print_uint32(ndr, "total_pages", r->total_pages);
491 ndr_print_uint32(ndr, "version", r->version);
492 ndr_print_uint32(ndr, "free_build", r->free_build);
493 ndr_print_uint32(ndr, "spooling", r->spooling);
494 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
495 ndr_print_uint32(ndr, "session_counter", r->session_counter);
496 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
497 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
498 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
499 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
500 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
501 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
502 ndr_print_uint32(ndr, "change_id", r->change_id);
503 ndr_print_WERROR(ndr, "last_error", r->last_error);
504 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
505 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
506 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
507 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
508 ndr_print_uint16(ndr, "processor_level", r->processor_level);
509 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
510 ndr_print_uint32(ndr, "reserved2", r->reserved2);
511 ndr_print_uint32(ndr, "reserved3", r->reserved3);
515 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, struct smb_iconv_convenience *ic, int flags)
517 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0, ic);
520 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
523 return NDR_ERR_SUCCESS;
526 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
531 return NDR_ERR_SUCCESS;
534 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
536 ndr_print_uint32(ndr, name, r);
538 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
539 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
540 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
541 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
542 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
543 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
544 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
545 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
546 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
547 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
548 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
549 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
561 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
562 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
563 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
564 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
565 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
569 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
571 if (ndr_flags & NDR_SCALARS) {
572 NDR_CHECK(ndr_push_align(ndr, 4));
573 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
574 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->specversion));
575 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
576 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
577 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
578 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
579 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->orientation));
580 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->papersize));
581 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
582 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
583 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
584 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
585 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->defaultsource));
586 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->printquality));
587 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->color));
588 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->duplex));
589 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
590 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ttoption));
591 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->collate));
592 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
593 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayflags));
598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmmethod));
600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmintent));
601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->mediatype));
602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dithertype));
603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
608 uint32_t _flags_save_DATA_BLOB = ndr->flags;
609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
611 struct ndr_push *_ndr_driverextra_data;
612 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
613 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
614 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
616 ndr->flags = _flags_save_DATA_BLOB;
619 if (ndr_flags & NDR_BUFFERS) {
621 return NDR_ERR_SUCCESS;
624 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
626 if (ndr_flags & NDR_SCALARS) {
627 NDR_CHECK(ndr_pull_align(ndr, 4));
628 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
629 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->specversion));
630 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
631 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
632 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
633 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
634 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->orientation));
635 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->papersize));
636 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
637 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
638 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
639 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
640 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->defaultsource));
641 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->printquality));
642 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->color));
643 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->duplex));
644 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
645 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ttoption));
646 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->collate));
647 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
648 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
649 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
651 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayflags));
653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
654 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmmethod));
655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmintent));
656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mediatype));
657 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dithertype));
658 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
659 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
660 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
661 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
663 uint32_t _flags_save_DATA_BLOB = ndr->flags;
664 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
666 struct ndr_pull *_ndr_driverextra_data;
667 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
668 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
669 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
671 ndr->flags = _flags_save_DATA_BLOB;
674 if (ndr_flags & NDR_BUFFERS) {
676 return NDR_ERR_SUCCESS;
679 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
681 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
683 ndr_print_string(ndr, "devicename", r->devicename);
684 ndr_print_uint16(ndr, "specversion", r->specversion);
685 ndr_print_uint16(ndr, "driverversion", r->driverversion);
686 ndr_print_uint16(ndr, "size", r->size);
687 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
688 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
689 ndr_print_uint16(ndr, "orientation", r->orientation);
690 ndr_print_uint16(ndr, "papersize", r->papersize);
691 ndr_print_uint16(ndr, "paperlength", r->paperlength);
692 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
693 ndr_print_uint16(ndr, "scale", r->scale);
694 ndr_print_uint16(ndr, "copies", r->copies);
695 ndr_print_uint16(ndr, "defaultsource", r->defaultsource);
696 ndr_print_uint16(ndr, "printquality", r->printquality);
697 ndr_print_uint16(ndr, "color", r->color);
698 ndr_print_uint16(ndr, "duplex", r->duplex);
699 ndr_print_uint16(ndr, "yresolution", r->yresolution);
700 ndr_print_uint16(ndr, "ttoption", r->ttoption);
701 ndr_print_uint16(ndr, "collate", r->collate);
702 ndr_print_string(ndr, "formname", r->formname);
703 ndr_print_uint16(ndr, "logpixels", r->logpixels);
704 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
705 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
706 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
707 ndr_print_uint32(ndr, "displayflags", r->displayflags);
708 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
709 ndr_print_uint32(ndr, "icmmethod", r->icmmethod);
710 ndr_print_uint32(ndr, "icmintent", r->icmintent);
711 ndr_print_uint32(ndr, "mediatype", r->mediatype);
712 ndr_print_uint32(ndr, "dithertype", r->dithertype);
713 ndr_print_uint32(ndr, "reserved1", r->reserved1);
714 ndr_print_uint32(ndr, "reserved2", r->reserved2);
715 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
716 ndr_print_uint32(ndr, "panningheight", r->panningheight);
717 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
721 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
723 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
726 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
729 return NDR_ERR_SUCCESS;
732 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
735 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
737 return NDR_ERR_SUCCESS;
740 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
742 ndr_print_uint32(ndr, name, r);
744 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
745 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
746 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
747 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
748 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
749 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
750 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
751 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
752 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
753 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
754 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
755 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
756 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
757 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
758 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
759 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
760 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
761 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
762 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
766 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
768 if (ndr_flags & NDR_SCALARS) {
769 NDR_CHECK(ndr_push_align(ndr, 4));
770 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
772 uint32_t _flags_save_string = ndr->flags;
773 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
774 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
775 ndr->flags = _flags_save_string;
778 uint32_t _flags_save_string = ndr->flags;
779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
780 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
781 ndr->flags = _flags_save_string;
784 uint32_t _flags_save_string = ndr->flags;
785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
786 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
787 ndr->flags = _flags_save_string;
790 if (ndr_flags & NDR_BUFFERS) {
792 uint32_t _flags_save_string = ndr->flags;
793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
795 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
796 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
798 ndr->flags = _flags_save_string;
801 uint32_t _flags_save_string = ndr->flags;
802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
803 if (r->description) {
804 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
805 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
807 ndr->flags = _flags_save_string;
810 uint32_t _flags_save_string = ndr->flags;
811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
813 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
814 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
816 ndr->flags = _flags_save_string;
819 return NDR_ERR_SUCCESS;
822 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
825 TALLOC_CTX *_mem_save_name_0;
826 uint32_t _ptr_description;
827 TALLOC_CTX *_mem_save_description_0;
828 uint32_t _ptr_comment;
829 TALLOC_CTX *_mem_save_comment_0;
830 if (ndr_flags & NDR_SCALARS) {
831 NDR_CHECK(ndr_pull_align(ndr, 4));
832 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
834 uint32_t _flags_save_string = ndr->flags;
835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
838 NDR_PULL_ALLOC(ndr, r->name);
839 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
843 ndr->flags = _flags_save_string;
846 uint32_t _flags_save_string = ndr->flags;
847 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
849 if (_ptr_description) {
850 NDR_PULL_ALLOC(ndr, r->description);
851 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
853 r->description = NULL;
855 ndr->flags = _flags_save_string;
858 uint32_t _flags_save_string = ndr->flags;
859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
862 NDR_PULL_ALLOC(ndr, r->comment);
863 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
867 ndr->flags = _flags_save_string;
870 if (ndr_flags & NDR_BUFFERS) {
872 uint32_t _flags_save_string = ndr->flags;
873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
875 uint32_t _relative_save_offset;
876 _relative_save_offset = ndr->offset;
877 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
878 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
879 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
880 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
882 ndr->offset = _relative_save_offset;
884 ndr->flags = _flags_save_string;
887 uint32_t _flags_save_string = ndr->flags;
888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
889 if (r->description) {
890 uint32_t _relative_save_offset;
891 _relative_save_offset = ndr->offset;
892 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
893 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
894 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
895 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
897 ndr->offset = _relative_save_offset;
899 ndr->flags = _flags_save_string;
902 uint32_t _flags_save_string = ndr->flags;
903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
905 uint32_t _relative_save_offset;
906 _relative_save_offset = ndr->offset;
907 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
908 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
909 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
910 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
912 ndr->offset = _relative_save_offset;
914 ndr->flags = _flags_save_string;
917 return NDR_ERR_SUCCESS;
920 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
922 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
924 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
925 ndr_print_ptr(ndr, "name", r->name);
928 ndr_print_string(ndr, "name", r->name);
931 ndr_print_ptr(ndr, "description", r->description);
933 if (r->description) {
934 ndr_print_string(ndr, "description", r->description);
937 ndr_print_ptr(ndr, "comment", r->comment);
940 ndr_print_string(ndr, "comment", r->comment);
946 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
948 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
951 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
954 return NDR_ERR_SUCCESS;
957 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
960 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
962 return NDR_ERR_SUCCESS;
965 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
967 ndr_print_uint32(ndr, name, r);
969 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
970 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
971 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
972 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
973 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
974 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
975 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
976 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
977 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
978 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
979 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
980 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
981 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
982 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
983 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
984 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
988 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
990 if (ndr_flags & NDR_SCALARS) {
991 NDR_CHECK(ndr_push_align(ndr, 4));
993 uint32_t _flags_save_string = ndr->flags;
994 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
995 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
996 ndr->flags = _flags_save_string;
999 uint32_t _flags_save_string = ndr->flags;
1000 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1001 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1002 ndr->flags = _flags_save_string;
1005 uint32_t _flags_save_string = ndr->flags;
1006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1007 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
1008 ndr->flags = _flags_save_string;
1011 uint32_t _flags_save_string = ndr->flags;
1012 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1013 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1014 ndr->flags = _flags_save_string;
1017 uint32_t _flags_save_string = ndr->flags;
1018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1019 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
1020 ndr->flags = _flags_save_string;
1023 uint32_t _flags_save_string = ndr->flags;
1024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1025 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1026 ndr->flags = _flags_save_string;
1029 uint32_t _flags_save_string = ndr->flags;
1030 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1031 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
1032 ndr->flags = _flags_save_string;
1034 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
1036 uint32_t _flags_save_string = ndr->flags;
1037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1038 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
1039 ndr->flags = _flags_save_string;
1042 uint32_t _flags_save_string = ndr->flags;
1043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1044 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1045 ndr->flags = _flags_save_string;
1048 uint32_t _flags_save_string = ndr->flags;
1049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1050 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1051 ndr->flags = _flags_save_string;
1054 uint32_t _flags_save_string = ndr->flags;
1055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1056 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1057 ndr->flags = _flags_save_string;
1059 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1060 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1065 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1069 if (ndr_flags & NDR_BUFFERS) {
1071 uint32_t _flags_save_string = ndr->flags;
1072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1073 if (r->servername) {
1074 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1075 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1077 ndr->flags = _flags_save_string;
1080 uint32_t _flags_save_string = ndr->flags;
1081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1082 if (r->printername) {
1083 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1084 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1086 ndr->flags = _flags_save_string;
1089 uint32_t _flags_save_string = ndr->flags;
1090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1092 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1093 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1095 ndr->flags = _flags_save_string;
1098 uint32_t _flags_save_string = ndr->flags;
1099 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1101 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1102 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1104 ndr->flags = _flags_save_string;
1107 uint32_t _flags_save_string = ndr->flags;
1108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1109 if (r->drivername) {
1110 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1111 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1113 ndr->flags = _flags_save_string;
1116 uint32_t _flags_save_string = ndr->flags;
1117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1119 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1120 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1122 ndr->flags = _flags_save_string;
1125 uint32_t _flags_save_string = ndr->flags;
1126 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1128 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1129 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1131 ndr->flags = _flags_save_string;
1134 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1136 struct ndr_push *_ndr_devmode;
1137 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1138 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1139 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1143 uint32_t _flags_save_string = ndr->flags;
1144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1146 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1147 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1149 ndr->flags = _flags_save_string;
1152 uint32_t _flags_save_string = ndr->flags;
1153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1154 if (r->printprocessor) {
1155 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1156 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1158 ndr->flags = _flags_save_string;
1161 uint32_t _flags_save_string = ndr->flags;
1162 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1164 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1165 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1167 ndr->flags = _flags_save_string;
1170 uint32_t _flags_save_string = ndr->flags;
1171 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1172 if (r->parameters) {
1173 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1174 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1176 ndr->flags = _flags_save_string;
1179 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1181 struct ndr_push *_ndr_secdesc;
1182 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1183 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1184 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1188 return NDR_ERR_SUCCESS;
1191 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1193 uint32_t _ptr_servername;
1194 TALLOC_CTX *_mem_save_servername_0;
1195 uint32_t _ptr_printername;
1196 TALLOC_CTX *_mem_save_printername_0;
1197 uint32_t _ptr_sharename;
1198 TALLOC_CTX *_mem_save_sharename_0;
1199 uint32_t _ptr_portname;
1200 TALLOC_CTX *_mem_save_portname_0;
1201 uint32_t _ptr_drivername;
1202 TALLOC_CTX *_mem_save_drivername_0;
1203 uint32_t _ptr_comment;
1204 TALLOC_CTX *_mem_save_comment_0;
1205 uint32_t _ptr_location;
1206 TALLOC_CTX *_mem_save_location_0;
1207 uint32_t _ptr_devmode;
1208 TALLOC_CTX *_mem_save_devmode_0;
1209 uint32_t _ptr_sepfile;
1210 TALLOC_CTX *_mem_save_sepfile_0;
1211 uint32_t _ptr_printprocessor;
1212 TALLOC_CTX *_mem_save_printprocessor_0;
1213 uint32_t _ptr_datatype;
1214 TALLOC_CTX *_mem_save_datatype_0;
1215 uint32_t _ptr_parameters;
1216 TALLOC_CTX *_mem_save_parameters_0;
1217 uint32_t _ptr_secdesc;
1218 TALLOC_CTX *_mem_save_secdesc_0;
1219 if (ndr_flags & NDR_SCALARS) {
1220 NDR_CHECK(ndr_pull_align(ndr, 4));
1222 uint32_t _flags_save_string = ndr->flags;
1223 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1224 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1225 if (_ptr_servername) {
1226 NDR_PULL_ALLOC(ndr, r->servername);
1227 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1229 r->servername = NULL;
1231 ndr->flags = _flags_save_string;
1234 uint32_t _flags_save_string = ndr->flags;
1235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1236 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1237 if (_ptr_printername) {
1238 NDR_PULL_ALLOC(ndr, r->printername);
1239 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1241 r->printername = NULL;
1243 ndr->flags = _flags_save_string;
1246 uint32_t _flags_save_string = ndr->flags;
1247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1248 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1249 if (_ptr_sharename) {
1250 NDR_PULL_ALLOC(ndr, r->sharename);
1251 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1253 r->sharename = NULL;
1255 ndr->flags = _flags_save_string;
1258 uint32_t _flags_save_string = ndr->flags;
1259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1260 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1261 if (_ptr_portname) {
1262 NDR_PULL_ALLOC(ndr, r->portname);
1263 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1267 ndr->flags = _flags_save_string;
1270 uint32_t _flags_save_string = ndr->flags;
1271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1272 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1273 if (_ptr_drivername) {
1274 NDR_PULL_ALLOC(ndr, r->drivername);
1275 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1277 r->drivername = NULL;
1279 ndr->flags = _flags_save_string;
1282 uint32_t _flags_save_string = ndr->flags;
1283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1284 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1286 NDR_PULL_ALLOC(ndr, r->comment);
1287 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1291 ndr->flags = _flags_save_string;
1294 uint32_t _flags_save_string = ndr->flags;
1295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1296 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1297 if (_ptr_location) {
1298 NDR_PULL_ALLOC(ndr, r->location);
1299 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1303 ndr->flags = _flags_save_string;
1305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1307 NDR_PULL_ALLOC(ndr, r->devmode);
1308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1313 uint32_t _flags_save_string = ndr->flags;
1314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1317 NDR_PULL_ALLOC(ndr, r->sepfile);
1318 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1322 ndr->flags = _flags_save_string;
1325 uint32_t _flags_save_string = ndr->flags;
1326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1327 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1328 if (_ptr_printprocessor) {
1329 NDR_PULL_ALLOC(ndr, r->printprocessor);
1330 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1332 r->printprocessor = NULL;
1334 ndr->flags = _flags_save_string;
1337 uint32_t _flags_save_string = ndr->flags;
1338 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1339 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1340 if (_ptr_datatype) {
1341 NDR_PULL_ALLOC(ndr, r->datatype);
1342 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1352 if (_ptr_parameters) {
1353 NDR_PULL_ALLOC(ndr, r->parameters);
1354 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1356 r->parameters = NULL;
1358 ndr->flags = _flags_save_string;
1360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1362 NDR_PULL_ALLOC(ndr, r->secdesc);
1363 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1367 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1368 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1369 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1370 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1371 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1372 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1373 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1374 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1376 if (ndr_flags & NDR_BUFFERS) {
1378 uint32_t _flags_save_string = ndr->flags;
1379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1380 if (r->servername) {
1381 uint32_t _relative_save_offset;
1382 _relative_save_offset = ndr->offset;
1383 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1384 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1385 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1386 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1388 ndr->offset = _relative_save_offset;
1390 ndr->flags = _flags_save_string;
1393 uint32_t _flags_save_string = ndr->flags;
1394 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1395 if (r->printername) {
1396 uint32_t _relative_save_offset;
1397 _relative_save_offset = ndr->offset;
1398 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1399 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1400 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1401 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1403 ndr->offset = _relative_save_offset;
1405 ndr->flags = _flags_save_string;
1408 uint32_t _flags_save_string = ndr->flags;
1409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1411 uint32_t _relative_save_offset;
1412 _relative_save_offset = ndr->offset;
1413 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1414 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1415 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1416 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1418 ndr->offset = _relative_save_offset;
1420 ndr->flags = _flags_save_string;
1423 uint32_t _flags_save_string = ndr->flags;
1424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1426 uint32_t _relative_save_offset;
1427 _relative_save_offset = ndr->offset;
1428 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1429 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1430 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1431 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1433 ndr->offset = _relative_save_offset;
1435 ndr->flags = _flags_save_string;
1438 uint32_t _flags_save_string = ndr->flags;
1439 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1440 if (r->drivername) {
1441 uint32_t _relative_save_offset;
1442 _relative_save_offset = ndr->offset;
1443 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1444 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1445 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1446 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1448 ndr->offset = _relative_save_offset;
1450 ndr->flags = _flags_save_string;
1453 uint32_t _flags_save_string = ndr->flags;
1454 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1456 uint32_t _relative_save_offset;
1457 _relative_save_offset = ndr->offset;
1458 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1459 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1460 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1461 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1463 ndr->offset = _relative_save_offset;
1465 ndr->flags = _flags_save_string;
1468 uint32_t _flags_save_string = ndr->flags;
1469 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1471 uint32_t _relative_save_offset;
1472 _relative_save_offset = ndr->offset;
1473 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1474 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1475 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1476 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1477 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1478 ndr->offset = _relative_save_offset;
1480 ndr->flags = _flags_save_string;
1483 uint32_t _relative_save_offset;
1484 _relative_save_offset = ndr->offset;
1485 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1486 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1487 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1489 struct ndr_pull *_ndr_devmode;
1490 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1491 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1492 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1494 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1495 ndr->offset = _relative_save_offset;
1498 uint32_t _flags_save_string = ndr->flags;
1499 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1501 uint32_t _relative_save_offset;
1502 _relative_save_offset = ndr->offset;
1503 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1504 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1505 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1506 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1508 ndr->offset = _relative_save_offset;
1510 ndr->flags = _flags_save_string;
1513 uint32_t _flags_save_string = ndr->flags;
1514 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1515 if (r->printprocessor) {
1516 uint32_t _relative_save_offset;
1517 _relative_save_offset = ndr->offset;
1518 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1519 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1520 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1521 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1523 ndr->offset = _relative_save_offset;
1525 ndr->flags = _flags_save_string;
1528 uint32_t _flags_save_string = ndr->flags;
1529 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1531 uint32_t _relative_save_offset;
1532 _relative_save_offset = ndr->offset;
1533 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
1534 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
1535 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
1536 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
1537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
1538 ndr->offset = _relative_save_offset;
1540 ndr->flags = _flags_save_string;
1543 uint32_t _flags_save_string = ndr->flags;
1544 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1545 if (r->parameters) {
1546 uint32_t _relative_save_offset;
1547 _relative_save_offset = ndr->offset;
1548 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
1549 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
1550 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
1551 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
1552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
1553 ndr->offset = _relative_save_offset;
1555 ndr->flags = _flags_save_string;
1558 uint32_t _relative_save_offset;
1559 _relative_save_offset = ndr->offset;
1560 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1561 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1562 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1564 struct ndr_pull *_ndr_secdesc;
1565 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1566 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1567 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1570 ndr->offset = _relative_save_offset;
1573 return NDR_ERR_SUCCESS;
1576 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
1578 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
1580 ndr_print_ptr(ndr, "servername", r->servername);
1582 if (r->servername) {
1583 ndr_print_string(ndr, "servername", r->servername);
1586 ndr_print_ptr(ndr, "printername", r->printername);
1588 if (r->printername) {
1589 ndr_print_string(ndr, "printername", r->printername);
1592 ndr_print_ptr(ndr, "sharename", r->sharename);
1595 ndr_print_string(ndr, "sharename", r->sharename);
1598 ndr_print_ptr(ndr, "portname", r->portname);
1601 ndr_print_string(ndr, "portname", r->portname);
1604 ndr_print_ptr(ndr, "drivername", r->drivername);
1606 if (r->drivername) {
1607 ndr_print_string(ndr, "drivername", r->drivername);
1610 ndr_print_ptr(ndr, "comment", r->comment);
1613 ndr_print_string(ndr, "comment", r->comment);
1616 ndr_print_ptr(ndr, "location", r->location);
1619 ndr_print_string(ndr, "location", r->location);
1622 ndr_print_ptr(ndr, "devmode", r->devmode);
1625 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1628 ndr_print_ptr(ndr, "sepfile", r->sepfile);
1631 ndr_print_string(ndr, "sepfile", r->sepfile);
1634 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
1636 if (r->printprocessor) {
1637 ndr_print_string(ndr, "printprocessor", r->printprocessor);
1640 ndr_print_ptr(ndr, "datatype", r->datatype);
1643 ndr_print_string(ndr, "datatype", r->datatype);
1646 ndr_print_ptr(ndr, "parameters", r->parameters);
1648 if (r->parameters) {
1649 ndr_print_string(ndr, "parameters", r->parameters);
1652 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1655 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1658 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1659 ndr_print_uint32(ndr, "priority", r->priority);
1660 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
1661 ndr_print_uint32(ndr, "starttime", r->starttime);
1662 ndr_print_uint32(ndr, "untiltime", r->untiltime);
1663 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1664 ndr_print_uint32(ndr, "cjobs", r->cjobs);
1665 ndr_print_uint32(ndr, "averageppm", r->averageppm);
1669 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
1671 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
1674 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
1676 if (ndr_flags & NDR_SCALARS) {
1677 NDR_CHECK(ndr_push_align(ndr, 4));
1678 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1680 if (ndr_flags & NDR_BUFFERS) {
1682 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1684 struct ndr_push *_ndr_secdesc;
1685 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1686 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1687 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1691 return NDR_ERR_SUCCESS;
1694 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
1696 uint32_t _ptr_secdesc;
1697 TALLOC_CTX *_mem_save_secdesc_0;
1698 if (ndr_flags & NDR_SCALARS) {
1699 NDR_CHECK(ndr_pull_align(ndr, 4));
1700 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1702 NDR_PULL_ALLOC(ndr, r->secdesc);
1703 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1708 if (ndr_flags & NDR_BUFFERS) {
1710 uint32_t _relative_save_offset;
1711 _relative_save_offset = ndr->offset;
1712 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1713 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1714 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1716 struct ndr_pull *_ndr_secdesc;
1717 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1718 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1719 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1721 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1722 ndr->offset = _relative_save_offset;
1725 return NDR_ERR_SUCCESS;
1728 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
1730 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
1732 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1735 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1741 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
1743 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
1746 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
1748 if (ndr_flags & NDR_SCALARS) {
1749 NDR_CHECK(ndr_push_align(ndr, 4));
1751 uint32_t _flags_save_string = ndr->flags;
1752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1753 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1754 ndr->flags = _flags_save_string;
1757 uint32_t _flags_save_string = ndr->flags;
1758 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1759 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1760 ndr->flags = _flags_save_string;
1762 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1764 if (ndr_flags & NDR_BUFFERS) {
1766 uint32_t _flags_save_string = ndr->flags;
1767 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1768 if (r->printername) {
1769 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1770 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1772 ndr->flags = _flags_save_string;
1775 uint32_t _flags_save_string = ndr->flags;
1776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1777 if (r->servername) {
1778 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1779 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1781 ndr->flags = _flags_save_string;
1784 return NDR_ERR_SUCCESS;
1787 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
1789 uint32_t _ptr_printername;
1790 TALLOC_CTX *_mem_save_printername_0;
1791 uint32_t _ptr_servername;
1792 TALLOC_CTX *_mem_save_servername_0;
1793 if (ndr_flags & NDR_SCALARS) {
1794 NDR_CHECK(ndr_pull_align(ndr, 4));
1796 uint32_t _flags_save_string = ndr->flags;
1797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1798 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1799 if (_ptr_printername) {
1800 NDR_PULL_ALLOC(ndr, r->printername);
1801 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1803 r->printername = NULL;
1805 ndr->flags = _flags_save_string;
1808 uint32_t _flags_save_string = ndr->flags;
1809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1810 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1811 if (_ptr_servername) {
1812 NDR_PULL_ALLOC(ndr, r->servername);
1813 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1815 r->servername = NULL;
1817 ndr->flags = _flags_save_string;
1819 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1821 if (ndr_flags & NDR_BUFFERS) {
1823 uint32_t _flags_save_string = ndr->flags;
1824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1825 if (r->printername) {
1826 uint32_t _relative_save_offset;
1827 _relative_save_offset = ndr->offset;
1828 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1829 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1830 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1831 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1832 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1833 ndr->offset = _relative_save_offset;
1835 ndr->flags = _flags_save_string;
1838 uint32_t _flags_save_string = ndr->flags;
1839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1840 if (r->servername) {
1841 uint32_t _relative_save_offset;
1842 _relative_save_offset = ndr->offset;
1843 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1844 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1845 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1846 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1847 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1848 ndr->offset = _relative_save_offset;
1850 ndr->flags = _flags_save_string;
1853 return NDR_ERR_SUCCESS;
1856 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
1858 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
1860 ndr_print_ptr(ndr, "printername", r->printername);
1862 if (r->printername) {
1863 ndr_print_string(ndr, "printername", r->printername);
1866 ndr_print_ptr(ndr, "servername", r->servername);
1868 if (r->servername) {
1869 ndr_print_string(ndr, "servername", r->servername);
1872 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1876 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
1878 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
1881 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
1883 if (ndr_flags & NDR_SCALARS) {
1884 NDR_CHECK(ndr_push_align(ndr, 4));
1886 uint32_t _flags_save_string = ndr->flags;
1887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1888 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1889 ndr->flags = _flags_save_string;
1892 uint32_t _flags_save_string = ndr->flags;
1893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1894 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1895 ndr->flags = _flags_save_string;
1897 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
1899 NDR_CHECK(ndr_push_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 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1907 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1909 ndr->flags = _flags_save_string;
1912 uint32_t _flags_save_string = ndr->flags;
1913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1915 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1916 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1918 ndr->flags = _flags_save_string;
1921 return NDR_ERR_SUCCESS;
1924 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
1926 uint32_t _ptr_printername;
1927 TALLOC_CTX *_mem_save_printername_0;
1928 uint32_t _ptr_portname;
1929 TALLOC_CTX *_mem_save_portname_0;
1930 if (ndr_flags & NDR_SCALARS) {
1931 NDR_CHECK(ndr_pull_align(ndr, 4));
1933 uint32_t _flags_save_string = ndr->flags;
1934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1935 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1936 if (_ptr_printername) {
1937 NDR_PULL_ALLOC(ndr, r->printername);
1938 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1940 r->printername = NULL;
1942 ndr->flags = _flags_save_string;
1945 uint32_t _flags_save_string = ndr->flags;
1946 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1947 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1948 if (_ptr_portname) {
1949 NDR_PULL_ALLOC(ndr, r->portname);
1950 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1954 ndr->flags = _flags_save_string;
1956 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1957 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
1958 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
1960 if (ndr_flags & NDR_BUFFERS) {
1962 uint32_t _flags_save_string = ndr->flags;
1963 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1964 if (r->printername) {
1965 uint32_t _relative_save_offset;
1966 _relative_save_offset = ndr->offset;
1967 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1968 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1969 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1970 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1972 ndr->offset = _relative_save_offset;
1974 ndr->flags = _flags_save_string;
1977 uint32_t _flags_save_string = ndr->flags;
1978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1980 uint32_t _relative_save_offset;
1981 _relative_save_offset = ndr->offset;
1982 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1983 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1984 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1985 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1986 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1987 ndr->offset = _relative_save_offset;
1989 ndr->flags = _flags_save_string;
1992 return NDR_ERR_SUCCESS;
1995 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
1997 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
1999 ndr_print_ptr(ndr, "printername", r->printername);
2001 if (r->printername) {
2002 ndr_print_string(ndr, "printername", r->printername);
2005 ndr_print_ptr(ndr, "portname", r->portname);
2008 ndr_print_string(ndr, "portname", r->portname);
2011 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2012 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2013 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2017 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
2019 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
2022 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2024 if (ndr_flags & NDR_SCALARS) {
2025 NDR_CHECK(ndr_push_align(ndr, 4));
2026 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2028 if (ndr_flags & NDR_BUFFERS) {
2030 return NDR_ERR_SUCCESS;
2033 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2035 if (ndr_flags & NDR_SCALARS) {
2036 NDR_CHECK(ndr_pull_align(ndr, 4));
2037 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2039 if (ndr_flags & NDR_BUFFERS) {
2041 return NDR_ERR_SUCCESS;
2044 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2046 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2048 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2052 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
2054 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
2057 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2060 return NDR_ERR_SUCCESS;
2063 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2066 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2068 return NDR_ERR_SUCCESS;
2071 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2073 ndr_print_uint32(ndr, name, r);
2075 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2076 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2077 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2078 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2079 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2083 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2085 if (ndr_flags & NDR_SCALARS) {
2086 NDR_CHECK(ndr_push_align(ndr, 4));
2088 uint32_t _flags_save_string = ndr->flags;
2089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2090 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2091 ndr->flags = _flags_save_string;
2093 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2095 if (ndr_flags & NDR_BUFFERS) {
2097 uint32_t _flags_save_string = ndr->flags;
2098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2100 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2101 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2103 ndr->flags = _flags_save_string;
2106 return NDR_ERR_SUCCESS;
2109 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2112 TALLOC_CTX *_mem_save_guid_0;
2113 if (ndr_flags & NDR_SCALARS) {
2114 NDR_CHECK(ndr_pull_align(ndr, 4));
2116 uint32_t _flags_save_string = ndr->flags;
2117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2120 NDR_PULL_ALLOC(ndr, r->guid);
2121 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2125 ndr->flags = _flags_save_string;
2127 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2129 if (ndr_flags & NDR_BUFFERS) {
2131 uint32_t _flags_save_string = ndr->flags;
2132 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2134 uint32_t _relative_save_offset;
2135 _relative_save_offset = ndr->offset;
2136 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2137 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2138 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2139 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2140 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2141 ndr->offset = _relative_save_offset;
2143 ndr->flags = _flags_save_string;
2146 return NDR_ERR_SUCCESS;
2149 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2151 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2153 ndr_print_ptr(ndr, "guid", r->guid);
2156 ndr_print_string(ndr, "guid", r->guid);
2159 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2163 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2165 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2168 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2170 if (ndr_flags & NDR_SCALARS) {
2171 NDR_CHECK(ndr_push_align(ndr, 4));
2172 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2174 if (ndr_flags & NDR_BUFFERS) {
2176 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2178 struct ndr_push *_ndr_devmode;
2179 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2180 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2181 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2185 return NDR_ERR_SUCCESS;
2188 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2190 uint32_t _ptr_devmode;
2191 TALLOC_CTX *_mem_save_devmode_0;
2192 if (ndr_flags & NDR_SCALARS) {
2193 NDR_CHECK(ndr_pull_align(ndr, 4));
2194 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2196 NDR_PULL_ALLOC(ndr, r->devmode);
2197 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2202 if (ndr_flags & NDR_BUFFERS) {
2204 uint32_t _relative_save_offset;
2205 _relative_save_offset = ndr->offset;
2206 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2207 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2208 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2210 struct ndr_pull *_ndr_devmode;
2211 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2212 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2213 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2216 ndr->offset = _relative_save_offset;
2219 return NDR_ERR_SUCCESS;
2222 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2224 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2226 ndr_print_ptr(ndr, "devmode", r->devmode);
2229 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2235 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2237 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2238 if (ndr_flags & NDR_SCALARS) {
2239 int level = ndr_push_get_switch_value(ndr, r);
2242 NDR_CHECK(ndr_push_align(ndr, 4));
2243 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2244 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2248 NDR_CHECK(ndr_push_align(ndr, 4));
2249 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2250 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2254 NDR_CHECK(ndr_push_align(ndr, 4));
2255 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2256 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2260 NDR_CHECK(ndr_push_align(ndr, 4));
2261 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2262 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2266 NDR_CHECK(ndr_push_align(ndr, 4));
2267 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2268 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2272 NDR_CHECK(ndr_push_align(ndr, 4));
2273 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2274 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2278 NDR_CHECK(ndr_push_align(ndr, 4));
2279 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2280 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2284 NDR_CHECK(ndr_push_align(ndr, 4));
2285 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2286 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2290 NDR_CHECK(ndr_push_align(ndr, 4));
2291 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2292 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2296 NDR_CHECK(ndr_push_align(ndr, 4));
2297 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2298 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2306 if (ndr_flags & NDR_BUFFERS) {
2307 int level = ndr_push_get_switch_value(ndr, r);
2308 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2311 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2315 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2319 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2323 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2327 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2331 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2338 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2342 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2346 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2354 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2355 return NDR_ERR_SUCCESS;
2358 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2360 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2362 level = ndr_pull_get_switch_value(ndr, r);
2363 if (ndr_flags & NDR_SCALARS) {
2366 NDR_CHECK(ndr_pull_align(ndr, 4));
2367 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2368 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2372 NDR_CHECK(ndr_pull_align(ndr, 4));
2373 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2374 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2378 NDR_CHECK(ndr_pull_align(ndr, 4));
2379 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2380 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2384 NDR_CHECK(ndr_pull_align(ndr, 4));
2385 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2386 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2390 NDR_CHECK(ndr_pull_align(ndr, 4));
2391 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2392 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2396 NDR_CHECK(ndr_pull_align(ndr, 4));
2397 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2398 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2402 NDR_CHECK(ndr_pull_align(ndr, 4));
2403 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2404 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2408 NDR_CHECK(ndr_pull_align(ndr, 4));
2409 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2410 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2414 NDR_CHECK(ndr_pull_align(ndr, 4));
2415 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2416 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2420 NDR_CHECK(ndr_pull_align(ndr, 4));
2421 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2422 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2430 if (ndr_flags & NDR_BUFFERS) {
2431 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2434 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2438 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2442 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2446 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2450 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2454 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2461 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2465 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2469 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2477 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2478 return NDR_ERR_SUCCESS;
2481 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2484 level = ndr_print_get_switch_value(ndr, r);
2485 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2488 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2492 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2496 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2500 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2504 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2508 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2512 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2516 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2520 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2524 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
2533 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
2535 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
2538 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
2540 if (ndr_flags & NDR_SCALARS) {
2541 NDR_CHECK(ndr_push_align(ndr, 4));
2542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2543 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
2545 if (ndr_flags & NDR_BUFFERS) {
2548 struct ndr_push *_ndr_devmode;
2549 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2550 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2551 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2555 return NDR_ERR_SUCCESS;
2558 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
2560 uint32_t _ptr_devmode;
2561 TALLOC_CTX *_mem_save_devmode_0;
2562 if (ndr_flags & NDR_SCALARS) {
2563 NDR_CHECK(ndr_pull_align(ndr, 4));
2564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
2565 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2567 NDR_PULL_ALLOC(ndr, r->devmode);
2572 if (ndr_flags & NDR_BUFFERS) {
2574 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2575 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2577 struct ndr_pull *_ndr_devmode;
2578 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
2579 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2580 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
2582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2585 return NDR_ERR_SUCCESS;
2588 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
2590 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
2592 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);
2593 ndr_print_ptr(ndr, "devmode", r->devmode);
2596 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2602 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
2604 if (ndr_flags & NDR_SCALARS) {
2605 NDR_CHECK(ndr_push_align(ndr, 4));
2606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2608 uint32_t _flags_save_string = ndr->flags;
2609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2610 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2611 ndr->flags = _flags_save_string;
2614 uint32_t _flags_save_string = ndr->flags;
2615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2616 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2617 ndr->flags = _flags_save_string;
2620 uint32_t _flags_save_string = ndr->flags;
2621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2622 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2623 ndr->flags = _flags_save_string;
2626 uint32_t _flags_save_string = ndr->flags;
2627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2628 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2629 ndr->flags = _flags_save_string;
2632 uint32_t _flags_save_string = ndr->flags;
2633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2634 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2635 ndr->flags = _flags_save_string;
2638 uint32_t _flags_save_string = ndr->flags;
2639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2640 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2641 ndr->flags = _flags_save_string;
2643 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
2644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2645 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2648 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2650 if (ndr_flags & NDR_BUFFERS) {
2652 uint32_t _flags_save_string = ndr->flags;
2653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2654 if (r->printer_name) {
2655 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
2656 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2658 ndr->flags = _flags_save_string;
2661 uint32_t _flags_save_string = ndr->flags;
2662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2663 if (r->server_name) {
2664 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
2665 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
2667 ndr->flags = _flags_save_string;
2670 uint32_t _flags_save_string = ndr->flags;
2671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2673 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
2674 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2676 ndr->flags = _flags_save_string;
2679 uint32_t _flags_save_string = ndr->flags;
2680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2681 if (r->document_name) {
2682 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
2683 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
2685 ndr->flags = _flags_save_string;
2688 uint32_t _flags_save_string = ndr->flags;
2689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2691 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
2692 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
2694 ndr->flags = _flags_save_string;
2697 uint32_t _flags_save_string = ndr->flags;
2698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2699 if (r->text_status) {
2700 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
2701 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
2703 ndr->flags = _flags_save_string;
2706 return NDR_ERR_SUCCESS;
2709 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
2711 uint32_t _ptr_printer_name;
2712 TALLOC_CTX *_mem_save_printer_name_0;
2713 uint32_t _ptr_server_name;
2714 TALLOC_CTX *_mem_save_server_name_0;
2715 uint32_t _ptr_user_name;
2716 TALLOC_CTX *_mem_save_user_name_0;
2717 uint32_t _ptr_document_name;
2718 TALLOC_CTX *_mem_save_document_name_0;
2719 uint32_t _ptr_data_type;
2720 TALLOC_CTX *_mem_save_data_type_0;
2721 uint32_t _ptr_text_status;
2722 TALLOC_CTX *_mem_save_text_status_0;
2723 if (ndr_flags & NDR_SCALARS) {
2724 NDR_CHECK(ndr_pull_align(ndr, 4));
2725 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
2727 uint32_t _flags_save_string = ndr->flags;
2728 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2729 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
2730 if (_ptr_printer_name) {
2731 NDR_PULL_ALLOC(ndr, r->printer_name);
2732 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
2734 r->printer_name = NULL;
2736 ndr->flags = _flags_save_string;
2739 uint32_t _flags_save_string = ndr->flags;
2740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
2742 if (_ptr_server_name) {
2743 NDR_PULL_ALLOC(ndr, r->server_name);
2744 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
2746 r->server_name = NULL;
2748 ndr->flags = _flags_save_string;
2751 uint32_t _flags_save_string = ndr->flags;
2752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
2754 if (_ptr_user_name) {
2755 NDR_PULL_ALLOC(ndr, r->user_name);
2756 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
2758 r->user_name = NULL;
2760 ndr->flags = _flags_save_string;
2763 uint32_t _flags_save_string = ndr->flags;
2764 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
2766 if (_ptr_document_name) {
2767 NDR_PULL_ALLOC(ndr, r->document_name);
2768 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
2770 r->document_name = NULL;
2772 ndr->flags = _flags_save_string;
2775 uint32_t _flags_save_string = ndr->flags;
2776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2777 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
2778 if (_ptr_data_type) {
2779 NDR_PULL_ALLOC(ndr, r->data_type);
2780 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
2782 r->data_type = NULL;
2784 ndr->flags = _flags_save_string;
2787 uint32_t _flags_save_string = ndr->flags;
2788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
2790 if (_ptr_text_status) {
2791 NDR_PULL_ALLOC(ndr, r->text_status);
2792 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
2794 r->text_status = NULL;
2796 ndr->flags = _flags_save_string;
2798 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
2799 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
2800 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
2801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
2802 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
2803 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2805 if (ndr_flags & NDR_BUFFERS) {
2807 uint32_t _flags_save_string = ndr->flags;
2808 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2809 if (r->printer_name) {
2810 uint32_t _relative_save_offset;
2811 _relative_save_offset = ndr->offset;
2812 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
2813 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2814 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
2815 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
2816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
2817 ndr->offset = _relative_save_offset;
2819 ndr->flags = _flags_save_string;
2822 uint32_t _flags_save_string = ndr->flags;
2823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2824 if (r->server_name) {
2825 uint32_t _relative_save_offset;
2826 _relative_save_offset = ndr->offset;
2827 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
2828 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2829 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
2830 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
2831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
2832 ndr->offset = _relative_save_offset;
2834 ndr->flags = _flags_save_string;
2837 uint32_t _flags_save_string = ndr->flags;
2838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2840 uint32_t _relative_save_offset;
2841 _relative_save_offset = ndr->offset;
2842 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
2843 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2844 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
2845 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
2846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
2847 ndr->offset = _relative_save_offset;
2849 ndr->flags = _flags_save_string;
2852 uint32_t _flags_save_string = ndr->flags;
2853 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2854 if (r->document_name) {
2855 uint32_t _relative_save_offset;
2856 _relative_save_offset = ndr->offset;
2857 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
2858 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2859 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
2860 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
2861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
2862 ndr->offset = _relative_save_offset;
2864 ndr->flags = _flags_save_string;
2867 uint32_t _flags_save_string = ndr->flags;
2868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2870 uint32_t _relative_save_offset;
2871 _relative_save_offset = ndr->offset;
2872 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
2873 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2874 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
2875 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
2876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
2877 ndr->offset = _relative_save_offset;
2879 ndr->flags = _flags_save_string;
2882 uint32_t _flags_save_string = ndr->flags;
2883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2884 if (r->text_status) {
2885 uint32_t _relative_save_offset;
2886 _relative_save_offset = ndr->offset;
2887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
2888 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
2889 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
2890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
2891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
2892 ndr->offset = _relative_save_offset;
2894 ndr->flags = _flags_save_string;
2897 return NDR_ERR_SUCCESS;
2900 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
2902 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
2904 ndr_print_uint32(ndr, "job_id", r->job_id);
2905 ndr_print_ptr(ndr, "printer_name", r->printer_name);
2907 if (r->printer_name) {
2908 ndr_print_string(ndr, "printer_name", r->printer_name);
2911 ndr_print_ptr(ndr, "server_name", r->server_name);
2913 if (r->server_name) {
2914 ndr_print_string(ndr, "server_name", r->server_name);
2917 ndr_print_ptr(ndr, "user_name", r->user_name);
2920 ndr_print_string(ndr, "user_name", r->user_name);
2923 ndr_print_ptr(ndr, "document_name", r->document_name);
2925 if (r->document_name) {
2926 ndr_print_string(ndr, "document_name", r->document_name);
2929 ndr_print_ptr(ndr, "data_type", r->data_type);
2932 ndr_print_string(ndr, "data_type", r->data_type);
2935 ndr_print_ptr(ndr, "text_status", r->text_status);
2937 if (r->text_status) {
2938 ndr_print_string(ndr, "text_status", r->text_status);
2941 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
2942 ndr_print_uint32(ndr, "priority", r->priority);
2943 ndr_print_uint32(ndr, "position", r->position);
2944 ndr_print_uint32(ndr, "total_pages", r->total_pages);
2945 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
2946 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
2950 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
2952 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
2955 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
2957 if (ndr_flags & NDR_SCALARS) {
2958 NDR_CHECK(ndr_push_align(ndr, 4));
2959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2961 uint32_t _flags_save_string = ndr->flags;
2962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2963 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2964 ndr->flags = _flags_save_string;
2967 uint32_t _flags_save_string = ndr->flags;
2968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2969 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2970 ndr->flags = _flags_save_string;
2973 uint32_t _flags_save_string = ndr->flags;
2974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2975 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2976 ndr->flags = _flags_save_string;
2979 uint32_t _flags_save_string = ndr->flags;
2980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2981 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2982 ndr->flags = _flags_save_string;
2985 uint32_t _flags_save_string = ndr->flags;
2986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2987 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
2988 ndr->flags = _flags_save_string;
2991 uint32_t _flags_save_string = ndr->flags;
2992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2993 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2994 ndr->flags = _flags_save_string;
2997 uint32_t _flags_save_string = ndr->flags;
2998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2999 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3000 ndr->flags = _flags_save_string;
3003 uint32_t _flags_save_string = ndr->flags;
3004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3005 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3006 ndr->flags = _flags_save_string;
3009 uint32_t _flags_save_string = ndr->flags;
3010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3011 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3012 ndr->flags = _flags_save_string;
3014 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3016 uint32_t _flags_save_string = ndr->flags;
3017 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3018 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3019 ndr->flags = _flags_save_string;
3021 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3022 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3029 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3033 if (ndr_flags & NDR_BUFFERS) {
3035 uint32_t _flags_save_string = ndr->flags;
3036 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3037 if (r->printer_name) {
3038 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3039 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3041 ndr->flags = _flags_save_string;
3044 uint32_t _flags_save_string = ndr->flags;
3045 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3046 if (r->server_name) {
3047 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3048 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3050 ndr->flags = _flags_save_string;
3053 uint32_t _flags_save_string = ndr->flags;
3054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3056 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3057 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3059 ndr->flags = _flags_save_string;
3062 uint32_t _flags_save_string = ndr->flags;
3063 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3064 if (r->document_name) {
3065 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3066 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3068 ndr->flags = _flags_save_string;
3071 uint32_t _flags_save_string = ndr->flags;
3072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3073 if (r->notify_name) {
3074 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3075 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3077 ndr->flags = _flags_save_string;
3080 uint32_t _flags_save_string = ndr->flags;
3081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3083 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3084 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3086 ndr->flags = _flags_save_string;
3089 uint32_t _flags_save_string = ndr->flags;
3090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3091 if (r->print_processor) {
3092 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3093 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3095 ndr->flags = _flags_save_string;
3098 uint32_t _flags_save_string = ndr->flags;
3099 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3100 if (r->parameters) {
3101 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3102 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3104 ndr->flags = _flags_save_string;
3107 uint32_t _flags_save_string = ndr->flags;
3108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3109 if (r->driver_name) {
3110 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3111 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3113 ndr->flags = _flags_save_string;
3116 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3117 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3120 uint32_t _flags_save_string = ndr->flags;
3121 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3122 if (r->text_status) {
3123 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3124 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3126 ndr->flags = _flags_save_string;
3129 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3130 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3133 return NDR_ERR_SUCCESS;
3136 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3138 uint32_t _ptr_printer_name;
3139 TALLOC_CTX *_mem_save_printer_name_0;
3140 uint32_t _ptr_server_name;
3141 TALLOC_CTX *_mem_save_server_name_0;
3142 uint32_t _ptr_user_name;
3143 TALLOC_CTX *_mem_save_user_name_0;
3144 uint32_t _ptr_document_name;
3145 TALLOC_CTX *_mem_save_document_name_0;
3146 uint32_t _ptr_notify_name;
3147 TALLOC_CTX *_mem_save_notify_name_0;
3148 uint32_t _ptr_data_type;
3149 TALLOC_CTX *_mem_save_data_type_0;
3150 uint32_t _ptr_print_processor;
3151 TALLOC_CTX *_mem_save_print_processor_0;
3152 uint32_t _ptr_parameters;
3153 TALLOC_CTX *_mem_save_parameters_0;
3154 uint32_t _ptr_driver_name;
3155 TALLOC_CTX *_mem_save_driver_name_0;
3156 uint32_t _ptr_devmode;
3157 TALLOC_CTX *_mem_save_devmode_0;
3158 uint32_t _ptr_text_status;
3159 TALLOC_CTX *_mem_save_text_status_0;
3160 uint32_t _ptr_secdesc;
3161 TALLOC_CTX *_mem_save_secdesc_0;
3162 if (ndr_flags & NDR_SCALARS) {
3163 NDR_CHECK(ndr_pull_align(ndr, 4));
3164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3166 uint32_t _flags_save_string = ndr->flags;
3167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3168 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3169 if (_ptr_printer_name) {
3170 NDR_PULL_ALLOC(ndr, r->printer_name);
3171 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3173 r->printer_name = NULL;
3175 ndr->flags = _flags_save_string;
3178 uint32_t _flags_save_string = ndr->flags;
3179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3181 if (_ptr_server_name) {
3182 NDR_PULL_ALLOC(ndr, r->server_name);
3183 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3185 r->server_name = NULL;
3187 ndr->flags = _flags_save_string;
3190 uint32_t _flags_save_string = ndr->flags;
3191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3193 if (_ptr_user_name) {
3194 NDR_PULL_ALLOC(ndr, r->user_name);
3195 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3197 r->user_name = NULL;
3199 ndr->flags = _flags_save_string;
3202 uint32_t _flags_save_string = ndr->flags;
3203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3205 if (_ptr_document_name) {
3206 NDR_PULL_ALLOC(ndr, r->document_name);
3207 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3209 r->document_name = NULL;
3211 ndr->flags = _flags_save_string;
3214 uint32_t _flags_save_string = ndr->flags;
3215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3216 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3217 if (_ptr_notify_name) {
3218 NDR_PULL_ALLOC(ndr, r->notify_name);
3219 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3221 r->notify_name = NULL;
3223 ndr->flags = _flags_save_string;
3226 uint32_t _flags_save_string = ndr->flags;
3227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3229 if (_ptr_data_type) {
3230 NDR_PULL_ALLOC(ndr, r->data_type);
3231 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3233 r->data_type = NULL;
3235 ndr->flags = _flags_save_string;
3238 uint32_t _flags_save_string = ndr->flags;
3239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3240 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3241 if (_ptr_print_processor) {
3242 NDR_PULL_ALLOC(ndr, r->print_processor);
3243 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3245 r->print_processor = NULL;
3247 ndr->flags = _flags_save_string;
3250 uint32_t _flags_save_string = ndr->flags;
3251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3252 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3253 if (_ptr_parameters) {
3254 NDR_PULL_ALLOC(ndr, r->parameters);
3255 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3257 r->parameters = NULL;
3259 ndr->flags = _flags_save_string;
3262 uint32_t _flags_save_string = ndr->flags;
3263 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3264 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3265 if (_ptr_driver_name) {
3266 NDR_PULL_ALLOC(ndr, r->driver_name);
3267 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3269 r->driver_name = NULL;
3271 ndr->flags = _flags_save_string;
3273 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3275 NDR_PULL_ALLOC(ndr, r->devmode);
3276 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3281 uint32_t _flags_save_string = ndr->flags;
3282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3283 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3284 if (_ptr_text_status) {
3285 NDR_PULL_ALLOC(ndr, r->text_status);
3286 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3288 r->text_status = NULL;
3290 ndr->flags = _flags_save_string;
3292 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3294 NDR_PULL_ALLOC(ndr, r->secdesc);
3295 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3299 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3300 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3301 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3303 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3304 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3306 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3307 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3308 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3310 if (ndr_flags & NDR_BUFFERS) {
3312 uint32_t _flags_save_string = ndr->flags;
3313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3314 if (r->printer_name) {
3315 uint32_t _relative_save_offset;
3316 _relative_save_offset = ndr->offset;
3317 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3318 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3319 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3320 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3322 ndr->offset = _relative_save_offset;
3324 ndr->flags = _flags_save_string;
3327 uint32_t _flags_save_string = ndr->flags;
3328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3329 if (r->server_name) {
3330 uint32_t _relative_save_offset;
3331 _relative_save_offset = ndr->offset;
3332 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3333 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3334 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3335 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3337 ndr->offset = _relative_save_offset;
3339 ndr->flags = _flags_save_string;
3342 uint32_t _flags_save_string = ndr->flags;
3343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3345 uint32_t _relative_save_offset;
3346 _relative_save_offset = ndr->offset;
3347 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3348 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3349 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3350 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3352 ndr->offset = _relative_save_offset;
3354 ndr->flags = _flags_save_string;
3357 uint32_t _flags_save_string = ndr->flags;
3358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3359 if (r->document_name) {
3360 uint32_t _relative_save_offset;
3361 _relative_save_offset = ndr->offset;
3362 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3363 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3364 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3365 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3367 ndr->offset = _relative_save_offset;
3369 ndr->flags = _flags_save_string;
3372 uint32_t _flags_save_string = ndr->flags;
3373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3374 if (r->notify_name) {
3375 uint32_t _relative_save_offset;
3376 _relative_save_offset = ndr->offset;
3377 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3378 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3379 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3380 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3382 ndr->offset = _relative_save_offset;
3384 ndr->flags = _flags_save_string;
3387 uint32_t _flags_save_string = ndr->flags;
3388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3390 uint32_t _relative_save_offset;
3391 _relative_save_offset = ndr->offset;
3392 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3393 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3394 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3395 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3397 ndr->offset = _relative_save_offset;
3399 ndr->flags = _flags_save_string;
3402 uint32_t _flags_save_string = ndr->flags;
3403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3404 if (r->print_processor) {
3405 uint32_t _relative_save_offset;
3406 _relative_save_offset = ndr->offset;
3407 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
3408 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3409 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
3410 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
3411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
3412 ndr->offset = _relative_save_offset;
3414 ndr->flags = _flags_save_string;
3417 uint32_t _flags_save_string = ndr->flags;
3418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3419 if (r->parameters) {
3420 uint32_t _relative_save_offset;
3421 _relative_save_offset = ndr->offset;
3422 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
3423 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3424 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3425 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
3426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3427 ndr->offset = _relative_save_offset;
3429 ndr->flags = _flags_save_string;
3432 uint32_t _flags_save_string = ndr->flags;
3433 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3434 if (r->driver_name) {
3435 uint32_t _relative_save_offset;
3436 _relative_save_offset = ndr->offset;
3437 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
3438 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3439 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
3440 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
3441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
3442 ndr->offset = _relative_save_offset;
3444 ndr->flags = _flags_save_string;
3447 uint32_t _relative_save_offset;
3448 _relative_save_offset = ndr->offset;
3449 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
3450 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3451 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3452 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3454 ndr->offset = _relative_save_offset;
3457 uint32_t _flags_save_string = ndr->flags;
3458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3459 if (r->text_status) {
3460 uint32_t _relative_save_offset;
3461 _relative_save_offset = ndr->offset;
3462 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3463 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3464 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3465 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3467 ndr->offset = _relative_save_offset;
3469 ndr->flags = _flags_save_string;
3472 uint32_t _relative_save_offset;
3473 _relative_save_offset = ndr->offset;
3474 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
3475 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3476 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3477 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3479 ndr->offset = _relative_save_offset;
3482 return NDR_ERR_SUCCESS;
3485 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
3487 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
3489 ndr_print_uint32(ndr, "job_id", r->job_id);
3490 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3492 if (r->printer_name) {
3493 ndr_print_string(ndr, "printer_name", r->printer_name);
3496 ndr_print_ptr(ndr, "server_name", r->server_name);
3498 if (r->server_name) {
3499 ndr_print_string(ndr, "server_name", r->server_name);
3502 ndr_print_ptr(ndr, "user_name", r->user_name);
3505 ndr_print_string(ndr, "user_name", r->user_name);
3508 ndr_print_ptr(ndr, "document_name", r->document_name);
3510 if (r->document_name) {
3511 ndr_print_string(ndr, "document_name", r->document_name);
3514 ndr_print_ptr(ndr, "notify_name", r->notify_name);
3516 if (r->notify_name) {
3517 ndr_print_string(ndr, "notify_name", r->notify_name);
3520 ndr_print_ptr(ndr, "data_type", r->data_type);
3523 ndr_print_string(ndr, "data_type", r->data_type);
3526 ndr_print_ptr(ndr, "print_processor", r->print_processor);
3528 if (r->print_processor) {
3529 ndr_print_string(ndr, "print_processor", r->print_processor);
3532 ndr_print_ptr(ndr, "parameters", r->parameters);
3534 if (r->parameters) {
3535 ndr_print_string(ndr, "parameters", r->parameters);
3538 ndr_print_ptr(ndr, "driver_name", r->driver_name);
3540 if (r->driver_name) {
3541 ndr_print_string(ndr, "driver_name", r->driver_name);
3544 ndr_print_ptr(ndr, "devmode", r->devmode);
3547 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3550 ndr_print_ptr(ndr, "text_status", r->text_status);
3552 if (r->text_status) {
3553 ndr_print_string(ndr, "text_status", r->text_status);
3556 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3559 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
3562 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3563 ndr_print_uint32(ndr, "priority", r->priority);
3564 ndr_print_uint32(ndr, "position", r->position);
3565 ndr_print_uint32(ndr, "start_time", r->start_time);
3566 ndr_print_uint32(ndr, "until_time", r->until_time);
3567 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3568 ndr_print_uint32(ndr, "size", r->size);
3569 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3570 ndr_print_uint32(ndr, "time", r->time);
3571 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3575 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
3577 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
3580 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
3582 if (ndr_flags & NDR_SCALARS) {
3583 NDR_CHECK(ndr_push_align(ndr, 4));
3584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
3586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
3588 if (ndr_flags & NDR_BUFFERS) {
3590 return NDR_ERR_SUCCESS;
3593 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
3595 if (ndr_flags & NDR_SCALARS) {
3596 NDR_CHECK(ndr_pull_align(ndr, 4));
3597 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3598 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
3599 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
3601 if (ndr_flags & NDR_BUFFERS) {
3603 return NDR_ERR_SUCCESS;
3606 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
3608 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
3610 ndr_print_uint32(ndr, "job_id", r->job_id);
3611 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
3612 ndr_print_uint32(ndr, "reserved", r->reserved);
3616 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
3618 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
3621 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
3623 if (ndr_flags & NDR_SCALARS) {
3624 NDR_CHECK(ndr_push_align(ndr, 4));
3625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3627 uint32_t _flags_save_string = ndr->flags;
3628 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3629 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3630 ndr->flags = _flags_save_string;
3633 uint32_t _flags_save_string = ndr->flags;
3634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3635 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3636 ndr->flags = _flags_save_string;
3639 uint32_t _flags_save_string = ndr->flags;
3640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3641 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3642 ndr->flags = _flags_save_string;
3645 uint32_t _flags_save_string = ndr->flags;
3646 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3647 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3648 ndr->flags = _flags_save_string;
3651 uint32_t _flags_save_string = ndr->flags;
3652 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3653 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3654 ndr->flags = _flags_save_string;
3657 uint32_t _flags_save_string = ndr->flags;
3658 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3659 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3660 ndr->flags = _flags_save_string;
3663 uint32_t _flags_save_string = ndr->flags;
3664 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3665 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3666 ndr->flags = _flags_save_string;
3669 uint32_t _flags_save_string = ndr->flags;
3670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3671 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3672 ndr->flags = _flags_save_string;
3675 uint32_t _flags_save_string = ndr->flags;
3676 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3677 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3678 ndr->flags = _flags_save_string;
3680 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3682 uint32_t _flags_save_string = ndr->flags;
3683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3684 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3685 ndr->flags = _flags_save_string;
3687 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3688 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3695 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3697 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3698 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
3700 if (ndr_flags & NDR_BUFFERS) {
3702 uint32_t _flags_save_string = ndr->flags;
3703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3704 if (r->printer_name) {
3705 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3706 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3708 ndr->flags = _flags_save_string;
3711 uint32_t _flags_save_string = ndr->flags;
3712 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3713 if (r->server_name) {
3714 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3715 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3717 ndr->flags = _flags_save_string;
3720 uint32_t _flags_save_string = ndr->flags;
3721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3723 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3724 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3726 ndr->flags = _flags_save_string;
3729 uint32_t _flags_save_string = ndr->flags;
3730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3731 if (r->document_name) {
3732 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3733 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3735 ndr->flags = _flags_save_string;
3738 uint32_t _flags_save_string = ndr->flags;
3739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3740 if (r->notify_name) {
3741 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3742 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3744 ndr->flags = _flags_save_string;
3747 uint32_t _flags_save_string = ndr->flags;
3748 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3750 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3751 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3753 ndr->flags = _flags_save_string;
3756 uint32_t _flags_save_string = ndr->flags;
3757 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3758 if (r->print_processor) {
3759 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3760 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3762 ndr->flags = _flags_save_string;
3765 uint32_t _flags_save_string = ndr->flags;
3766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3767 if (r->parameters) {
3768 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3769 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3771 ndr->flags = _flags_save_string;
3774 uint32_t _flags_save_string = ndr->flags;
3775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3776 if (r->driver_name) {
3777 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3778 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3780 ndr->flags = _flags_save_string;
3783 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3784 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3787 uint32_t _flags_save_string = ndr->flags;
3788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3789 if (r->text_status) {
3790 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3791 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3793 ndr->flags = _flags_save_string;
3796 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3797 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3800 return NDR_ERR_SUCCESS;
3803 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
3805 uint32_t _ptr_printer_name;
3806 TALLOC_CTX *_mem_save_printer_name_0;
3807 uint32_t _ptr_server_name;
3808 TALLOC_CTX *_mem_save_server_name_0;
3809 uint32_t _ptr_user_name;
3810 TALLOC_CTX *_mem_save_user_name_0;
3811 uint32_t _ptr_document_name;
3812 TALLOC_CTX *_mem_save_document_name_0;
3813 uint32_t _ptr_notify_name;
3814 TALLOC_CTX *_mem_save_notify_name_0;
3815 uint32_t _ptr_data_type;
3816 TALLOC_CTX *_mem_save_data_type_0;
3817 uint32_t _ptr_print_processor;
3818 TALLOC_CTX *_mem_save_print_processor_0;
3819 uint32_t _ptr_parameters;
3820 TALLOC_CTX *_mem_save_parameters_0;
3821 uint32_t _ptr_driver_name;
3822 TALLOC_CTX *_mem_save_driver_name_0;
3823 uint32_t _ptr_devmode;
3824 TALLOC_CTX *_mem_save_devmode_0;
3825 uint32_t _ptr_text_status;
3826 TALLOC_CTX *_mem_save_text_status_0;
3827 uint32_t _ptr_secdesc;
3828 TALLOC_CTX *_mem_save_secdesc_0;
3829 if (ndr_flags & NDR_SCALARS) {
3830 NDR_CHECK(ndr_pull_align(ndr, 4));
3831 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3833 uint32_t _flags_save_string = ndr->flags;
3834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3835 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3836 if (_ptr_printer_name) {
3837 NDR_PULL_ALLOC(ndr, r->printer_name);
3838 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3840 r->printer_name = NULL;
3842 ndr->flags = _flags_save_string;
3845 uint32_t _flags_save_string = ndr->flags;
3846 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3847 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3848 if (_ptr_server_name) {
3849 NDR_PULL_ALLOC(ndr, r->server_name);
3850 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3852 r->server_name = NULL;
3854 ndr->flags = _flags_save_string;
3857 uint32_t _flags_save_string = ndr->flags;
3858 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3859 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3860 if (_ptr_user_name) {
3861 NDR_PULL_ALLOC(ndr, r->user_name);
3862 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3864 r->user_name = NULL;
3866 ndr->flags = _flags_save_string;
3869 uint32_t _flags_save_string = ndr->flags;
3870 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3871 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3872 if (_ptr_document_name) {
3873 NDR_PULL_ALLOC(ndr, r->document_name);
3874 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3876 r->document_name = NULL;
3878 ndr->flags = _flags_save_string;
3881 uint32_t _flags_save_string = ndr->flags;
3882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3884 if (_ptr_notify_name) {
3885 NDR_PULL_ALLOC(ndr, r->notify_name);
3886 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3888 r->notify_name = NULL;
3890 ndr->flags = _flags_save_string;
3893 uint32_t _flags_save_string = ndr->flags;
3894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3896 if (_ptr_data_type) {
3897 NDR_PULL_ALLOC(ndr, r->data_type);
3898 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3900 r->data_type = NULL;
3902 ndr->flags = _flags_save_string;
3905 uint32_t _flags_save_string = ndr->flags;
3906 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3908 if (_ptr_print_processor) {
3909 NDR_PULL_ALLOC(ndr, r->print_processor);
3910 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3912 r->print_processor = NULL;
3914 ndr->flags = _flags_save_string;
3917 uint32_t _flags_save_string = ndr->flags;
3918 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3920 if (_ptr_parameters) {
3921 NDR_PULL_ALLOC(ndr, r->parameters);
3922 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3924 r->parameters = NULL;
3926 ndr->flags = _flags_save_string;
3929 uint32_t _flags_save_string = ndr->flags;
3930 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3931 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3932 if (_ptr_driver_name) {
3933 NDR_PULL_ALLOC(ndr, r->driver_name);
3934 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3936 r->driver_name = NULL;
3938 ndr->flags = _flags_save_string;
3940 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3942 NDR_PULL_ALLOC(ndr, r->devmode);
3943 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3948 uint32_t _flags_save_string = ndr->flags;
3949 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3950 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3951 if (_ptr_text_status) {
3952 NDR_PULL_ALLOC(ndr, r->text_status);
3953 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3955 r->text_status = NULL;
3957 ndr->flags = _flags_save_string;
3959 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3961 NDR_PULL_ALLOC(ndr, r->secdesc);
3962 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3966 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3967 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3968 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3969 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3970 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3971 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3972 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3973 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3974 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3975 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
3978 if (ndr_flags & NDR_BUFFERS) {
3980 uint32_t _flags_save_string = ndr->flags;
3981 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3982 if (r->printer_name) {
3983 uint32_t _relative_save_offset;
3984 _relative_save_offset = ndr->offset;
3985 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3986 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3987 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3988 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3990 ndr->offset = _relative_save_offset;
3992 ndr->flags = _flags_save_string;
3995 uint32_t _flags_save_string = ndr->flags;
3996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3997 if (r->server_name) {
3998 uint32_t _relative_save_offset;
3999 _relative_save_offset = ndr->offset;
4000 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4001 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4002 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4003 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4005 ndr->offset = _relative_save_offset;
4007 ndr->flags = _flags_save_string;
4010 uint32_t _flags_save_string = ndr->flags;
4011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4013 uint32_t _relative_save_offset;
4014 _relative_save_offset = ndr->offset;
4015 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4016 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4017 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4018 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4020 ndr->offset = _relative_save_offset;
4022 ndr->flags = _flags_save_string;
4025 uint32_t _flags_save_string = ndr->flags;
4026 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4027 if (r->document_name) {
4028 uint32_t _relative_save_offset;
4029 _relative_save_offset = ndr->offset;
4030 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4031 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4032 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4033 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4035 ndr->offset = _relative_save_offset;
4037 ndr->flags = _flags_save_string;
4040 uint32_t _flags_save_string = ndr->flags;
4041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4042 if (r->notify_name) {
4043 uint32_t _relative_save_offset;
4044 _relative_save_offset = ndr->offset;
4045 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4046 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4047 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4048 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4050 ndr->offset = _relative_save_offset;
4052 ndr->flags = _flags_save_string;
4055 uint32_t _flags_save_string = ndr->flags;
4056 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4058 uint32_t _relative_save_offset;
4059 _relative_save_offset = ndr->offset;
4060 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4061 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4062 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4063 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4064 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4065 ndr->offset = _relative_save_offset;
4067 ndr->flags = _flags_save_string;
4070 uint32_t _flags_save_string = ndr->flags;
4071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4072 if (r->print_processor) {
4073 uint32_t _relative_save_offset;
4074 _relative_save_offset = ndr->offset;
4075 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4076 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4077 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4078 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4080 ndr->offset = _relative_save_offset;
4082 ndr->flags = _flags_save_string;
4085 uint32_t _flags_save_string = ndr->flags;
4086 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4087 if (r->parameters) {
4088 uint32_t _relative_save_offset;
4089 _relative_save_offset = ndr->offset;
4090 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4091 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4092 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4093 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4095 ndr->offset = _relative_save_offset;
4097 ndr->flags = _flags_save_string;
4100 uint32_t _flags_save_string = ndr->flags;
4101 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4102 if (r->driver_name) {
4103 uint32_t _relative_save_offset;
4104 _relative_save_offset = ndr->offset;
4105 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4106 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4107 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4108 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4109 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4110 ndr->offset = _relative_save_offset;
4112 ndr->flags = _flags_save_string;
4115 uint32_t _relative_save_offset;
4116 _relative_save_offset = ndr->offset;
4117 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4118 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4119 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4120 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4122 ndr->offset = _relative_save_offset;
4125 uint32_t _flags_save_string = ndr->flags;
4126 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4127 if (r->text_status) {
4128 uint32_t _relative_save_offset;
4129 _relative_save_offset = ndr->offset;
4130 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4131 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4132 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4133 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4134 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4135 ndr->offset = _relative_save_offset;
4137 ndr->flags = _flags_save_string;
4140 uint32_t _relative_save_offset;
4141 _relative_save_offset = ndr->offset;
4142 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4143 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4144 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4145 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4147 ndr->offset = _relative_save_offset;
4150 return NDR_ERR_SUCCESS;
4153 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4155 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4157 ndr_print_uint32(ndr, "job_id", r->job_id);
4158 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4160 if (r->printer_name) {
4161 ndr_print_string(ndr, "printer_name", r->printer_name);
4164 ndr_print_ptr(ndr, "server_name", r->server_name);
4166 if (r->server_name) {
4167 ndr_print_string(ndr, "server_name", r->server_name);
4170 ndr_print_ptr(ndr, "user_name", r->user_name);
4173 ndr_print_string(ndr, "user_name", r->user_name);
4176 ndr_print_ptr(ndr, "document_name", r->document_name);
4178 if (r->document_name) {
4179 ndr_print_string(ndr, "document_name", r->document_name);
4182 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4184 if (r->notify_name) {
4185 ndr_print_string(ndr, "notify_name", r->notify_name);
4188 ndr_print_ptr(ndr, "data_type", r->data_type);
4191 ndr_print_string(ndr, "data_type", r->data_type);
4194 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4196 if (r->print_processor) {
4197 ndr_print_string(ndr, "print_processor", r->print_processor);
4200 ndr_print_ptr(ndr, "parameters", r->parameters);
4202 if (r->parameters) {
4203 ndr_print_string(ndr, "parameters", r->parameters);
4206 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4208 if (r->driver_name) {
4209 ndr_print_string(ndr, "driver_name", r->driver_name);
4212 ndr_print_ptr(ndr, "devmode", r->devmode);
4215 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4218 ndr_print_ptr(ndr, "text_status", r->text_status);
4220 if (r->text_status) {
4221 ndr_print_string(ndr, "text_status", r->text_status);
4224 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4227 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4230 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4231 ndr_print_uint32(ndr, "priority", r->priority);
4232 ndr_print_uint32(ndr, "position", r->position);
4233 ndr_print_uint32(ndr, "start_time", r->start_time);
4234 ndr_print_uint32(ndr, "until_time", r->until_time);
4235 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4236 ndr_print_uint32(ndr, "size", r->size);
4237 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4238 ndr_print_uint32(ndr, "time", r->time);
4239 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4240 ndr_print_uint32(ndr, "size_high", r->size_high);
4244 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
4246 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
4249 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4251 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4252 if (ndr_flags & NDR_SCALARS) {
4253 int level = ndr_push_get_switch_value(ndr, r);
4256 NDR_CHECK(ndr_push_align(ndr, 4));
4257 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4258 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4262 NDR_CHECK(ndr_push_align(ndr, 4));
4263 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4264 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4268 NDR_CHECK(ndr_push_align(ndr, 4));
4269 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4270 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4274 NDR_CHECK(ndr_push_align(ndr, 4));
4275 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4276 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4284 if (ndr_flags & NDR_BUFFERS) {
4285 int level = ndr_push_get_switch_value(ndr, r);
4286 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
4289 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4293 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4300 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4308 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
4309 return NDR_ERR_SUCCESS;
4312 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
4314 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
4316 level = ndr_pull_get_switch_value(ndr, r);
4317 if (ndr_flags & NDR_SCALARS) {
4320 NDR_CHECK(ndr_pull_align(ndr, 4));
4321 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4322 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4326 NDR_CHECK(ndr_pull_align(ndr, 4));
4327 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4328 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4332 NDR_CHECK(ndr_pull_align(ndr, 4));
4333 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4334 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4338 NDR_CHECK(ndr_pull_align(ndr, 4));
4339 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4340 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4348 if (ndr_flags & NDR_BUFFERS) {
4349 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
4352 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4356 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4363 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4371 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
4372 return NDR_ERR_SUCCESS;
4375 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
4378 level = ndr_print_get_switch_value(ndr, r);
4379 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
4382 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
4386 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
4390 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
4394 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
4403 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
4405 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
4408 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
4410 if (ndr_flags & NDR_SCALARS) {
4411 NDR_CHECK(ndr_push_align(ndr, 4));
4412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4413 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4414 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4415 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4416 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4417 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4418 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4419 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4424 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4426 if (ndr_flags & NDR_BUFFERS) {
4427 if (r->printer_name) {
4428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4431 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4433 if (r->server_name) {
4434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4437 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4443 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4445 if (r->document_name) {
4446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4449 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4455 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4457 if (r->text_status) {
4458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4461 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4464 return NDR_ERR_SUCCESS;
4467 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
4469 uint32_t _ptr_printer_name;
4470 TALLOC_CTX *_mem_save_printer_name_0;
4471 uint32_t _ptr_server_name;
4472 TALLOC_CTX *_mem_save_server_name_0;
4473 uint32_t _ptr_user_name;
4474 TALLOC_CTX *_mem_save_user_name_0;
4475 uint32_t _ptr_document_name;
4476 TALLOC_CTX *_mem_save_document_name_0;
4477 uint32_t _ptr_data_type;
4478 TALLOC_CTX *_mem_save_data_type_0;
4479 uint32_t _ptr_text_status;
4480 TALLOC_CTX *_mem_save_text_status_0;
4481 if (ndr_flags & NDR_SCALARS) {
4482 NDR_CHECK(ndr_pull_align(ndr, 4));
4483 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4484 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4485 if (_ptr_printer_name) {
4486 NDR_PULL_ALLOC(ndr, r->printer_name);
4488 r->printer_name = NULL;
4490 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4491 if (_ptr_server_name) {
4492 NDR_PULL_ALLOC(ndr, r->server_name);
4494 r->server_name = NULL;
4496 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4497 if (_ptr_user_name) {
4498 NDR_PULL_ALLOC(ndr, r->user_name);
4500 r->user_name = NULL;
4502 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4503 if (_ptr_document_name) {
4504 NDR_PULL_ALLOC(ndr, r->document_name);
4506 r->document_name = NULL;
4508 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4509 if (_ptr_data_type) {
4510 NDR_PULL_ALLOC(ndr, r->data_type);
4512 r->data_type = NULL;
4514 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4515 if (_ptr_text_status) {
4516 NDR_PULL_ALLOC(ndr, r->text_status);
4518 r->text_status = NULL;
4520 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4522 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4523 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4524 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4525 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4527 if (ndr_flags & NDR_BUFFERS) {
4528 if (r->printer_name) {
4529 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4530 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4531 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4532 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4533 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4534 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
4536 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4537 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
4538 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4540 if (r->server_name) {
4541 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4542 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4543 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4544 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4545 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4546 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
4548 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4549 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
4550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4553 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4554 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4555 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4556 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4557 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4558 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_name), ndr_get_array_length(ndr, &r->user_name));
4560 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4561 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
4562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4564 if (r->document_name) {
4565 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4566 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4567 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4568 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4569 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4570 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));
4572 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4573 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
4574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4577 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4578 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4579 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4580 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4581 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4582 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_type), ndr_get_array_length(ndr, &r->data_type));
4584 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4585 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
4586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4588 if (r->text_status) {
4589 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4590 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4591 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
4592 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
4593 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
4594 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
4596 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
4597 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
4598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4601 return NDR_ERR_SUCCESS;
4604 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
4606 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
4608 ndr_print_uint32(ndr, "job_id", r->job_id);
4609 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4611 if (r->printer_name) {
4612 ndr_print_string(ndr, "printer_name", r->printer_name);
4615 ndr_print_ptr(ndr, "server_name", r->server_name);
4617 if (r->server_name) {
4618 ndr_print_string(ndr, "server_name", r->server_name);
4621 ndr_print_ptr(ndr, "user_name", r->user_name);
4624 ndr_print_string(ndr, "user_name", r->user_name);
4627 ndr_print_ptr(ndr, "document_name", r->document_name);
4629 if (r->document_name) {
4630 ndr_print_string(ndr, "document_name", r->document_name);
4633 ndr_print_ptr(ndr, "data_type", r->data_type);
4636 ndr_print_string(ndr, "data_type", r->data_type);
4639 ndr_print_ptr(ndr, "text_status", r->text_status);
4641 if (r->text_status) {
4642 ndr_print_string(ndr, "text_status", r->text_status);
4645 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4646 ndr_print_uint32(ndr, "priority", r->priority);
4647 ndr_print_uint32(ndr, "position", r->position);
4648 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4649 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4650 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4654 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
4656 if (ndr_flags & NDR_SCALARS) {
4657 NDR_CHECK(ndr_push_align(ndr, 4));
4658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4659 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4660 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4661 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4662 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4663 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
4664 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4665 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
4666 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
4667 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
4669 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
4671 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4676 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4678 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4682 if (ndr_flags & NDR_BUFFERS) {
4683 if (r->printer_name) {
4684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4686 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4687 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4689 if (r->server_name) {
4690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4693 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4697 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4698 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4699 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4701 if (r->document_name) {
4702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4705 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4707 if (r->notify_name) {
4708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
4709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
4711 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4717 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4719 if (r->print_processor) {
4720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
4721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
4723 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4725 if (r->parameters) {
4726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
4727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
4729 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4731 if (r->driver_name) {
4732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4735 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4737 if (r->text_status) {
4738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4741 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4744 return NDR_ERR_SUCCESS;
4747 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
4749 uint32_t _ptr_printer_name;
4750 TALLOC_CTX *_mem_save_printer_name_0;
4751 uint32_t _ptr_server_name;
4752 TALLOC_CTX *_mem_save_server_name_0;
4753 uint32_t _ptr_user_name;
4754 TALLOC_CTX *_mem_save_user_name_0;
4755 uint32_t _ptr_document_name;
4756 TALLOC_CTX *_mem_save_document_name_0;
4757 uint32_t _ptr_notify_name;
4758 TALLOC_CTX *_mem_save_notify_name_0;
4759 uint32_t _ptr_data_type;
4760 TALLOC_CTX *_mem_save_data_type_0;
4761 uint32_t _ptr_print_processor;
4762 TALLOC_CTX *_mem_save_print_processor_0;
4763 uint32_t _ptr_parameters;
4764 TALLOC_CTX *_mem_save_parameters_0;
4765 uint32_t _ptr_driver_name;
4766 TALLOC_CTX *_mem_save_driver_name_0;
4767 uint32_t _ptr_text_status;
4768 TALLOC_CTX *_mem_save_text_status_0;
4769 if (ndr_flags & NDR_SCALARS) {
4770 NDR_CHECK(ndr_pull_align(ndr, 4));
4771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4772 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4773 if (_ptr_printer_name) {
4774 NDR_PULL_ALLOC(ndr, r->printer_name);
4776 r->printer_name = NULL;
4778 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4779 if (_ptr_server_name) {
4780 NDR_PULL_ALLOC(ndr, r->server_name);
4782 r->server_name = NULL;
4784 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4785 if (_ptr_user_name) {
4786 NDR_PULL_ALLOC(ndr, r->user_name);
4788 r->user_name = NULL;
4790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4791 if (_ptr_document_name) {
4792 NDR_PULL_ALLOC(ndr, r->document_name);
4794 r->document_name = NULL;
4796 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4797 if (_ptr_notify_name) {
4798 NDR_PULL_ALLOC(ndr, r->notify_name);
4800 r->notify_name = NULL;
4802 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4803 if (_ptr_data_type) {
4804 NDR_PULL_ALLOC(ndr, r->data_type);
4806 r->data_type = NULL;
4808 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4809 if (_ptr_print_processor) {
4810 NDR_PULL_ALLOC(ndr, r->print_processor);
4812 r->print_processor = NULL;
4814 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4815 if (_ptr_parameters) {
4816 NDR_PULL_ALLOC(ndr, r->parameters);
4818 r->parameters = NULL;
4820 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4821 if (_ptr_driver_name) {
4822 NDR_PULL_ALLOC(ndr, r->driver_name);
4824 r->driver_name = NULL;
4826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
4827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4828 if (_ptr_text_status) {
4829 NDR_PULL_ALLOC(ndr, r->text_status);
4831 r->text_status = NULL;
4833 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
4834 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4835 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4836 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4837 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4838 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4840 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4841 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4843 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4845 if (ndr_flags & NDR_BUFFERS) {
4846 if (r->printer_name) {
4847 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4848 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4849 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4850 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4851 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4852 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
4854 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4855 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
4856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4858 if (r->server_name) {
4859 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4860 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4861 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4862 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4863 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4864 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
4866 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4867 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
4868 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4871 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4872 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4873 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4874 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4875 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4876 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_name), ndr_get_array_length(ndr, &r->user_name));
4878 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4879 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
4880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4882 if (r->document_name) {
4883 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4884 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4885 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4886 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4887 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4888 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));
4890 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4891 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
4892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4894 if (r->notify_name) {
4895 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4896 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4897 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
4898 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
4899 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
4900 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->notify_name), ndr_get_array_length(ndr, &r->notify_name));
4902 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
4903 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
4904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4907 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4908 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4909 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4910 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4911 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4912 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_type), ndr_get_array_length(ndr, &r->data_type));
4914 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4915 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
4916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4918 if (r->print_processor) {
4919 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4920 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4921 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
4922 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
4923 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
4924 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));
4926 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
4927 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
4928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4930 if (r->parameters) {
4931 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4932 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4933 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
4934 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
4935 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
4936 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));
4938 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
4939 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
4940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4942 if (r->driver_name) {
4943 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4944 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4945 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4946 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4947 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4948 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));
4950 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4951 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4954 if (r->text_status) {
4955 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4956 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4957 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
4958 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
4959 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
4960 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
4962 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
4963 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
4964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4967 return NDR_ERR_SUCCESS;
4970 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
4972 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
4974 ndr_print_uint32(ndr, "job_id", r->job_id);
4975 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4977 if (r->printer_name) {
4978 ndr_print_string(ndr, "printer_name", r->printer_name);
4981 ndr_print_ptr(ndr, "server_name", r->server_name);
4983 if (r->server_name) {
4984 ndr_print_string(ndr, "server_name", r->server_name);
4987 ndr_print_ptr(ndr, "user_name", r->user_name);
4990 ndr_print_string(ndr, "user_name", r->user_name);
4993 ndr_print_ptr(ndr, "document_name", r->document_name);
4995 if (r->document_name) {
4996 ndr_print_string(ndr, "document_name", r->document_name);
4999 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5001 if (r->notify_name) {
5002 ndr_print_string(ndr, "notify_name", r->notify_name);
5005 ndr_print_ptr(ndr, "data_type", r->data_type);
5008 ndr_print_string(ndr, "data_type", r->data_type);
5011 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5013 if (r->print_processor) {
5014 ndr_print_string(ndr, "print_processor", r->print_processor);
5017 ndr_print_ptr(ndr, "parameters", r->parameters);
5019 if (r->parameters) {
5020 ndr_print_string(ndr, "parameters", r->parameters);
5023 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5025 if (r->driver_name) {
5026 ndr_print_string(ndr, "driver_name", r->driver_name);
5029 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5030 ndr_print_ptr(ndr, "text_status", r->text_status);
5032 if (r->text_status) {
5033 ndr_print_string(ndr, "text_status", r->text_status);
5036 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5037 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5038 ndr_print_uint32(ndr, "priority", r->priority);
5039 ndr_print_uint32(ndr, "position", r->position);
5040 ndr_print_uint32(ndr, "start_time", r->start_time);
5041 ndr_print_uint32(ndr, "until_time", r->until_time);
5042 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5043 ndr_print_uint32(ndr, "size", r->size);
5044 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5045 ndr_print_uint32(ndr, "time", r->time);
5046 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5050 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
5052 if (ndr_flags & NDR_SCALARS) {
5053 NDR_CHECK(ndr_push_align(ndr, 4));
5054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5055 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5056 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5057 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5058 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5059 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5060 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5061 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5062 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5063 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5065 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5067 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5068 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5070 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5074 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5079 if (ndr_flags & NDR_BUFFERS) {
5080 if (r->printer_name) {
5081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5084 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5086 if (r->server_name) {
5087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5090 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5096 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5098 if (r->document_name) {
5099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5102 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5104 if (r->notify_name) {
5105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5108 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5114 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5116 if (r->print_processor) {
5117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5120 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5122 if (r->parameters) {
5123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5126 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5128 if (r->driver_name) {
5129 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5132 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5134 if (r->text_status) {
5135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5138 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5141 return NDR_ERR_SUCCESS;
5144 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5146 uint32_t _ptr_printer_name;
5147 TALLOC_CTX *_mem_save_printer_name_0;
5148 uint32_t _ptr_server_name;
5149 TALLOC_CTX *_mem_save_server_name_0;
5150 uint32_t _ptr_user_name;
5151 TALLOC_CTX *_mem_save_user_name_0;
5152 uint32_t _ptr_document_name;
5153 TALLOC_CTX *_mem_save_document_name_0;
5154 uint32_t _ptr_notify_name;
5155 TALLOC_CTX *_mem_save_notify_name_0;
5156 uint32_t _ptr_data_type;
5157 TALLOC_CTX *_mem_save_data_type_0;
5158 uint32_t _ptr_print_processor;
5159 TALLOC_CTX *_mem_save_print_processor_0;
5160 uint32_t _ptr_parameters;
5161 TALLOC_CTX *_mem_save_parameters_0;
5162 uint32_t _ptr_driver_name;
5163 TALLOC_CTX *_mem_save_driver_name_0;
5164 uint32_t _ptr_text_status;
5165 TALLOC_CTX *_mem_save_text_status_0;
5166 if (ndr_flags & NDR_SCALARS) {
5167 NDR_CHECK(ndr_pull_align(ndr, 4));
5168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5170 if (_ptr_printer_name) {
5171 NDR_PULL_ALLOC(ndr, r->printer_name);
5173 r->printer_name = NULL;
5175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5176 if (_ptr_server_name) {
5177 NDR_PULL_ALLOC(ndr, r->server_name);
5179 r->server_name = NULL;
5181 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5182 if (_ptr_user_name) {
5183 NDR_PULL_ALLOC(ndr, r->user_name);
5185 r->user_name = NULL;
5187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5188 if (_ptr_document_name) {
5189 NDR_PULL_ALLOC(ndr, r->document_name);
5191 r->document_name = NULL;
5193 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5194 if (_ptr_notify_name) {
5195 NDR_PULL_ALLOC(ndr, r->notify_name);
5197 r->notify_name = NULL;
5199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5200 if (_ptr_data_type) {
5201 NDR_PULL_ALLOC(ndr, r->data_type);
5203 r->data_type = NULL;
5205 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5206 if (_ptr_print_processor) {
5207 NDR_PULL_ALLOC(ndr, r->print_processor);
5209 r->print_processor = NULL;
5211 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5212 if (_ptr_parameters) {
5213 NDR_PULL_ALLOC(ndr, r->parameters);
5215 r->parameters = NULL;
5217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5218 if (_ptr_driver_name) {
5219 NDR_PULL_ALLOC(ndr, r->driver_name);
5221 r->driver_name = NULL;
5223 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5224 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5225 if (_ptr_text_status) {
5226 NDR_PULL_ALLOC(ndr, r->text_status);
5228 r->text_status = NULL;
5230 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5231 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5232 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5233 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5235 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5236 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5237 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5238 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5239 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5240 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5241 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5243 if (ndr_flags & NDR_BUFFERS) {
5244 if (r->printer_name) {
5245 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5246 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5247 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5248 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5249 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5250 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
5252 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5253 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5254 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5256 if (r->server_name) {
5257 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5258 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5259 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5260 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5261 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5262 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
5264 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5265 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5266 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5269 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5270 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5271 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5272 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5273 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5274 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_name), ndr_get_array_length(ndr, &r->user_name));
5276 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5277 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5280 if (r->document_name) {
5281 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5282 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5283 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5284 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5285 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5286 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));
5288 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5289 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5292 if (r->notify_name) {
5293 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5294 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5295 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5296 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5297 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5298 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->notify_name), ndr_get_array_length(ndr, &r->notify_name));
5300 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5301 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5305 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5306 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5307 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5308 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5309 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5310 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_type), ndr_get_array_length(ndr, &r->data_type));
5312 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5313 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5314 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5316 if (r->print_processor) {
5317 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5318 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5319 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5320 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5321 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5322 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));
5324 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5325 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5328 if (r->parameters) {
5329 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5330 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5331 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5332 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5333 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5334 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));
5336 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5337 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5340 if (r->driver_name) {
5341 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5342 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5343 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5344 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5345 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5346 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));
5348 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5349 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5352 if (r->text_status) {
5353 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5354 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5355 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5356 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5357 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5358 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
5360 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5361 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5362 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5365 return NDR_ERR_SUCCESS;
5368 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
5370 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
5372 ndr_print_uint32(ndr, "job_id", r->job_id);
5373 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5375 if (r->printer_name) {
5376 ndr_print_string(ndr, "printer_name", r->printer_name);
5379 ndr_print_ptr(ndr, "server_name", r->server_name);
5381 if (r->server_name) {
5382 ndr_print_string(ndr, "server_name", r->server_name);
5385 ndr_print_ptr(ndr, "user_name", r->user_name);
5388 ndr_print_string(ndr, "user_name", r->user_name);
5391 ndr_print_ptr(ndr, "document_name", r->document_name);
5393 if (r->document_name) {
5394 ndr_print_string(ndr, "document_name", r->document_name);
5397 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5399 if (r->notify_name) {
5400 ndr_print_string(ndr, "notify_name", r->notify_name);
5403 ndr_print_ptr(ndr, "data_type", r->data_type);
5406 ndr_print_string(ndr, "data_type", r->data_type);
5409 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5411 if (r->print_processor) {
5412 ndr_print_string(ndr, "print_processor", r->print_processor);
5415 ndr_print_ptr(ndr, "parameters", r->parameters);
5417 if (r->parameters) {
5418 ndr_print_string(ndr, "parameters", r->parameters);
5421 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5423 if (r->driver_name) {
5424 ndr_print_string(ndr, "driver_name", r->driver_name);
5427 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5428 ndr_print_ptr(ndr, "text_status", r->text_status);
5430 if (r->text_status) {
5431 ndr_print_string(ndr, "text_status", r->text_status);
5434 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5435 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5436 ndr_print_uint32(ndr, "priority", r->priority);
5437 ndr_print_uint32(ndr, "position", r->position);
5438 ndr_print_uint32(ndr, "start_time", r->start_time);
5439 ndr_print_uint32(ndr, "until_time", r->until_time);
5440 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5441 ndr_print_uint32(ndr, "size", r->size);
5442 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5443 ndr_print_uint32(ndr, "time", r->time);
5444 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5445 ndr_print_uint32(ndr, "size_high", r->size_high);
5449 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
5451 if (ndr_flags & NDR_SCALARS) {
5452 int level = ndr_push_get_switch_value(ndr, r);
5453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5456 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5460 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5468 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
5476 if (ndr_flags & NDR_BUFFERS) {
5477 int level = ndr_push_get_switch_value(ndr, r);
5481 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5487 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5493 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5499 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5508 return NDR_ERR_SUCCESS;
5511 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
5515 TALLOC_CTX *_mem_save_info1_0;
5516 TALLOC_CTX *_mem_save_info2_0;
5517 TALLOC_CTX *_mem_save_info3_0;
5518 TALLOC_CTX *_mem_save_info4_0;
5519 level = ndr_pull_get_switch_value(ndr, r);
5520 if (ndr_flags & NDR_SCALARS) {
5521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5522 if (_level != level) {
5523 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5527 uint32_t _ptr_info1;
5528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5530 NDR_PULL_ALLOC(ndr, r->info1);
5537 uint32_t _ptr_info2;
5538 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5540 NDR_PULL_ALLOC(ndr, r->info2);
5547 uint32_t _ptr_info3;
5548 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5550 NDR_PULL_ALLOC(ndr, r->info3);
5557 uint32_t _ptr_info4;
5558 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
5560 NDR_PULL_ALLOC(ndr, r->info4);
5571 if (ndr_flags & NDR_BUFFERS) {
5575 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5576 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5577 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5584 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5585 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5586 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5593 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5594 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5595 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5602 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
5603 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
5604 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5605 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
5614 return NDR_ERR_SUCCESS;
5617 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
5620 level = ndr_print_get_switch_value(ndr, r);
5621 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
5624 ndr_print_ptr(ndr, "info1", r->info1);
5627 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
5633 ndr_print_ptr(ndr, "info2", r->info2);
5636 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
5642 ndr_print_ptr(ndr, "info3", r->info3);
5645 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
5651 ndr_print_ptr(ndr, "info4", r->info4);
5654 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
5665 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
5667 if (ndr_flags & NDR_SCALARS) {
5668 NDR_CHECK(ndr_push_align(ndr, 4));
5669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
5670 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
5671 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5673 if (ndr_flags & NDR_BUFFERS) {
5674 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5676 return NDR_ERR_SUCCESS;
5679 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
5681 if (ndr_flags & NDR_SCALARS) {
5682 NDR_CHECK(ndr_pull_align(ndr, 4));
5683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
5684 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
5685 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5687 if (ndr_flags & NDR_BUFFERS) {
5688 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5690 return NDR_ERR_SUCCESS;
5693 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
5695 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
5697 ndr_print_uint32(ndr, "level", r->level);
5698 ndr_print_set_switch_value(ndr, &r->info, r->level);
5699 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
5703 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
5705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5706 return NDR_ERR_SUCCESS;
5709 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
5712 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5714 return NDR_ERR_SUCCESS;
5717 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
5719 const char *val = NULL;
5722 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
5723 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
5724 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
5725 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
5726 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
5727 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
5728 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
5729 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
5730 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
5732 ndr_print_enum(ndr, name, "ENUM", val, r);
5735 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
5737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5738 return NDR_ERR_SUCCESS;
5741 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
5744 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5746 return NDR_ERR_SUCCESS;
5749 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
5751 const char *val = NULL;
5754 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
5755 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
5756 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
5757 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
5758 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
5760 ndr_print_enum(ndr, name, "ENUM", val, r);
5763 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
5765 if (ndr_flags & NDR_SCALARS) {
5766 NDR_CHECK(ndr_push_align(ndr, 4));
5767 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
5768 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
5769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
5770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
5771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
5772 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
5773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
5774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
5776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
5777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
5778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
5779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
5780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
5781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
5782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
5783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
5784 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
5785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
5786 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
5787 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
5788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
5789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
5790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
5791 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
5792 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
5793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
5794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
5795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
5797 if (ndr_flags & NDR_BUFFERS) {
5798 if (r->servername) {
5799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5801 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5802 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5804 if (r->printername) {
5805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5808 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5811 return NDR_ERR_SUCCESS;
5814 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
5816 uint32_t _ptr_servername;
5817 TALLOC_CTX *_mem_save_servername_0;
5818 uint32_t _ptr_printername;
5819 TALLOC_CTX *_mem_save_printername_0;
5820 if (ndr_flags & NDR_SCALARS) {
5821 NDR_CHECK(ndr_pull_align(ndr, 4));
5822 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
5823 if (_ptr_servername) {
5824 NDR_PULL_ALLOC(ndr, r->servername);
5826 r->servername = NULL;
5828 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
5829 if (_ptr_printername) {
5830 NDR_PULL_ALLOC(ndr, r->printername);
5832 r->printername = NULL;
5834 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
5835 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
5836 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
5837 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
5838 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
5839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5840 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
5841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
5842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
5843 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
5844 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
5845 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
5846 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
5847 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
5848 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
5849 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
5850 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
5851 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
5852 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
5853 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
5854 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
5855 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
5856 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
5857 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
5858 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
5859 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
5860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
5862 if (ndr_flags & NDR_BUFFERS) {
5863 if (r->servername) {
5864 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
5865 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
5866 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
5867 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
5868 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
5869 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));
5871 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
5872 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
5873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
5875 if (r->printername) {
5876 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
5877 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
5878 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
5879 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
5880 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
5881 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));
5883 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
5884 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
5885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
5888 return NDR_ERR_SUCCESS;
5891 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
5893 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
5895 ndr_print_ptr(ndr, "servername", r->servername);
5897 if (r->servername) {
5898 ndr_print_string(ndr, "servername", r->servername);
5901 ndr_print_ptr(ndr, "printername", r->printername);
5903 if (r->printername) {
5904 ndr_print_string(ndr, "printername", r->printername);
5907 ndr_print_uint32(ndr, "cjobs", r->cjobs);
5908 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
5909 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
5910 ndr_print_spoolss_Time(ndr, "time", &r->time);
5911 ndr_print_uint32(ndr, "global_counter", r->global_counter);
5912 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5913 ndr_print_uint32(ndr, "version", r->version);
5914 ndr_print_uint32(ndr, "free_build", r->free_build);
5915 ndr_print_uint32(ndr, "spooling", r->spooling);
5916 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
5917 ndr_print_uint32(ndr, "session_counter", r->session_counter);
5918 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
5919 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
5920 ndr_print_uint32(ndr, "job_error", r->job_error);
5921 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
5922 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
5923 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
5924 ndr_print_uint32(ndr, "change_id", r->change_id);
5925 ndr_print_WERROR(ndr, "last_error", r->last_error);
5926 ndr_print_uint32(ndr, "status", r->status);
5927 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
5928 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
5929 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
5930 ndr_print_uint16(ndr, "processor_level", r->processor_level);
5931 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
5932 ndr_print_uint32(ndr, "reserved2", r->reserved2);
5933 ndr_print_uint32(ndr, "reserved3", r->reserved3);
5937 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
5939 if (ndr_flags & NDR_SCALARS) {
5940 NDR_CHECK(ndr_push_align(ndr, 4));
5941 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
5942 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
5943 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
5944 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
5946 if (ndr_flags & NDR_BUFFERS) {
5948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
5949 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
5951 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5953 if (r->description) {
5954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
5955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5956 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
5957 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
5961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
5963 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5966 return NDR_ERR_SUCCESS;
5969 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
5972 TALLOC_CTX *_mem_save_name_0;
5973 uint32_t _ptr_description;
5974 TALLOC_CTX *_mem_save_description_0;
5975 uint32_t _ptr_comment;
5976 TALLOC_CTX *_mem_save_comment_0;
5977 if (ndr_flags & NDR_SCALARS) {
5978 NDR_CHECK(ndr_pull_align(ndr, 4));
5979 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
5980 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
5982 NDR_PULL_ALLOC(ndr, r->name);
5986 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
5987 if (_ptr_description) {
5988 NDR_PULL_ALLOC(ndr, r->description);
5990 r->description = NULL;
5992 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
5994 NDR_PULL_ALLOC(ndr, r->comment);
5999 if (ndr_flags & NDR_BUFFERS) {
6001 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6002 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6003 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6004 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6005 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
6006 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));
6008 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
6009 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
6010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6012 if (r->description) {
6013 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6014 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6015 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6016 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6017 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
6018 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));
6020 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
6021 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
6022 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6025 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6026 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6027 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6028 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6029 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6030 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));
6032 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6033 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6037 return NDR_ERR_SUCCESS;
6040 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
6042 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
6044 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
6045 ndr_print_ptr(ndr, "name", r->name);
6048 ndr_print_string(ndr, "name", r->name);
6051 ndr_print_ptr(ndr, "description", r->description);
6053 if (r->description) {
6054 ndr_print_string(ndr, "description", r->description);
6057 ndr_print_ptr(ndr, "comment", r->comment);
6060 ndr_print_string(ndr, "comment", r->comment);
6066 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
6068 if (ndr_flags & NDR_SCALARS) {
6069 NDR_CHECK(ndr_push_align(ndr, 4));
6070 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6071 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6072 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6073 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6074 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6075 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6076 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6077 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
6078 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6079 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6080 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6081 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6082 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
6083 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6088 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6092 if (ndr_flags & NDR_BUFFERS) {
6093 if (r->servername) {
6094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6097 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6099 if (r->printername) {
6100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6103 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6109 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6114 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6115 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6117 if (r->drivername) {
6118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6120 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6121 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6127 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6133 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6137 struct ndr_push *_ndr_devmode;
6138 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6139 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6140 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
6144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6147 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6149 if (r->printprocessor) {
6150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6153 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6159 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6161 if (r->parameters) {
6162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6165 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6169 struct ndr_push *_ndr_secdesc;
6170 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6171 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6172 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6176 return NDR_ERR_SUCCESS;
6179 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6181 uint32_t _ptr_servername;
6182 TALLOC_CTX *_mem_save_servername_0;
6183 uint32_t _ptr_printername;
6184 TALLOC_CTX *_mem_save_printername_0;
6185 uint32_t _ptr_sharename;
6186 TALLOC_CTX *_mem_save_sharename_0;
6187 uint32_t _ptr_portname;
6188 TALLOC_CTX *_mem_save_portname_0;
6189 uint32_t _ptr_drivername;
6190 TALLOC_CTX *_mem_save_drivername_0;
6191 uint32_t _ptr_comment;
6192 TALLOC_CTX *_mem_save_comment_0;
6193 uint32_t _ptr_location;
6194 TALLOC_CTX *_mem_save_location_0;
6195 uint32_t _ptr_devmode;
6196 TALLOC_CTX *_mem_save_devmode_0;
6197 uint32_t _ptr_sepfile;
6198 TALLOC_CTX *_mem_save_sepfile_0;
6199 uint32_t _ptr_printprocessor;
6200 TALLOC_CTX *_mem_save_printprocessor_0;
6201 uint32_t _ptr_datatype;
6202 TALLOC_CTX *_mem_save_datatype_0;
6203 uint32_t _ptr_parameters;
6204 TALLOC_CTX *_mem_save_parameters_0;
6205 uint32_t _ptr_secdesc;
6206 TALLOC_CTX *_mem_save_secdesc_0;
6207 if (ndr_flags & NDR_SCALARS) {
6208 NDR_CHECK(ndr_pull_align(ndr, 4));
6209 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6210 if (_ptr_servername) {
6211 NDR_PULL_ALLOC(ndr, r->servername);
6213 r->servername = NULL;
6215 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6216 if (_ptr_printername) {
6217 NDR_PULL_ALLOC(ndr, r->printername);
6219 r->printername = NULL;
6221 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6222 if (_ptr_sharename) {
6223 NDR_PULL_ALLOC(ndr, r->sharename);
6225 r->sharename = NULL;
6227 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6228 if (_ptr_portname) {
6229 NDR_PULL_ALLOC(ndr, r->portname);
6233 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6234 if (_ptr_drivername) {
6235 NDR_PULL_ALLOC(ndr, r->drivername);
6237 r->drivername = NULL;
6239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6241 NDR_PULL_ALLOC(ndr, r->comment);
6245 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6246 if (_ptr_location) {
6247 NDR_PULL_ALLOC(ndr, r->location);
6251 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
6253 NDR_PULL_ALLOC(ndr, r->devmode);
6257 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6259 NDR_PULL_ALLOC(ndr, r->sepfile);
6263 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6264 if (_ptr_printprocessor) {
6265 NDR_PULL_ALLOC(ndr, r->printprocessor);
6267 r->printprocessor = NULL;
6269 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6270 if (_ptr_datatype) {
6271 NDR_PULL_ALLOC(ndr, r->datatype);
6275 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6276 if (_ptr_parameters) {
6277 NDR_PULL_ALLOC(ndr, r->parameters);
6279 r->parameters = NULL;
6281 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
6283 NDR_PULL_ALLOC(ndr, r->secdesc);
6287 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6288 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6289 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
6290 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
6291 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
6292 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6293 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6294 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
6296 if (ndr_flags & NDR_BUFFERS) {
6297 if (r->servername) {
6298 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6299 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6300 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6301 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6302 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6303 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));
6305 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6306 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6307 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6309 if (r->printername) {
6310 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6311 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6312 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6313 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6314 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6315 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));
6317 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6318 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6322 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
6323 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
6324 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
6325 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
6326 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
6327 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));
6329 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
6330 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
6331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
6334 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6335 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6336 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6337 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6338 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6339 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));
6341 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6342 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6345 if (r->drivername) {
6346 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6347 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
6348 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
6349 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
6350 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
6351 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));
6353 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
6354 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
6355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
6358 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6359 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6360 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6361 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6362 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6363 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));
6365 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6366 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6370 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
6371 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
6372 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
6373 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
6374 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
6375 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));
6377 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
6378 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
6379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
6382 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
6383 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
6385 struct ndr_pull *_ndr_devmode;
6386 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6387 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6388 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
6390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
6393 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
6394 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
6395 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
6396 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
6397 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
6398 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));
6400 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
6401 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
6402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
6404 if (r->printprocessor) {
6405 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6406 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
6407 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
6408 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
6409 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
6410 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));
6412 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
6413 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
6414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
6417 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6418 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
6419 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
6420 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
6421 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
6422 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));
6424 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
6425 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
6426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
6428 if (r->parameters) {
6429 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6430 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6431 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6432 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6433 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6434 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));
6436 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6437 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6441 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6442 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
6444 struct ndr_pull *_ndr_secdesc;
6445 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6446 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6447 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
6452 return NDR_ERR_SUCCESS;
6455 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
6457 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
6459 ndr_print_ptr(ndr, "servername", r->servername);
6461 if (r->servername) {
6462 ndr_print_string(ndr, "servername", r->servername);
6465 ndr_print_ptr(ndr, "printername", r->printername);
6467 if (r->printername) {
6468 ndr_print_string(ndr, "printername", r->printername);
6471 ndr_print_ptr(ndr, "sharename", r->sharename);
6474 ndr_print_string(ndr, "sharename", r->sharename);
6477 ndr_print_ptr(ndr, "portname", r->portname);
6480 ndr_print_string(ndr, "portname", r->portname);
6483 ndr_print_ptr(ndr, "drivername", r->drivername);
6485 if (r->drivername) {
6486 ndr_print_string(ndr, "drivername", r->drivername);
6489 ndr_print_ptr(ndr, "comment", r->comment);
6492 ndr_print_string(ndr, "comment", r->comment);
6495 ndr_print_ptr(ndr, "location", r->location);
6498 ndr_print_string(ndr, "location", r->location);
6501 ndr_print_ptr(ndr, "devmode", r->devmode);
6504 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
6507 ndr_print_ptr(ndr, "sepfile", r->sepfile);
6510 ndr_print_string(ndr, "sepfile", r->sepfile);
6513 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
6515 if (r->printprocessor) {
6516 ndr_print_string(ndr, "printprocessor", r->printprocessor);
6519 ndr_print_ptr(ndr, "datatype", r->datatype);
6522 ndr_print_string(ndr, "datatype", r->datatype);
6525 ndr_print_ptr(ndr, "parameters", r->parameters);
6527 if (r->parameters) {
6528 ndr_print_string(ndr, "parameters", r->parameters);
6531 ndr_print_ptr(ndr, "secdesc", r->secdesc);
6534 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
6537 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6538 ndr_print_uint32(ndr, "priority", r->priority);
6539 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
6540 ndr_print_uint32(ndr, "starttime", r->starttime);
6541 ndr_print_uint32(ndr, "untiltime", r->untiltime);
6542 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6543 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6544 ndr_print_uint32(ndr, "averageppm", r->averageppm);
6548 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
6550 if (ndr_flags & NDR_SCALARS) {
6551 NDR_CHECK(ndr_push_align(ndr, 4));
6552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
6554 if (ndr_flags & NDR_BUFFERS) {
6556 return NDR_ERR_SUCCESS;
6559 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
6561 if (ndr_flags & NDR_SCALARS) {
6562 NDR_CHECK(ndr_pull_align(ndr, 4));
6563 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
6565 if (ndr_flags & NDR_BUFFERS) {
6567 return NDR_ERR_SUCCESS;
6570 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
6572 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
6574 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
6578 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
6580 if (ndr_flags & NDR_SCALARS) {
6581 NDR_CHECK(ndr_push_align(ndr, 4));
6582 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6583 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6584 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6586 if (ndr_flags & NDR_BUFFERS) {
6587 if (r->printername) {
6588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6591 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6593 if (r->servername) {
6594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6597 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6600 return NDR_ERR_SUCCESS;
6603 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
6605 uint32_t _ptr_printername;
6606 TALLOC_CTX *_mem_save_printername_0;
6607 uint32_t _ptr_servername;
6608 TALLOC_CTX *_mem_save_servername_0;
6609 if (ndr_flags & NDR_SCALARS) {
6610 NDR_CHECK(ndr_pull_align(ndr, 4));
6611 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6612 if (_ptr_printername) {
6613 NDR_PULL_ALLOC(ndr, r->printername);
6615 r->printername = NULL;
6617 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6618 if (_ptr_servername) {
6619 NDR_PULL_ALLOC(ndr, r->servername);
6621 r->servername = NULL;
6623 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6625 if (ndr_flags & NDR_BUFFERS) {
6626 if (r->printername) {
6627 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6628 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6629 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6630 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6631 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6632 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));
6634 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6635 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6638 if (r->servername) {
6639 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6640 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6641 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6642 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6643 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6644 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));
6646 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6647 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6648 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6651 return NDR_ERR_SUCCESS;
6654 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
6656 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
6658 ndr_print_ptr(ndr, "printername", r->printername);
6660 if (r->printername) {
6661 ndr_print_string(ndr, "printername", r->printername);
6664 ndr_print_ptr(ndr, "servername", r->servername);
6666 if (r->servername) {
6667 ndr_print_string(ndr, "servername", r->servername);
6670 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6674 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
6676 if (ndr_flags & NDR_SCALARS) {
6677 NDR_CHECK(ndr_push_align(ndr, 4));
6678 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6679 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6680 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
6682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
6684 if (ndr_flags & NDR_BUFFERS) {
6685 if (r->printername) {
6686 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6687 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6688 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6689 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6695 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6698 return NDR_ERR_SUCCESS;
6701 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
6703 uint32_t _ptr_printername;
6704 TALLOC_CTX *_mem_save_printername_0;
6705 uint32_t _ptr_portname;
6706 TALLOC_CTX *_mem_save_portname_0;
6707 if (ndr_flags & NDR_SCALARS) {
6708 NDR_CHECK(ndr_pull_align(ndr, 4));
6709 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6710 if (_ptr_printername) {
6711 NDR_PULL_ALLOC(ndr, r->printername);
6713 r->printername = NULL;
6715 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6716 if (_ptr_portname) {
6717 NDR_PULL_ALLOC(ndr, r->portname);
6721 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
6723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
6725 if (ndr_flags & NDR_BUFFERS) {
6726 if (r->printername) {
6727 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6728 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6729 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6730 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6731 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6732 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));
6734 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6735 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6739 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6740 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6741 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6742 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6743 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6744 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));
6746 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6747 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6751 return NDR_ERR_SUCCESS;
6754 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
6756 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
6758 ndr_print_ptr(ndr, "printername", r->printername);
6760 if (r->printername) {
6761 ndr_print_string(ndr, "printername", r->printername);
6764 ndr_print_ptr(ndr, "portname", r->portname);
6767 ndr_print_string(ndr, "portname", r->portname);
6770 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6771 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
6772 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
6776 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
6778 if (ndr_flags & NDR_SCALARS) {
6779 NDR_CHECK(ndr_push_align(ndr, 4));
6780 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6782 if (ndr_flags & NDR_BUFFERS) {
6784 return NDR_ERR_SUCCESS;
6787 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
6789 if (ndr_flags & NDR_SCALARS) {
6790 NDR_CHECK(ndr_pull_align(ndr, 4));
6791 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6793 if (ndr_flags & NDR_BUFFERS) {
6795 return NDR_ERR_SUCCESS;
6798 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
6800 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
6802 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6806 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
6808 if (ndr_flags & NDR_SCALARS) {
6809 NDR_CHECK(ndr_push_align(ndr, 4));
6810 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
6811 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
6813 if (ndr_flags & NDR_BUFFERS) {
6815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
6816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
6818 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6821 return NDR_ERR_SUCCESS;
6824 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
6827 TALLOC_CTX *_mem_save_guid_0;
6828 if (ndr_flags & NDR_SCALARS) {
6829 NDR_CHECK(ndr_pull_align(ndr, 4));
6830 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
6832 NDR_PULL_ALLOC(ndr, r->guid);
6836 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
6838 if (ndr_flags & NDR_BUFFERS) {
6840 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6841 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
6842 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
6843 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
6844 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
6845 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));
6847 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
6848 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
6849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
6852 return NDR_ERR_SUCCESS;
6855 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
6857 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
6859 ndr_print_ptr(ndr, "guid", r->guid);
6862 ndr_print_string(ndr, "guid", r->guid);
6865 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
6869 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
6871 if (ndr_flags & NDR_SCALARS) {
6872 int level = ndr_push_get_switch_value(ndr, r);
6873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6876 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
6880 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6884 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6888 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6892 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6896 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
6900 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
6904 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
6908 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
6912 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
6920 if (ndr_flags & NDR_BUFFERS) {
6921 int level = ndr_push_get_switch_value(ndr, r);
6925 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
6931 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6937 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6943 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
6949 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6955 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
6961 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
6967 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
6973 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
6979 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
6988 return NDR_ERR_SUCCESS;
6991 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
6995 TALLOC_CTX *_mem_save_info0_0;
6996 TALLOC_CTX *_mem_save_info1_0;
6997 TALLOC_CTX *_mem_save_info2_0;
6998 TALLOC_CTX *_mem_save_info3_0;
6999 TALLOC_CTX *_mem_save_info4_0;
7000 TALLOC_CTX *_mem_save_info5_0;
7001 TALLOC_CTX *_mem_save_info6_0;
7002 TALLOC_CTX *_mem_save_info7_0;
7003 TALLOC_CTX *_mem_save_info8_0;
7004 TALLOC_CTX *_mem_save_info9_0;
7005 level = ndr_pull_get_switch_value(ndr, r);
7006 if (ndr_flags & NDR_SCALARS) {
7007 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7008 if (_level != level) {
7009 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7013 uint32_t _ptr_info0;
7014 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7016 NDR_PULL_ALLOC(ndr, r->info0);
7023 uint32_t _ptr_info1;
7024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7026 NDR_PULL_ALLOC(ndr, r->info1);
7033 uint32_t _ptr_info2;
7034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7036 NDR_PULL_ALLOC(ndr, r->info2);
7043 uint32_t _ptr_info3;
7044 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7046 NDR_PULL_ALLOC(ndr, r->info3);
7053 uint32_t _ptr_info4;
7054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7056 NDR_PULL_ALLOC(ndr, r->info4);
7063 uint32_t _ptr_info5;
7064 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7066 NDR_PULL_ALLOC(ndr, r->info5);
7073 uint32_t _ptr_info6;
7074 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7076 NDR_PULL_ALLOC(ndr, r->info6);
7083 uint32_t _ptr_info7;
7084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7086 NDR_PULL_ALLOC(ndr, r->info7);
7093 uint32_t _ptr_info8;
7094 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7096 NDR_PULL_ALLOC(ndr, r->info8);
7103 uint32_t _ptr_info9;
7104 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7106 NDR_PULL_ALLOC(ndr, r->info9);
7117 if (ndr_flags & NDR_BUFFERS) {
7121 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7122 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7123 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7124 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7130 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7131 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7132 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7139 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7140 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7141 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7142 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7148 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7149 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7150 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7157 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7158 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7159 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7160 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7166 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7167 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7168 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7175 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7176 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7177 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7184 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7185 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7186 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7187 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7193 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7194 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7195 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7202 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7203 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7204 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7214 return NDR_ERR_SUCCESS;
7217 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7220 level = ndr_print_get_switch_value(ndr, r);
7221 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
7224 ndr_print_ptr(ndr, "info0", r->info0);
7227 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
7233 ndr_print_ptr(ndr, "info1", r->info1);
7236 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
7242 ndr_print_ptr(ndr, "info2", r->info2);
7245 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
7251 ndr_print_ptr(ndr, "info3", r->info3);
7254 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
7260 ndr_print_ptr(ndr, "info4", r->info4);
7263 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
7269 ndr_print_ptr(ndr, "info5", r->info5);
7272 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
7278 ndr_print_ptr(ndr, "info6", r->info6);
7281 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
7287 ndr_print_ptr(ndr, "info7", r->info7);
7290 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
7296 ndr_print_ptr(ndr, "info8", r->info8);
7299 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
7305 ndr_print_ptr(ndr, "info9", r->info9);
7308 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
7319 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
7321 if (ndr_flags & NDR_SCALARS) {
7322 NDR_CHECK(ndr_push_align(ndr, 4));
7323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7324 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7325 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7327 if (ndr_flags & NDR_BUFFERS) {
7328 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7330 return NDR_ERR_SUCCESS;
7333 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
7335 if (ndr_flags & NDR_SCALARS) {
7336 NDR_CHECK(ndr_pull_align(ndr, 4));
7337 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7338 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7339 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7341 if (ndr_flags & NDR_BUFFERS) {
7342 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7344 return NDR_ERR_SUCCESS;
7347 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
7349 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
7351 ndr_print_uint32(ndr, "level", r->level);
7352 ndr_print_set_switch_value(ndr, &r->info, r->level);
7353 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
7357 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
7359 if (ndr_flags & NDR_SCALARS) {
7360 NDR_CHECK(ndr_push_align(ndr, 4));
7361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
7363 uint32_t _flags_save_string_array = ndr->flags;
7364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7365 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
7366 ndr->flags = _flags_save_string_array;
7369 if (ndr_flags & NDR_BUFFERS) {
7371 return NDR_ERR_SUCCESS;
7374 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
7376 if (ndr_flags & NDR_SCALARS) {
7377 NDR_CHECK(ndr_pull_align(ndr, 4));
7378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
7380 uint32_t _flags_save_string_array = ndr->flags;
7381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7382 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
7383 ndr->flags = _flags_save_string_array;
7386 if (ndr_flags & NDR_BUFFERS) {
7388 return NDR_ERR_SUCCESS;
7391 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
7393 ndr_print_struct(ndr, name, "spoolss_StringArray");
7395 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);
7396 ndr_print_string_array(ndr, "string", r->string);
7400 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
7402 if (ndr_flags & NDR_SCALARS) {
7403 NDR_CHECK(ndr_push_align(ndr, 4));
7404 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7406 if (ndr_flags & NDR_BUFFERS) {
7407 if (r->driver_name) {
7408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7411 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7414 return NDR_ERR_SUCCESS;
7417 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
7419 uint32_t _ptr_driver_name;
7420 TALLOC_CTX *_mem_save_driver_name_0;
7421 if (ndr_flags & NDR_SCALARS) {
7422 NDR_CHECK(ndr_pull_align(ndr, 4));
7423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7424 if (_ptr_driver_name) {
7425 NDR_PULL_ALLOC(ndr, r->driver_name);
7427 r->driver_name = NULL;
7430 if (ndr_flags & NDR_BUFFERS) {
7431 if (r->driver_name) {
7432 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7433 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7434 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7435 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7436 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7437 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));
7439 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7440 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7444 return NDR_ERR_SUCCESS;
7447 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
7449 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
7451 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7453 if (r->driver_name) {
7454 ndr_print_string(ndr, "driver_name", r->driver_name);
7460 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
7462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7463 return NDR_ERR_SUCCESS;
7466 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
7469 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7471 return NDR_ERR_SUCCESS;
7474 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
7476 const char *val = NULL;
7479 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
7480 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
7481 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
7482 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
7484 ndr_print_enum(ndr, name, "ENUM", val, r);
7487 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
7489 if (ndr_flags & NDR_SCALARS) {
7490 NDR_CHECK(ndr_push_align(ndr, 4));
7491 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7492 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7493 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7494 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7495 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7496 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7498 if (ndr_flags & NDR_BUFFERS) {
7499 if (r->driver_name) {
7500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7503 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7505 if (r->architecture) {
7506 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7507 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7509 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7511 if (r->driver_path) {
7512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7515 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7521 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7523 if (r->config_file) {
7524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7527 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7530 return NDR_ERR_SUCCESS;
7533 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
7535 uint32_t _ptr_driver_name;
7536 TALLOC_CTX *_mem_save_driver_name_0;
7537 uint32_t _ptr_architecture;
7538 TALLOC_CTX *_mem_save_architecture_0;
7539 uint32_t _ptr_driver_path;
7540 TALLOC_CTX *_mem_save_driver_path_0;
7541 uint32_t _ptr_data_file;
7542 TALLOC_CTX *_mem_save_data_file_0;
7543 uint32_t _ptr_config_file;
7544 TALLOC_CTX *_mem_save_config_file_0;
7545 if (ndr_flags & NDR_SCALARS) {
7546 NDR_CHECK(ndr_pull_align(ndr, 4));
7547 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7548 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7549 if (_ptr_driver_name) {
7550 NDR_PULL_ALLOC(ndr, r->driver_name);
7552 r->driver_name = NULL;
7554 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7555 if (_ptr_architecture) {
7556 NDR_PULL_ALLOC(ndr, r->architecture);
7558 r->architecture = NULL;
7560 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7561 if (_ptr_driver_path) {
7562 NDR_PULL_ALLOC(ndr, r->driver_path);
7564 r->driver_path = NULL;
7566 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7567 if (_ptr_data_file) {
7568 NDR_PULL_ALLOC(ndr, r->data_file);
7570 r->data_file = NULL;
7572 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7573 if (_ptr_config_file) {
7574 NDR_PULL_ALLOC(ndr, r->config_file);
7576 r->config_file = NULL;
7579 if (ndr_flags & NDR_BUFFERS) {
7580 if (r->driver_name) {
7581 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7582 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7583 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7584 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7585 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7586 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));
7588 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7589 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7592 if (r->architecture) {
7593 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7594 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7595 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7596 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7597 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7598 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));
7600 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7601 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
7602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7604 if (r->driver_path) {
7605 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7606 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7607 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7608 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7609 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7610 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));
7612 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7613 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
7614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7617 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7618 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7619 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7620 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7621 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7622 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));
7624 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7625 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
7626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7628 if (r->config_file) {
7629 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7630 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7631 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7632 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7633 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7634 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));
7636 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7637 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
7638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7641 return NDR_ERR_SUCCESS;
7644 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
7646 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
7648 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7649 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7651 if (r->driver_name) {
7652 ndr_print_string(ndr, "driver_name", r->driver_name);
7655 ndr_print_ptr(ndr, "architecture", r->architecture);
7657 if (r->architecture) {
7658 ndr_print_string(ndr, "architecture", r->architecture);
7661 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7663 if (r->driver_path) {
7664 ndr_print_string(ndr, "driver_path", r->driver_path);
7667 ndr_print_ptr(ndr, "data_file", r->data_file);
7670 ndr_print_string(ndr, "data_file", r->data_file);
7673 ndr_print_ptr(ndr, "config_file", r->config_file);
7675 if (r->config_file) {
7676 ndr_print_string(ndr, "config_file", r->config_file);
7682 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
7684 if (ndr_flags & NDR_SCALARS) {
7685 NDR_CHECK(ndr_push_align(ndr, 4));
7686 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7687 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7688 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7689 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7690 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7691 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7692 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
7693 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
7694 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
7695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
7696 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
7698 if (ndr_flags & NDR_BUFFERS) {
7699 if (r->driver_name) {
7700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7703 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7705 if (r->architecture) {
7706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7709 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7711 if (r->driver_path) {
7712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7713 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7715 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7721 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7723 if (r->config_file) {
7724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7727 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7733 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7735 if (r->monitor_name) {
7736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7739 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7741 if (r->default_datatype) {
7742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7745 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7747 if (r->dependent_files) {
7748 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
7751 return NDR_ERR_SUCCESS;
7754 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
7756 uint32_t _ptr_driver_name;
7757 TALLOC_CTX *_mem_save_driver_name_0;
7758 uint32_t _ptr_architecture;
7759 TALLOC_CTX *_mem_save_architecture_0;
7760 uint32_t _ptr_driver_path;
7761 TALLOC_CTX *_mem_save_driver_path_0;
7762 uint32_t _ptr_data_file;
7763 TALLOC_CTX *_mem_save_data_file_0;
7764 uint32_t _ptr_config_file;
7765 TALLOC_CTX *_mem_save_config_file_0;
7766 uint32_t _ptr_help_file;
7767 TALLOC_CTX *_mem_save_help_file_0;
7768 uint32_t _ptr_monitor_name;
7769 TALLOC_CTX *_mem_save_monitor_name_0;
7770 uint32_t _ptr_default_datatype;
7771 TALLOC_CTX *_mem_save_default_datatype_0;
7772 uint32_t _ptr_dependent_files;
7773 TALLOC_CTX *_mem_save_dependent_files_0;
7774 if (ndr_flags & NDR_SCALARS) {
7775 NDR_CHECK(ndr_pull_align(ndr, 4));
7776 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7777 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7778 if (_ptr_driver_name) {
7779 NDR_PULL_ALLOC(ndr, r->driver_name);
7781 r->driver_name = NULL;
7783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7784 if (_ptr_architecture) {
7785 NDR_PULL_ALLOC(ndr, r->architecture);
7787 r->architecture = NULL;
7789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7790 if (_ptr_driver_path) {
7791 NDR_PULL_ALLOC(ndr, r->driver_path);
7793 r->driver_path = NULL;
7795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7796 if (_ptr_data_file) {
7797 NDR_PULL_ALLOC(ndr, r->data_file);
7799 r->data_file = NULL;
7801 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7802 if (_ptr_config_file) {
7803 NDR_PULL_ALLOC(ndr, r->config_file);
7805 r->config_file = NULL;
7807 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7808 if (_ptr_help_file) {
7809 NDR_PULL_ALLOC(ndr, r->help_file);
7811 r->help_file = NULL;
7813 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7814 if (_ptr_monitor_name) {
7815 NDR_PULL_ALLOC(ndr, r->monitor_name);
7817 r->monitor_name = NULL;
7819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7820 if (_ptr_default_datatype) {
7821 NDR_PULL_ALLOC(ndr, r->default_datatype);
7823 r->default_datatype = NULL;
7825 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
7826 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7827 if (_ptr_dependent_files) {
7828 NDR_PULL_ALLOC(ndr, r->dependent_files);
7830 r->dependent_files = NULL;
7833 if (ndr_flags & NDR_BUFFERS) {
7834 if (r->driver_name) {
7835 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7836 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7837 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7838 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7839 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7840 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));
7842 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7843 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7844 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7846 if (r->architecture) {
7847 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7848 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7849 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7850 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7851 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7852 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));
7854 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7855 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
7856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7858 if (r->driver_path) {
7859 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7860 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7861 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7862 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7863 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7864 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));
7866 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7867 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
7868 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7871 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7872 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7873 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7874 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7875 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7876 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));
7878 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7879 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
7880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7882 if (r->config_file) {
7883 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7884 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7885 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7886 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7887 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7888 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));
7890 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7891 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
7892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7895 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7896 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7897 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
7898 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
7899 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
7900 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));
7902 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
7903 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
7904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7906 if (r->monitor_name) {
7907 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7908 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7909 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
7910 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
7911 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
7912 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));
7914 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
7915 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
7916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7918 if (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_array_size(ndr, &r->default_datatype));
7922 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
7923 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
7924 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));
7926 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
7927 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
7928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
7930 if (r->dependent_files) {
7931 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
7932 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
7933 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
7934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
7937 return NDR_ERR_SUCCESS;
7940 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
7942 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
7944 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7945 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7947 if (r->driver_name) {
7948 ndr_print_string(ndr, "driver_name", r->driver_name);
7951 ndr_print_ptr(ndr, "architecture", r->architecture);
7953 if (r->architecture) {
7954 ndr_print_string(ndr, "architecture", r->architecture);
7957 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7959 if (r->driver_path) {
7960 ndr_print_string(ndr, "driver_path", r->driver_path);
7963 ndr_print_ptr(ndr, "data_file", r->data_file);
7966 ndr_print_string(ndr, "data_file", r->data_file);
7969 ndr_print_ptr(ndr, "config_file", r->config_file);
7971 if (r->config_file) {
7972 ndr_print_string(ndr, "config_file", r->config_file);
7975 ndr_print_ptr(ndr, "help_file", r->help_file);
7978 ndr_print_string(ndr, "help_file", r->help_file);
7981 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7983 if (r->monitor_name) {
7984 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7987 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
7989 if (r->default_datatype) {
7990 ndr_print_string(ndr, "default_datatype", r->default_datatype);
7993 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);
7994 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
7996 if (r->dependent_files) {
7997 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8003 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8005 if (ndr_flags & NDR_SCALARS) {
8006 NDR_CHECK(ndr_push_align(ndr, 4));
8007 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8008 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8009 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8010 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8011 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8012 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8013 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8014 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8015 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8017 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8019 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8021 if (ndr_flags & NDR_BUFFERS) {
8022 if (r->driver_name) {
8023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8026 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8028 if (r->architecture) {
8029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8032 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8034 if (r->driver_path) {
8035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8038 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8044 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8046 if (r->config_file) {
8047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8050 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8056 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8058 if (r->monitor_name) {
8059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8062 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8064 if (r->default_datatype) {
8065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8068 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8070 if (r->dependent_files) {
8071 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8073 if (r->previous_names) {
8074 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8077 return NDR_ERR_SUCCESS;
8080 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8082 uint32_t _ptr_driver_name;
8083 TALLOC_CTX *_mem_save_driver_name_0;
8084 uint32_t _ptr_architecture;
8085 TALLOC_CTX *_mem_save_architecture_0;
8086 uint32_t _ptr_driver_path;
8087 TALLOC_CTX *_mem_save_driver_path_0;
8088 uint32_t _ptr_data_file;
8089 TALLOC_CTX *_mem_save_data_file_0;
8090 uint32_t _ptr_config_file;
8091 TALLOC_CTX *_mem_save_config_file_0;
8092 uint32_t _ptr_help_file;
8093 TALLOC_CTX *_mem_save_help_file_0;
8094 uint32_t _ptr_monitor_name;
8095 TALLOC_CTX *_mem_save_monitor_name_0;
8096 uint32_t _ptr_default_datatype;
8097 TALLOC_CTX *_mem_save_default_datatype_0;
8098 uint32_t _ptr_dependent_files;
8099 TALLOC_CTX *_mem_save_dependent_files_0;
8100 uint32_t _ptr_previous_names;
8101 TALLOC_CTX *_mem_save_previous_names_0;
8102 if (ndr_flags & NDR_SCALARS) {
8103 NDR_CHECK(ndr_pull_align(ndr, 4));
8104 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8106 if (_ptr_driver_name) {
8107 NDR_PULL_ALLOC(ndr, r->driver_name);
8109 r->driver_name = NULL;
8111 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8112 if (_ptr_architecture) {
8113 NDR_PULL_ALLOC(ndr, r->architecture);
8115 r->architecture = NULL;
8117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8118 if (_ptr_driver_path) {
8119 NDR_PULL_ALLOC(ndr, r->driver_path);
8121 r->driver_path = NULL;
8123 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8124 if (_ptr_data_file) {
8125 NDR_PULL_ALLOC(ndr, r->data_file);
8127 r->data_file = NULL;
8129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8130 if (_ptr_config_file) {
8131 NDR_PULL_ALLOC(ndr, r->config_file);
8133 r->config_file = NULL;
8135 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8136 if (_ptr_help_file) {
8137 NDR_PULL_ALLOC(ndr, r->help_file);
8139 r->help_file = NULL;
8141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8142 if (_ptr_monitor_name) {
8143 NDR_PULL_ALLOC(ndr, r->monitor_name);
8145 r->monitor_name = NULL;
8147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8148 if (_ptr_default_datatype) {
8149 NDR_PULL_ALLOC(ndr, r->default_datatype);
8151 r->default_datatype = NULL;
8153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8155 if (_ptr_dependent_files) {
8156 NDR_PULL_ALLOC(ndr, r->dependent_files);
8158 r->dependent_files = NULL;
8160 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8161 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8162 if (_ptr_previous_names) {
8163 NDR_PULL_ALLOC(ndr, r->previous_names);
8165 r->previous_names = NULL;
8168 if (ndr_flags & NDR_BUFFERS) {
8169 if (r->driver_name) {
8170 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8171 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8172 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8173 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8174 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8175 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));
8177 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8178 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8181 if (r->architecture) {
8182 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8183 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8184 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8185 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8186 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8187 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));
8189 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8190 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8193 if (r->driver_path) {
8194 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8195 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8196 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8197 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8198 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8199 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));
8201 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8202 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8206 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8207 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8208 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8209 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8210 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8211 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));
8213 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8214 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8217 if (r->config_file) {
8218 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8219 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8220 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8221 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8222 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8223 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));
8225 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8226 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8230 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8231 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8232 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8233 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8234 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8235 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));
8237 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8238 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8241 if (r->monitor_name) {
8242 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8243 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8244 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8245 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8246 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8247 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));
8249 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8250 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8253 if (r->default_datatype) {
8254 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8255 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8256 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8257 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8258 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8259 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));
8261 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8262 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8265 if (r->dependent_files) {
8266 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8267 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8268 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8269 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8271 if (r->previous_names) {
8272 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8273 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8274 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8278 return NDR_ERR_SUCCESS;
8281 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
8283 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
8285 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8286 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8288 if (r->driver_name) {
8289 ndr_print_string(ndr, "driver_name", r->driver_name);
8292 ndr_print_ptr(ndr, "architecture", r->architecture);
8294 if (r->architecture) {
8295 ndr_print_string(ndr, "architecture", r->architecture);
8298 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8300 if (r->driver_path) {
8301 ndr_print_string(ndr, "driver_path", r->driver_path);
8304 ndr_print_ptr(ndr, "data_file", r->data_file);
8307 ndr_print_string(ndr, "data_file", r->data_file);
8310 ndr_print_ptr(ndr, "config_file", r->config_file);
8312 if (r->config_file) {
8313 ndr_print_string(ndr, "config_file", r->config_file);
8316 ndr_print_ptr(ndr, "help_file", r->help_file);
8319 ndr_print_string(ndr, "help_file", r->help_file);
8322 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8324 if (r->monitor_name) {
8325 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8328 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8330 if (r->default_datatype) {
8331 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8334 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);
8335 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8337 if (r->dependent_files) {
8338 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8341 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);
8342 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8344 if (r->previous_names) {
8345 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8351 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
8353 if (ndr_flags & NDR_SCALARS) {
8354 NDR_CHECK(ndr_push_align(ndr, 8));
8355 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8356 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8357 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8358 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8359 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8360 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8361 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8362 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8363 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8365 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8367 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8368 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8369 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8370 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8371 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8372 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8373 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8375 if (ndr_flags & NDR_BUFFERS) {
8376 if (r->driver_name) {
8377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8380 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8382 if (r->architecture) {
8383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8386 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8388 if (r->driver_path) {
8389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8392 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8398 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8400 if (r->config_file) {
8401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8404 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8410 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8412 if (r->monitor_name) {
8413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8416 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8418 if (r->default_datatype) {
8419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8422 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8424 if (r->dependent_files) {
8425 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8427 if (r->previous_names) {
8428 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8430 if (r->manufacturer_name) {
8431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8434 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8436 if (r->manufacturer_url) {
8437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8440 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8442 if (r->hardware_id) {
8443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8446 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8452 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8455 return NDR_ERR_SUCCESS;
8458 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
8460 uint32_t _ptr_driver_name;
8461 TALLOC_CTX *_mem_save_driver_name_0;
8462 uint32_t _ptr_architecture;
8463 TALLOC_CTX *_mem_save_architecture_0;
8464 uint32_t _ptr_driver_path;
8465 TALLOC_CTX *_mem_save_driver_path_0;
8466 uint32_t _ptr_data_file;
8467 TALLOC_CTX *_mem_save_data_file_0;
8468 uint32_t _ptr_config_file;
8469 TALLOC_CTX *_mem_save_config_file_0;
8470 uint32_t _ptr_help_file;
8471 TALLOC_CTX *_mem_save_help_file_0;
8472 uint32_t _ptr_monitor_name;
8473 TALLOC_CTX *_mem_save_monitor_name_0;
8474 uint32_t _ptr_default_datatype;
8475 TALLOC_CTX *_mem_save_default_datatype_0;
8476 uint32_t _ptr_dependent_files;
8477 TALLOC_CTX *_mem_save_dependent_files_0;
8478 uint32_t _ptr_previous_names;
8479 TALLOC_CTX *_mem_save_previous_names_0;
8480 uint32_t _ptr_manufacturer_name;
8481 TALLOC_CTX *_mem_save_manufacturer_name_0;
8482 uint32_t _ptr_manufacturer_url;
8483 TALLOC_CTX *_mem_save_manufacturer_url_0;
8484 uint32_t _ptr_hardware_id;
8485 TALLOC_CTX *_mem_save_hardware_id_0;
8486 uint32_t _ptr_provider;
8487 TALLOC_CTX *_mem_save_provider_0;
8488 if (ndr_flags & NDR_SCALARS) {
8489 NDR_CHECK(ndr_pull_align(ndr, 8));
8490 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8491 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8492 if (_ptr_driver_name) {
8493 NDR_PULL_ALLOC(ndr, r->driver_name);
8495 r->driver_name = NULL;
8497 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8498 if (_ptr_architecture) {
8499 NDR_PULL_ALLOC(ndr, r->architecture);
8501 r->architecture = NULL;
8503 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8504 if (_ptr_driver_path) {
8505 NDR_PULL_ALLOC(ndr, r->driver_path);
8507 r->driver_path = NULL;
8509 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8510 if (_ptr_data_file) {
8511 NDR_PULL_ALLOC(ndr, r->data_file);
8513 r->data_file = NULL;
8515 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8516 if (_ptr_config_file) {
8517 NDR_PULL_ALLOC(ndr, r->config_file);
8519 r->config_file = NULL;
8521 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8522 if (_ptr_help_file) {
8523 NDR_PULL_ALLOC(ndr, r->help_file);
8525 r->help_file = NULL;
8527 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8528 if (_ptr_monitor_name) {
8529 NDR_PULL_ALLOC(ndr, r->monitor_name);
8531 r->monitor_name = NULL;
8533 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8534 if (_ptr_default_datatype) {
8535 NDR_PULL_ALLOC(ndr, r->default_datatype);
8537 r->default_datatype = NULL;
8539 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8540 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8541 if (_ptr_dependent_files) {
8542 NDR_PULL_ALLOC(ndr, r->dependent_files);
8544 r->dependent_files = NULL;
8546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8548 if (_ptr_previous_names) {
8549 NDR_PULL_ALLOC(ndr, r->previous_names);
8551 r->previous_names = NULL;
8553 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
8554 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
8555 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
8556 if (_ptr_manufacturer_name) {
8557 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
8559 r->manufacturer_name = NULL;
8561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
8562 if (_ptr_manufacturer_url) {
8563 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
8565 r->manufacturer_url = NULL;
8567 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
8568 if (_ptr_hardware_id) {
8569 NDR_PULL_ALLOC(ndr, r->hardware_id);
8571 r->hardware_id = NULL;
8573 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
8574 if (_ptr_provider) {
8575 NDR_PULL_ALLOC(ndr, r->provider);
8580 if (ndr_flags & NDR_BUFFERS) {
8581 if (r->driver_name) {
8582 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8583 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8584 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8585 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8586 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8587 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));
8589 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8590 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8593 if (r->architecture) {
8594 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8595 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8596 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8597 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8598 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8599 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));
8601 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8602 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8605 if (r->driver_path) {
8606 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8607 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8608 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8609 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8610 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8611 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));
8613 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8614 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8618 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8619 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8620 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8621 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8622 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8623 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));
8625 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8626 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8629 if (r->config_file) {
8630 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8631 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8632 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8633 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8634 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8635 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));
8637 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8638 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8639 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8642 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8643 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8644 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8645 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8646 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8647 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));
8649 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8650 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8653 if (r->monitor_name) {
8654 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8655 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8656 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8657 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8658 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8659 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));
8661 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8662 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8665 if (r->default_datatype) {
8666 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8667 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8668 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8669 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8670 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8671 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));
8673 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8674 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8675 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8677 if (r->dependent_files) {
8678 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8679 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8680 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8683 if (r->previous_names) {
8684 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8685 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8686 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8689 if (r->manufacturer_name) {
8690 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8691 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
8692 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
8693 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
8694 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
8695 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));
8697 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
8698 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
8699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
8701 if (r->manufacturer_url) {
8702 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
8703 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
8704 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
8705 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
8706 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
8707 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));
8709 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
8710 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
8711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
8713 if (r->hardware_id) {
8714 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
8715 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
8716 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
8717 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
8718 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
8719 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));
8721 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
8722 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
8723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
8726 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
8727 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
8728 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
8729 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
8730 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
8731 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));
8733 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
8734 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
8735 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
8738 return NDR_ERR_SUCCESS;
8741 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
8743 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
8745 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8746 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8748 if (r->driver_name) {
8749 ndr_print_string(ndr, "driver_name", r->driver_name);
8752 ndr_print_ptr(ndr, "architecture", r->architecture);
8754 if (r->architecture) {
8755 ndr_print_string(ndr, "architecture", r->architecture);
8758 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8760 if (r->driver_path) {
8761 ndr_print_string(ndr, "driver_path", r->driver_path);
8764 ndr_print_ptr(ndr, "data_file", r->data_file);
8767 ndr_print_string(ndr, "data_file", r->data_file);
8770 ndr_print_ptr(ndr, "config_file", r->config_file);
8772 if (r->config_file) {
8773 ndr_print_string(ndr, "config_file", r->config_file);
8776 ndr_print_ptr(ndr, "help_file", r->help_file);
8779 ndr_print_string(ndr, "help_file", r->help_file);
8782 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8784 if (r->monitor_name) {
8785 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8788 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8790 if (r->default_datatype) {
8791 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8794 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);
8795 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8797 if (r->dependent_files) {
8798 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8801 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);
8802 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8804 if (r->previous_names) {
8805 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8808 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
8809 ndr_print_hyper(ndr, "driver_version", r->driver_version);
8810 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
8812 if (r->manufacturer_name) {
8813 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
8816 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
8818 if (r->manufacturer_url) {
8819 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
8822 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
8824 if (r->hardware_id) {
8825 ndr_print_string(ndr, "hardware_id", r->hardware_id);
8828 ndr_print_ptr(ndr, "provider", r->provider);
8831 ndr_print_string(ndr, "provider", r->provider);
8837 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
8839 if (ndr_flags & NDR_SCALARS) {
8840 NDR_CHECK(ndr_push_align(ndr, 8));
8841 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8842 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8843 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8844 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8845 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8846 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8847 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8848 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8849 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8851 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8853 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8854 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8855 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8856 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8857 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8858 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8859 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8860 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
8861 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
8862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8863 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
8864 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
8865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
8866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8867 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
8868 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
8869 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
8871 if (ndr_flags & NDR_BUFFERS) {
8872 if (r->driver_name) {
8873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8876 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8878 if (r->architecture) {
8879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8882 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8884 if (r->driver_path) {
8885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8887 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8888 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8893 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8894 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8896 if (r->config_file) {
8897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8900 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8906 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8908 if (r->monitor_name) {
8909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8912 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8914 if (r->default_datatype) {
8915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8918 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8920 if (r->dependent_files) {
8921 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8923 if (r->previous_names) {
8924 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8926 if (r->manufacturer_name) {
8927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8930 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8932 if (r->manufacturer_url) {
8933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8936 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8938 if (r->hardware_id) {
8939 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8940 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8941 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8942 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8946 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8947 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8948 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8950 if (r->print_processor) {
8951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
8952 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
8954 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8956 if (r->vendor_setup) {
8957 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
8958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
8960 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8962 if (r->color_profiles) {
8963 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
8966 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
8967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
8969 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8971 if (r->core_driver_dependencies) {
8972 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
8975 return NDR_ERR_SUCCESS;
8978 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
8980 uint32_t _ptr_driver_name;
8981 TALLOC_CTX *_mem_save_driver_name_0;
8982 uint32_t _ptr_architecture;
8983 TALLOC_CTX *_mem_save_architecture_0;
8984 uint32_t _ptr_driver_path;
8985 TALLOC_CTX *_mem_save_driver_path_0;
8986 uint32_t _ptr_data_file;
8987 TALLOC_CTX *_mem_save_data_file_0;
8988 uint32_t _ptr_config_file;
8989 TALLOC_CTX *_mem_save_config_file_0;
8990 uint32_t _ptr_help_file;
8991 TALLOC_CTX *_mem_save_help_file_0;
8992 uint32_t _ptr_monitor_name;
8993 TALLOC_CTX *_mem_save_monitor_name_0;
8994 uint32_t _ptr_default_datatype;
8995 TALLOC_CTX *_mem_save_default_datatype_0;
8996 uint32_t _ptr_dependent_files;
8997 TALLOC_CTX *_mem_save_dependent_files_0;
8998 uint32_t _ptr_previous_names;
8999 TALLOC_CTX *_mem_save_previous_names_0;
9000 uint32_t _ptr_manufacturer_name;
9001 TALLOC_CTX *_mem_save_manufacturer_name_0;
9002 uint32_t _ptr_manufacturer_url;
9003 TALLOC_CTX *_mem_save_manufacturer_url_0;
9004 uint32_t _ptr_hardware_id;
9005 TALLOC_CTX *_mem_save_hardware_id_0;
9006 uint32_t _ptr_provider;
9007 TALLOC_CTX *_mem_save_provider_0;
9008 uint32_t _ptr_print_processor;
9009 TALLOC_CTX *_mem_save_print_processor_0;
9010 uint32_t _ptr_vendor_setup;
9011 TALLOC_CTX *_mem_save_vendor_setup_0;
9012 uint32_t _ptr_color_profiles;
9013 TALLOC_CTX *_mem_save_color_profiles_0;
9014 uint32_t _ptr_inf_path;
9015 TALLOC_CTX *_mem_save_inf_path_0;
9016 uint32_t _ptr_core_driver_dependencies;
9017 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9018 if (ndr_flags & NDR_SCALARS) {
9019 NDR_CHECK(ndr_pull_align(ndr, 8));
9020 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9021 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9022 if (_ptr_driver_name) {
9023 NDR_PULL_ALLOC(ndr, r->driver_name);
9025 r->driver_name = NULL;
9027 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9028 if (_ptr_architecture) {
9029 NDR_PULL_ALLOC(ndr, r->architecture);
9031 r->architecture = NULL;
9033 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9034 if (_ptr_driver_path) {
9035 NDR_PULL_ALLOC(ndr, r->driver_path);
9037 r->driver_path = NULL;
9039 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9040 if (_ptr_data_file) {
9041 NDR_PULL_ALLOC(ndr, r->data_file);
9043 r->data_file = NULL;
9045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9046 if (_ptr_config_file) {
9047 NDR_PULL_ALLOC(ndr, r->config_file);
9049 r->config_file = NULL;
9051 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9052 if (_ptr_help_file) {
9053 NDR_PULL_ALLOC(ndr, r->help_file);
9055 r->help_file = NULL;
9057 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9058 if (_ptr_monitor_name) {
9059 NDR_PULL_ALLOC(ndr, r->monitor_name);
9061 r->monitor_name = NULL;
9063 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9064 if (_ptr_default_datatype) {
9065 NDR_PULL_ALLOC(ndr, r->default_datatype);
9067 r->default_datatype = NULL;
9069 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9070 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9071 if (_ptr_dependent_files) {
9072 NDR_PULL_ALLOC(ndr, r->dependent_files);
9074 r->dependent_files = NULL;
9076 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9077 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9078 if (_ptr_previous_names) {
9079 NDR_PULL_ALLOC(ndr, r->previous_names);
9081 r->previous_names = NULL;
9083 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9084 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9085 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9086 if (_ptr_manufacturer_name) {
9087 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9089 r->manufacturer_name = NULL;
9091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9092 if (_ptr_manufacturer_url) {
9093 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9095 r->manufacturer_url = NULL;
9097 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9098 if (_ptr_hardware_id) {
9099 NDR_PULL_ALLOC(ndr, r->hardware_id);
9101 r->hardware_id = NULL;
9103 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9104 if (_ptr_provider) {
9105 NDR_PULL_ALLOC(ndr, r->provider);
9109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9110 if (_ptr_print_processor) {
9111 NDR_PULL_ALLOC(ndr, r->print_processor);
9113 r->print_processor = NULL;
9115 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9116 if (_ptr_vendor_setup) {
9117 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9119 r->vendor_setup = NULL;
9121 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9122 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9123 if (_ptr_color_profiles) {
9124 NDR_PULL_ALLOC(ndr, r->color_profiles);
9126 r->color_profiles = NULL;
9128 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9129 if (_ptr_inf_path) {
9130 NDR_PULL_ALLOC(ndr, r->inf_path);
9134 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9136 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9137 if (_ptr_core_driver_dependencies) {
9138 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9140 r->core_driver_dependencies = NULL;
9142 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9143 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9145 if (ndr_flags & NDR_BUFFERS) {
9146 if (r->driver_name) {
9147 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9148 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9149 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9150 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9151 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9152 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));
9154 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9155 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9158 if (r->architecture) {
9159 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9160 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9161 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9162 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9163 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9164 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));
9166 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9167 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9170 if (r->driver_path) {
9171 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9172 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9173 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9174 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9175 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9176 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));
9178 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9179 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9183 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9184 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9185 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9186 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9187 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9188 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));
9190 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9191 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9194 if (r->config_file) {
9195 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9196 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9197 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9198 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9199 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9200 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));
9202 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9203 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9204 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9207 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9208 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9209 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9210 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9211 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9212 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));
9214 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9215 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9218 if (r->monitor_name) {
9219 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9220 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9221 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9222 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9223 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9224 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));
9226 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9227 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9230 if (r->default_datatype) {
9231 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9232 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9233 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9234 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9235 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9236 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));
9238 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9239 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9240 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9242 if (r->dependent_files) {
9243 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9244 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9245 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9248 if (r->previous_names) {
9249 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9250 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9251 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9254 if (r->manufacturer_name) {
9255 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9256 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9257 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9258 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9259 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9260 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));
9262 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9263 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9264 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9266 if (r->manufacturer_url) {
9267 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9268 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9269 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9270 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9271 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9272 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));
9274 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9275 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9278 if (r->hardware_id) {
9279 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9280 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9281 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9282 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9283 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9284 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));
9286 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9287 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9291 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9292 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9293 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9294 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9295 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9296 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));
9298 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9299 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9302 if (r->print_processor) {
9303 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
9304 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
9305 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
9306 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
9307 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
9308 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));
9310 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
9311 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
9312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
9314 if (r->vendor_setup) {
9315 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
9316 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
9317 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
9318 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
9319 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
9320 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));
9322 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
9323 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
9324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
9326 if (r->color_profiles) {
9327 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
9328 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
9329 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
9333 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9334 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
9335 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
9336 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
9337 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
9338 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));
9340 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
9341 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
9342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
9344 if (r->core_driver_dependencies) {
9345 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
9346 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
9347 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
9351 return NDR_ERR_SUCCESS;
9354 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
9356 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
9358 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9359 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9361 if (r->driver_name) {
9362 ndr_print_string(ndr, "driver_name", r->driver_name);
9365 ndr_print_ptr(ndr, "architecture", r->architecture);
9367 if (r->architecture) {
9368 ndr_print_string(ndr, "architecture", r->architecture);
9371 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9373 if (r->driver_path) {
9374 ndr_print_string(ndr, "driver_path", r->driver_path);
9377 ndr_print_ptr(ndr, "data_file", r->data_file);
9380 ndr_print_string(ndr, "data_file", r->data_file);
9383 ndr_print_ptr(ndr, "config_file", r->config_file);
9385 if (r->config_file) {
9386 ndr_print_string(ndr, "config_file", r->config_file);
9389 ndr_print_ptr(ndr, "help_file", r->help_file);
9392 ndr_print_string(ndr, "help_file", r->help_file);
9395 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9397 if (r->monitor_name) {
9398 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9401 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9403 if (r->default_datatype) {
9404 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9407 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);
9408 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9410 if (r->dependent_files) {
9411 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9414 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);
9415 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9417 if (r->previous_names) {
9418 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9421 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9422 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9423 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9425 if (r->manufacturer_name) {
9426 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9429 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9431 if (r->manufacturer_url) {
9432 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9435 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9437 if (r->hardware_id) {
9438 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9441 ndr_print_ptr(ndr, "provider", r->provider);
9444 ndr_print_string(ndr, "provider", r->provider);
9447 ndr_print_ptr(ndr, "print_processor", r->print_processor);
9449 if (r->print_processor) {
9450 ndr_print_string(ndr, "print_processor", r->print_processor);
9453 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
9455 if (r->vendor_setup) {
9456 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
9459 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);
9460 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
9462 if (r->color_profiles) {
9463 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
9466 ndr_print_ptr(ndr, "inf_path", r->inf_path);
9469 ndr_print_string(ndr, "inf_path", r->inf_path);
9472 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
9473 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);
9474 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9476 if (r->core_driver_dependencies) {
9477 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9480 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
9481 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
9485 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
9487 if (ndr_flags & NDR_SCALARS) {
9488 int level = ndr_push_get_switch_value(ndr, r);
9489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9492 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
9496 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
9500 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
9504 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
9508 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
9512 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
9516 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9519 if (ndr_flags & NDR_BUFFERS) {
9520 int level = ndr_push_get_switch_value(ndr, r);
9524 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9530 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9536 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
9542 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9548 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
9554 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
9559 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9562 return NDR_ERR_SUCCESS;
9565 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
9569 TALLOC_CTX *_mem_save_info1_0;
9570 TALLOC_CTX *_mem_save_info2_0;
9571 TALLOC_CTX *_mem_save_info3_0;
9572 TALLOC_CTX *_mem_save_info4_0;
9573 TALLOC_CTX *_mem_save_info6_0;
9574 TALLOC_CTX *_mem_save_info8_0;
9575 level = ndr_pull_get_switch_value(ndr, r);
9576 if (ndr_flags & NDR_SCALARS) {
9577 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9578 if (_level != level) {
9579 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
9583 uint32_t _ptr_info1;
9584 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
9586 NDR_PULL_ALLOC(ndr, r->info1);
9593 uint32_t _ptr_info2;
9594 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
9596 NDR_PULL_ALLOC(ndr, r->info2);
9603 uint32_t _ptr_info3;
9604 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
9606 NDR_PULL_ALLOC(ndr, r->info3);
9613 uint32_t _ptr_info4;
9614 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
9616 NDR_PULL_ALLOC(ndr, r->info4);
9623 uint32_t _ptr_info6;
9624 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
9626 NDR_PULL_ALLOC(ndr, r->info6);
9633 uint32_t _ptr_info8;
9634 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
9636 NDR_PULL_ALLOC(ndr, r->info8);
9643 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9646 if (ndr_flags & NDR_BUFFERS) {
9650 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
9651 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
9652 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
9659 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
9660 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
9661 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
9668 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
9669 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
9670 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
9671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
9677 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
9678 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
9679 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
9686 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
9687 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
9688 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
9689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
9695 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
9696 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
9697 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
9698 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
9703 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9706 return NDR_ERR_SUCCESS;
9709 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
9712 level = ndr_print_get_switch_value(ndr, r);
9713 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
9716 ndr_print_ptr(ndr, "info1", r->info1);
9719 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
9725 ndr_print_ptr(ndr, "info2", r->info2);
9728 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
9734 ndr_print_ptr(ndr, "info3", r->info3);
9737 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
9743 ndr_print_ptr(ndr, "info4", r->info4);
9746 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
9752 ndr_print_ptr(ndr, "info6", r->info6);
9755 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
9761 ndr_print_ptr(ndr, "info8", r->info8);
9764 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
9770 ndr_print_bad_level(ndr, name, level);
9774 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
9776 if (ndr_flags & NDR_SCALARS) {
9777 NDR_CHECK(ndr_push_align(ndr, 4));
9778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
9779 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
9780 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
9782 if (ndr_flags & NDR_BUFFERS) {
9783 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
9785 return NDR_ERR_SUCCESS;
9788 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
9790 if (ndr_flags & NDR_SCALARS) {
9791 NDR_CHECK(ndr_pull_align(ndr, 4));
9792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
9793 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
9794 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
9796 if (ndr_flags & NDR_BUFFERS) {
9797 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
9799 return NDR_ERR_SUCCESS;
9802 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
9804 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
9806 ndr_print_uint32(ndr, "level", r->level);
9807 ndr_print_set_switch_value(ndr, &r->info, r->level);
9808 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
9812 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
9814 if (ndr_flags & NDR_SCALARS) {
9815 NDR_CHECK(ndr_push_align(ndr, 4));
9817 uint32_t _flags_save_string = ndr->flags;
9818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9819 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9820 ndr->flags = _flags_save_string;
9823 if (ndr_flags & NDR_BUFFERS) {
9825 uint32_t _flags_save_string = ndr->flags;
9826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9827 if (r->driver_name) {
9828 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9829 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9831 ndr->flags = _flags_save_string;
9834 return NDR_ERR_SUCCESS;
9837 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
9839 uint32_t _ptr_driver_name;
9840 TALLOC_CTX *_mem_save_driver_name_0;
9841 if (ndr_flags & NDR_SCALARS) {
9842 NDR_CHECK(ndr_pull_align(ndr, 4));
9844 uint32_t _flags_save_string = ndr->flags;
9845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9846 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9847 if (_ptr_driver_name) {
9848 NDR_PULL_ALLOC(ndr, r->driver_name);
9849 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9851 r->driver_name = NULL;
9853 ndr->flags = _flags_save_string;
9856 if (ndr_flags & NDR_BUFFERS) {
9858 uint32_t _flags_save_string = ndr->flags;
9859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9860 if (r->driver_name) {
9861 uint32_t _relative_save_offset;
9862 _relative_save_offset = ndr->offset;
9863 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9864 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9865 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9866 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9868 ndr->offset = _relative_save_offset;
9870 ndr->flags = _flags_save_string;
9873 return NDR_ERR_SUCCESS;
9876 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
9878 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
9880 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9882 if (r->driver_name) {
9883 ndr_print_string(ndr, "driver_name", r->driver_name);
9889 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
9891 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
9894 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
9896 if (ndr_flags & NDR_SCALARS) {
9897 NDR_CHECK(ndr_push_align(ndr, 4));
9898 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9900 uint32_t _flags_save_string = ndr->flags;
9901 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9902 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9903 ndr->flags = _flags_save_string;
9906 uint32_t _flags_save_string = ndr->flags;
9907 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9908 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
9909 ndr->flags = _flags_save_string;
9912 uint32_t _flags_save_string = ndr->flags;
9913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9914 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
9915 ndr->flags = _flags_save_string;
9918 uint32_t _flags_save_string = ndr->flags;
9919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9920 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
9921 ndr->flags = _flags_save_string;
9924 uint32_t _flags_save_string = ndr->flags;
9925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9926 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
9927 ndr->flags = _flags_save_string;
9930 if (ndr_flags & NDR_BUFFERS) {
9932 uint32_t _flags_save_string = ndr->flags;
9933 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9934 if (r->driver_name) {
9935 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9936 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
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 if (r->architecture) {
9944 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
9945 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
9947 ndr->flags = _flags_save_string;
9950 uint32_t _flags_save_string = ndr->flags;
9951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9952 if (r->driver_path) {
9953 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
9954 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
9956 ndr->flags = _flags_save_string;
9959 uint32_t _flags_save_string = ndr->flags;
9960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9962 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
9963 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
9965 ndr->flags = _flags_save_string;
9968 uint32_t _flags_save_string = ndr->flags;
9969 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9970 if (r->config_file) {
9971 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
9972 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
9974 ndr->flags = _flags_save_string;
9977 return NDR_ERR_SUCCESS;
9980 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
9982 uint32_t _ptr_driver_name;
9983 TALLOC_CTX *_mem_save_driver_name_0;
9984 uint32_t _ptr_architecture;
9985 TALLOC_CTX *_mem_save_architecture_0;
9986 uint32_t _ptr_driver_path;
9987 TALLOC_CTX *_mem_save_driver_path_0;
9988 uint32_t _ptr_data_file;
9989 TALLOC_CTX *_mem_save_data_file_0;
9990 uint32_t _ptr_config_file;
9991 TALLOC_CTX *_mem_save_config_file_0;
9992 if (ndr_flags & NDR_SCALARS) {
9993 NDR_CHECK(ndr_pull_align(ndr, 4));
9994 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9996 uint32_t _flags_save_string = ndr->flags;
9997 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9998 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9999 if (_ptr_driver_name) {
10000 NDR_PULL_ALLOC(ndr, r->driver_name);
10001 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10003 r->driver_name = NULL;
10005 ndr->flags = _flags_save_string;
10008 uint32_t _flags_save_string = ndr->flags;
10009 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10010 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10011 if (_ptr_architecture) {
10012 NDR_PULL_ALLOC(ndr, r->architecture);
10013 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10015 r->architecture = NULL;
10017 ndr->flags = _flags_save_string;
10020 uint32_t _flags_save_string = ndr->flags;
10021 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10022 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10023 if (_ptr_driver_path) {
10024 NDR_PULL_ALLOC(ndr, r->driver_path);
10025 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10027 r->driver_path = NULL;
10029 ndr->flags = _flags_save_string;
10032 uint32_t _flags_save_string = ndr->flags;
10033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10035 if (_ptr_data_file) {
10036 NDR_PULL_ALLOC(ndr, r->data_file);
10037 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10039 r->data_file = NULL;
10041 ndr->flags = _flags_save_string;
10044 uint32_t _flags_save_string = ndr->flags;
10045 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10046 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10047 if (_ptr_config_file) {
10048 NDR_PULL_ALLOC(ndr, r->config_file);
10049 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10051 r->config_file = NULL;
10053 ndr->flags = _flags_save_string;
10056 if (ndr_flags & NDR_BUFFERS) {
10058 uint32_t _flags_save_string = ndr->flags;
10059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10060 if (r->driver_name) {
10061 uint32_t _relative_save_offset;
10062 _relative_save_offset = ndr->offset;
10063 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10064 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10065 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10066 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10068 ndr->offset = _relative_save_offset;
10070 ndr->flags = _flags_save_string;
10073 uint32_t _flags_save_string = ndr->flags;
10074 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10075 if (r->architecture) {
10076 uint32_t _relative_save_offset;
10077 _relative_save_offset = ndr->offset;
10078 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10079 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10080 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10081 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10083 ndr->offset = _relative_save_offset;
10085 ndr->flags = _flags_save_string;
10088 uint32_t _flags_save_string = ndr->flags;
10089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10090 if (r->driver_path) {
10091 uint32_t _relative_save_offset;
10092 _relative_save_offset = ndr->offset;
10093 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10094 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10095 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10096 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10097 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10098 ndr->offset = _relative_save_offset;
10100 ndr->flags = _flags_save_string;
10103 uint32_t _flags_save_string = ndr->flags;
10104 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10105 if (r->data_file) {
10106 uint32_t _relative_save_offset;
10107 _relative_save_offset = ndr->offset;
10108 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10109 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10110 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10111 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10112 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10113 ndr->offset = _relative_save_offset;
10115 ndr->flags = _flags_save_string;
10118 uint32_t _flags_save_string = ndr->flags;
10119 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10120 if (r->config_file) {
10121 uint32_t _relative_save_offset;
10122 _relative_save_offset = ndr->offset;
10123 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10124 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10125 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10126 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10127 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10128 ndr->offset = _relative_save_offset;
10130 ndr->flags = _flags_save_string;
10133 return NDR_ERR_SUCCESS;
10136 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10138 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10140 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10141 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10143 if (r->driver_name) {
10144 ndr_print_string(ndr, "driver_name", r->driver_name);
10147 ndr_print_ptr(ndr, "architecture", r->architecture);
10149 if (r->architecture) {
10150 ndr_print_string(ndr, "architecture", r->architecture);
10153 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10155 if (r->driver_path) {
10156 ndr_print_string(ndr, "driver_path", r->driver_path);
10159 ndr_print_ptr(ndr, "data_file", r->data_file);
10161 if (r->data_file) {
10162 ndr_print_string(ndr, "data_file", r->data_file);
10165 ndr_print_ptr(ndr, "config_file", r->config_file);
10167 if (r->config_file) {
10168 ndr_print_string(ndr, "config_file", r->config_file);
10174 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10176 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10179 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10181 if (ndr_flags & NDR_SCALARS) {
10182 NDR_CHECK(ndr_push_align(ndr, 4));
10183 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10185 uint32_t _flags_save_string = ndr->flags;
10186 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10187 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10188 ndr->flags = _flags_save_string;
10191 uint32_t _flags_save_string = ndr->flags;
10192 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10193 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10194 ndr->flags = _flags_save_string;
10197 uint32_t _flags_save_string = ndr->flags;
10198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10199 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10206 ndr->flags = _flags_save_string;
10209 uint32_t _flags_save_string = ndr->flags;
10210 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10211 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10212 ndr->flags = _flags_save_string;
10215 uint32_t _flags_save_string = ndr->flags;
10216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10217 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10218 ndr->flags = _flags_save_string;
10221 uint32_t _flags_save_string_array = ndr->flags;
10222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10223 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10224 ndr->flags = _flags_save_string_array;
10227 uint32_t _flags_save_string = ndr->flags;
10228 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10229 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10236 ndr->flags = _flags_save_string;
10239 if (ndr_flags & NDR_BUFFERS) {
10241 uint32_t _flags_save_string = ndr->flags;
10242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10243 if (r->driver_name) {
10244 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10245 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10247 ndr->flags = _flags_save_string;
10250 uint32_t _flags_save_string = ndr->flags;
10251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10252 if (r->architecture) {
10253 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10254 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10256 ndr->flags = _flags_save_string;
10259 uint32_t _flags_save_string = ndr->flags;
10260 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10261 if (r->driver_path) {
10262 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10263 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10265 ndr->flags = _flags_save_string;
10268 uint32_t _flags_save_string = ndr->flags;
10269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10270 if (r->data_file) {
10271 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10272 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10274 ndr->flags = _flags_save_string;
10277 uint32_t _flags_save_string = ndr->flags;
10278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10279 if (r->config_file) {
10280 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10281 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10283 ndr->flags = _flags_save_string;
10286 uint32_t _flags_save_string = ndr->flags;
10287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10288 if (r->help_file) {
10289 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
10290 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10292 ndr->flags = _flags_save_string;
10295 uint32_t _flags_save_string_array = ndr->flags;
10296 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10297 if (r->dependent_files) {
10298 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
10299 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10301 ndr->flags = _flags_save_string_array;
10304 uint32_t _flags_save_string = ndr->flags;
10305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10306 if (r->monitor_name) {
10307 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10308 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10310 ndr->flags = _flags_save_string;
10313 uint32_t _flags_save_string = ndr->flags;
10314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10315 if (r->default_datatype) {
10316 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
10317 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10319 ndr->flags = _flags_save_string;
10322 return NDR_ERR_SUCCESS;
10325 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
10327 uint32_t _ptr_driver_name;
10328 TALLOC_CTX *_mem_save_driver_name_0;
10329 uint32_t _ptr_architecture;
10330 TALLOC_CTX *_mem_save_architecture_0;
10331 uint32_t _ptr_driver_path;
10332 TALLOC_CTX *_mem_save_driver_path_0;
10333 uint32_t _ptr_data_file;
10334 TALLOC_CTX *_mem_save_data_file_0;
10335 uint32_t _ptr_config_file;
10336 TALLOC_CTX *_mem_save_config_file_0;
10337 uint32_t _ptr_help_file;
10338 TALLOC_CTX *_mem_save_help_file_0;
10339 uint32_t _ptr_dependent_files;
10340 TALLOC_CTX *_mem_save_dependent_files_0;
10341 uint32_t _ptr_monitor_name;
10342 TALLOC_CTX *_mem_save_monitor_name_0;
10343 uint32_t _ptr_default_datatype;
10344 TALLOC_CTX *_mem_save_default_datatype_0;
10345 if (ndr_flags & NDR_SCALARS) {
10346 NDR_CHECK(ndr_pull_align(ndr, 4));
10347 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10349 uint32_t _flags_save_string = ndr->flags;
10350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10351 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10352 if (_ptr_driver_name) {
10353 NDR_PULL_ALLOC(ndr, r->driver_name);
10354 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10356 r->driver_name = NULL;
10358 ndr->flags = _flags_save_string;
10361 uint32_t _flags_save_string = ndr->flags;
10362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10364 if (_ptr_architecture) {
10365 NDR_PULL_ALLOC(ndr, r->architecture);
10366 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10368 r->architecture = NULL;
10370 ndr->flags = _flags_save_string;
10373 uint32_t _flags_save_string = ndr->flags;
10374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10376 if (_ptr_driver_path) {
10377 NDR_PULL_ALLOC(ndr, r->driver_path);
10378 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10380 r->driver_path = NULL;
10382 ndr->flags = _flags_save_string;
10385 uint32_t _flags_save_string = ndr->flags;
10386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10387 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10388 if (_ptr_data_file) {
10389 NDR_PULL_ALLOC(ndr, r->data_file);
10390 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10392 r->data_file = NULL;
10394 ndr->flags = _flags_save_string;
10397 uint32_t _flags_save_string = ndr->flags;
10398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10399 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10400 if (_ptr_config_file) {
10401 NDR_PULL_ALLOC(ndr, r->config_file);
10402 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10404 r->config_file = NULL;
10406 ndr->flags = _flags_save_string;
10409 uint32_t _flags_save_string = ndr->flags;
10410 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10411 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10412 if (_ptr_help_file) {
10413 NDR_PULL_ALLOC(ndr, r->help_file);
10414 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10416 r->help_file = NULL;
10418 ndr->flags = _flags_save_string;
10421 uint32_t _flags_save_string_array = ndr->flags;
10422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10424 if (_ptr_dependent_files) {
10425 NDR_PULL_ALLOC(ndr, r->dependent_files);
10426 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10428 r->dependent_files = NULL;
10430 ndr->flags = _flags_save_string_array;
10433 uint32_t _flags_save_string = ndr->flags;
10434 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10435 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10436 if (_ptr_monitor_name) {
10437 NDR_PULL_ALLOC(ndr, r->monitor_name);
10438 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10440 r->monitor_name = NULL;
10442 ndr->flags = _flags_save_string;
10445 uint32_t _flags_save_string = ndr->flags;
10446 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10447 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10448 if (_ptr_default_datatype) {
10449 NDR_PULL_ALLOC(ndr, r->default_datatype);
10450 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10452 r->default_datatype = NULL;
10454 ndr->flags = _flags_save_string;
10457 if (ndr_flags & NDR_BUFFERS) {
10459 uint32_t _flags_save_string = ndr->flags;
10460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10461 if (r->driver_name) {
10462 uint32_t _relative_save_offset;
10463 _relative_save_offset = ndr->offset;
10464 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10465 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10466 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10467 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10469 ndr->offset = _relative_save_offset;
10471 ndr->flags = _flags_save_string;
10474 uint32_t _flags_save_string = ndr->flags;
10475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10476 if (r->architecture) {
10477 uint32_t _relative_save_offset;
10478 _relative_save_offset = ndr->offset;
10479 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10480 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10481 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10482 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10483 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10484 ndr->offset = _relative_save_offset;
10486 ndr->flags = _flags_save_string;
10489 uint32_t _flags_save_string = ndr->flags;
10490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10491 if (r->driver_path) {
10492 uint32_t _relative_save_offset;
10493 _relative_save_offset = ndr->offset;
10494 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10495 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10496 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10497 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10499 ndr->offset = _relative_save_offset;
10501 ndr->flags = _flags_save_string;
10504 uint32_t _flags_save_string = ndr->flags;
10505 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10506 if (r->data_file) {
10507 uint32_t _relative_save_offset;
10508 _relative_save_offset = ndr->offset;
10509 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10510 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10511 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10512 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10514 ndr->offset = _relative_save_offset;
10516 ndr->flags = _flags_save_string;
10519 uint32_t _flags_save_string = ndr->flags;
10520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10521 if (r->config_file) {
10522 uint32_t _relative_save_offset;
10523 _relative_save_offset = ndr->offset;
10524 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10525 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10526 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10527 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10529 ndr->offset = _relative_save_offset;
10531 ndr->flags = _flags_save_string;
10534 uint32_t _flags_save_string = ndr->flags;
10535 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10536 if (r->help_file) {
10537 uint32_t _relative_save_offset;
10538 _relative_save_offset = ndr->offset;
10539 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10540 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10541 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10542 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10544 ndr->offset = _relative_save_offset;
10546 ndr->flags = _flags_save_string;
10549 uint32_t _flags_save_string_array = ndr->flags;
10550 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10551 if (r->dependent_files) {
10552 uint32_t _relative_save_offset;
10553 _relative_save_offset = ndr->offset;
10554 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10555 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10556 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10557 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
10558 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10559 ndr->offset = _relative_save_offset;
10561 ndr->flags = _flags_save_string_array;
10564 uint32_t _flags_save_string = ndr->flags;
10565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10566 if (r->monitor_name) {
10567 uint32_t _relative_save_offset;
10568 _relative_save_offset = ndr->offset;
10569 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10570 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10571 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10572 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10573 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10574 ndr->offset = _relative_save_offset;
10576 ndr->flags = _flags_save_string;
10579 uint32_t _flags_save_string = ndr->flags;
10580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10581 if (r->default_datatype) {
10582 uint32_t _relative_save_offset;
10583 _relative_save_offset = ndr->offset;
10584 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
10585 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10586 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10587 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
10588 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10589 ndr->offset = _relative_save_offset;
10591 ndr->flags = _flags_save_string;
10594 return NDR_ERR_SUCCESS;
10597 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
10599 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
10601 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10602 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10604 if (r->driver_name) {
10605 ndr_print_string(ndr, "driver_name", r->driver_name);
10608 ndr_print_ptr(ndr, "architecture", r->architecture);
10610 if (r->architecture) {
10611 ndr_print_string(ndr, "architecture", r->architecture);
10614 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10616 if (r->driver_path) {
10617 ndr_print_string(ndr, "driver_path", r->driver_path);
10620 ndr_print_ptr(ndr, "data_file", r->data_file);
10622 if (r->data_file) {
10623 ndr_print_string(ndr, "data_file", r->data_file);
10626 ndr_print_ptr(ndr, "config_file", r->config_file);
10628 if (r->config_file) {
10629 ndr_print_string(ndr, "config_file", r->config_file);
10632 ndr_print_ptr(ndr, "help_file", r->help_file);
10634 if (r->help_file) {
10635 ndr_print_string(ndr, "help_file", r->help_file);
10638 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10640 if (r->dependent_files) {
10641 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
10644 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10646 if (r->monitor_name) {
10647 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10650 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10652 if (r->default_datatype) {
10653 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10659 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
10661 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
10664 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
10666 if (ndr_flags & NDR_SCALARS) {
10667 NDR_CHECK(ndr_push_align(ndr, 4));
10668 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10670 uint32_t _flags_save_string = ndr->flags;
10671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10672 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10673 ndr->flags = _flags_save_string;
10676 uint32_t _flags_save_string = ndr->flags;
10677 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10678 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10679 ndr->flags = _flags_save_string;
10682 uint32_t _flags_save_string = ndr->flags;
10683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10684 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10685 ndr->flags = _flags_save_string;
10688 uint32_t _flags_save_string = ndr->flags;
10689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10690 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10691 ndr->flags = _flags_save_string;
10694 uint32_t _flags_save_string = ndr->flags;
10695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10696 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10697 ndr->flags = _flags_save_string;
10700 uint32_t _flags_save_string = ndr->flags;
10701 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10702 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10703 ndr->flags = _flags_save_string;
10706 uint32_t _flags_save_string_array = ndr->flags;
10707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10708 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10709 ndr->flags = _flags_save_string_array;
10712 uint32_t _flags_save_string = ndr->flags;
10713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10714 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10715 ndr->flags = _flags_save_string;
10718 uint32_t _flags_save_string = ndr->flags;
10719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10720 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10721 ndr->flags = _flags_save_string;
10724 uint32_t _flags_save_string_array = ndr->flags;
10725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10726 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
10727 ndr->flags = _flags_save_string_array;
10730 if (ndr_flags & NDR_BUFFERS) {
10732 uint32_t _flags_save_string = ndr->flags;
10733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10734 if (r->driver_name) {
10735 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10736 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10738 ndr->flags = _flags_save_string;
10741 uint32_t _flags_save_string = ndr->flags;
10742 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10743 if (r->architecture) {
10744 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10745 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10747 ndr->flags = _flags_save_string;
10750 uint32_t _flags_save_string = ndr->flags;
10751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10752 if (r->driver_path) {
10753 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10754 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10756 ndr->flags = _flags_save_string;
10759 uint32_t _flags_save_string = ndr->flags;
10760 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10761 if (r->data_file) {
10762 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10763 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10765 ndr->flags = _flags_save_string;
10768 uint32_t _flags_save_string = ndr->flags;
10769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10770 if (r->config_file) {
10771 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10772 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10774 ndr->flags = _flags_save_string;
10777 uint32_t _flags_save_string = ndr->flags;
10778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10779 if (r->help_file) {
10780 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
10781 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10783 ndr->flags = _flags_save_string;
10786 uint32_t _flags_save_string_array = ndr->flags;
10787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10788 if (r->dependent_files) {
10789 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
10790 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10792 ndr->flags = _flags_save_string_array;
10795 uint32_t _flags_save_string = ndr->flags;
10796 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10797 if (r->monitor_name) {
10798 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10799 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10801 ndr->flags = _flags_save_string;
10804 uint32_t _flags_save_string = ndr->flags;
10805 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10806 if (r->default_datatype) {
10807 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
10808 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10810 ndr->flags = _flags_save_string;
10813 uint32_t _flags_save_string_array = ndr->flags;
10814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10815 if (r->previous_names) {
10816 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
10817 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
10819 ndr->flags = _flags_save_string_array;
10822 return NDR_ERR_SUCCESS;
10825 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
10827 uint32_t _ptr_driver_name;
10828 TALLOC_CTX *_mem_save_driver_name_0;
10829 uint32_t _ptr_architecture;
10830 TALLOC_CTX *_mem_save_architecture_0;
10831 uint32_t _ptr_driver_path;
10832 TALLOC_CTX *_mem_save_driver_path_0;
10833 uint32_t _ptr_data_file;
10834 TALLOC_CTX *_mem_save_data_file_0;
10835 uint32_t _ptr_config_file;
10836 TALLOC_CTX *_mem_save_config_file_0;
10837 uint32_t _ptr_help_file;
10838 TALLOC_CTX *_mem_save_help_file_0;
10839 uint32_t _ptr_dependent_files;
10840 TALLOC_CTX *_mem_save_dependent_files_0;
10841 uint32_t _ptr_monitor_name;
10842 TALLOC_CTX *_mem_save_monitor_name_0;
10843 uint32_t _ptr_default_datatype;
10844 TALLOC_CTX *_mem_save_default_datatype_0;
10845 uint32_t _ptr_previous_names;
10846 TALLOC_CTX *_mem_save_previous_names_0;
10847 if (ndr_flags & NDR_SCALARS) {
10848 NDR_CHECK(ndr_pull_align(ndr, 4));
10849 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10851 uint32_t _flags_save_string = ndr->flags;
10852 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10853 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10854 if (_ptr_driver_name) {
10855 NDR_PULL_ALLOC(ndr, r->driver_name);
10856 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10858 r->driver_name = NULL;
10860 ndr->flags = _flags_save_string;
10863 uint32_t _flags_save_string = ndr->flags;
10864 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10866 if (_ptr_architecture) {
10867 NDR_PULL_ALLOC(ndr, r->architecture);
10868 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10870 r->architecture = NULL;
10872 ndr->flags = _flags_save_string;
10875 uint32_t _flags_save_string = ndr->flags;
10876 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10877 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10878 if (_ptr_driver_path) {
10879 NDR_PULL_ALLOC(ndr, r->driver_path);
10880 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10882 r->driver_path = NULL;
10884 ndr->flags = _flags_save_string;
10887 uint32_t _flags_save_string = ndr->flags;
10888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10890 if (_ptr_data_file) {
10891 NDR_PULL_ALLOC(ndr, r->data_file);
10892 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10894 r->data_file = NULL;
10896 ndr->flags = _flags_save_string;
10899 uint32_t _flags_save_string = ndr->flags;
10900 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10902 if (_ptr_config_file) {
10903 NDR_PULL_ALLOC(ndr, r->config_file);
10904 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10906 r->config_file = NULL;
10908 ndr->flags = _flags_save_string;
10911 uint32_t _flags_save_string = ndr->flags;
10912 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10913 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10914 if (_ptr_help_file) {
10915 NDR_PULL_ALLOC(ndr, r->help_file);
10916 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10918 r->help_file = NULL;
10920 ndr->flags = _flags_save_string;
10923 uint32_t _flags_save_string_array = ndr->flags;
10924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10926 if (_ptr_dependent_files) {
10927 NDR_PULL_ALLOC(ndr, r->dependent_files);
10928 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10930 r->dependent_files = NULL;
10932 ndr->flags = _flags_save_string_array;
10935 uint32_t _flags_save_string = ndr->flags;
10936 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10937 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10938 if (_ptr_monitor_name) {
10939 NDR_PULL_ALLOC(ndr, r->monitor_name);
10940 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10942 r->monitor_name = NULL;
10944 ndr->flags = _flags_save_string;
10947 uint32_t _flags_save_string = ndr->flags;
10948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10949 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10950 if (_ptr_default_datatype) {
10951 NDR_PULL_ALLOC(ndr, r->default_datatype);
10952 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10954 r->default_datatype = NULL;
10956 ndr->flags = _flags_save_string;
10959 uint32_t _flags_save_string_array = ndr->flags;
10960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10961 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10962 if (_ptr_previous_names) {
10963 NDR_PULL_ALLOC(ndr, r->previous_names);
10964 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
10966 r->previous_names = NULL;
10968 ndr->flags = _flags_save_string_array;
10971 if (ndr_flags & NDR_BUFFERS) {
10973 uint32_t _flags_save_string = ndr->flags;
10974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10975 if (r->driver_name) {
10976 uint32_t _relative_save_offset;
10977 _relative_save_offset = ndr->offset;
10978 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10979 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10980 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10981 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10983 ndr->offset = _relative_save_offset;
10985 ndr->flags = _flags_save_string;
10988 uint32_t _flags_save_string = ndr->flags;
10989 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10990 if (r->architecture) {
10991 uint32_t _relative_save_offset;
10992 _relative_save_offset = ndr->offset;
10993 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10994 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10995 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10996 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10998 ndr->offset = _relative_save_offset;
11000 ndr->flags = _flags_save_string;
11003 uint32_t _flags_save_string = ndr->flags;
11004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11005 if (r->driver_path) {
11006 uint32_t _relative_save_offset;
11007 _relative_save_offset = ndr->offset;
11008 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11009 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11010 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11011 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11012 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11013 ndr->offset = _relative_save_offset;
11015 ndr->flags = _flags_save_string;
11018 uint32_t _flags_save_string = ndr->flags;
11019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11020 if (r->data_file) {
11021 uint32_t _relative_save_offset;
11022 _relative_save_offset = ndr->offset;
11023 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11024 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11025 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11026 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11028 ndr->offset = _relative_save_offset;
11030 ndr->flags = _flags_save_string;
11033 uint32_t _flags_save_string = ndr->flags;
11034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11035 if (r->config_file) {
11036 uint32_t _relative_save_offset;
11037 _relative_save_offset = ndr->offset;
11038 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11039 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11040 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11041 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11043 ndr->offset = _relative_save_offset;
11045 ndr->flags = _flags_save_string;
11048 uint32_t _flags_save_string = ndr->flags;
11049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11050 if (r->help_file) {
11051 uint32_t _relative_save_offset;
11052 _relative_save_offset = ndr->offset;
11053 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11054 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11055 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11056 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11058 ndr->offset = _relative_save_offset;
11060 ndr->flags = _flags_save_string;
11063 uint32_t _flags_save_string_array = ndr->flags;
11064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11065 if (r->dependent_files) {
11066 uint32_t _relative_save_offset;
11067 _relative_save_offset = ndr->offset;
11068 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11069 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11070 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11071 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11073 ndr->offset = _relative_save_offset;
11075 ndr->flags = _flags_save_string_array;
11078 uint32_t _flags_save_string = ndr->flags;
11079 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11080 if (r->monitor_name) {
11081 uint32_t _relative_save_offset;
11082 _relative_save_offset = ndr->offset;
11083 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11084 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11085 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11086 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11088 ndr->offset = _relative_save_offset;
11090 ndr->flags = _flags_save_string;
11093 uint32_t _flags_save_string = ndr->flags;
11094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11095 if (r->default_datatype) {
11096 uint32_t _relative_save_offset;
11097 _relative_save_offset = ndr->offset;
11098 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11099 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11100 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11101 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11103 ndr->offset = _relative_save_offset;
11105 ndr->flags = _flags_save_string;
11108 uint32_t _flags_save_string_array = ndr->flags;
11109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11110 if (r->previous_names) {
11111 uint32_t _relative_save_offset;
11112 _relative_save_offset = ndr->offset;
11113 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11114 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11115 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11116 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11118 ndr->offset = _relative_save_offset;
11120 ndr->flags = _flags_save_string_array;
11123 return NDR_ERR_SUCCESS;
11126 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11128 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11130 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11131 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11133 if (r->driver_name) {
11134 ndr_print_string(ndr, "driver_name", r->driver_name);
11137 ndr_print_ptr(ndr, "architecture", r->architecture);
11139 if (r->architecture) {
11140 ndr_print_string(ndr, "architecture", r->architecture);
11143 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11145 if (r->driver_path) {
11146 ndr_print_string(ndr, "driver_path", r->driver_path);
11149 ndr_print_ptr(ndr, "data_file", r->data_file);
11151 if (r->data_file) {
11152 ndr_print_string(ndr, "data_file", r->data_file);
11155 ndr_print_ptr(ndr, "config_file", r->config_file);
11157 if (r->config_file) {
11158 ndr_print_string(ndr, "config_file", r->config_file);
11161 ndr_print_ptr(ndr, "help_file", r->help_file);
11163 if (r->help_file) {
11164 ndr_print_string(ndr, "help_file", r->help_file);
11167 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11169 if (r->dependent_files) {
11170 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11173 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11175 if (r->monitor_name) {
11176 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11179 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11181 if (r->default_datatype) {
11182 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11185 ndr_print_ptr(ndr, "previous_names", r->previous_names);
11187 if (r->previous_names) {
11188 ndr_print_string_array(ndr, "previous_names", r->previous_names);
11194 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
11196 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
11199 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
11201 if (ndr_flags & NDR_SCALARS) {
11202 NDR_CHECK(ndr_push_align(ndr, 4));
11203 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11205 uint32_t _flags_save_string = ndr->flags;
11206 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11207 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11208 ndr->flags = _flags_save_string;
11211 uint32_t _flags_save_string = ndr->flags;
11212 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11213 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11214 ndr->flags = _flags_save_string;
11217 uint32_t _flags_save_string = ndr->flags;
11218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11219 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11220 ndr->flags = _flags_save_string;
11223 uint32_t _flags_save_string = ndr->flags;
11224 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11225 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11226 ndr->flags = _flags_save_string;
11229 uint32_t _flags_save_string = ndr->flags;
11230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11231 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11232 ndr->flags = _flags_save_string;
11234 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_attributes));
11235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
11236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
11238 if (ndr_flags & NDR_BUFFERS) {
11240 uint32_t _flags_save_string = ndr->flags;
11241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11242 if (r->driver_name) {
11243 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11244 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11246 ndr->flags = _flags_save_string;
11249 uint32_t _flags_save_string = ndr->flags;
11250 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11251 if (r->architecture) {
11252 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11253 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11255 ndr->flags = _flags_save_string;
11258 uint32_t _flags_save_string = ndr->flags;
11259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11260 if (r->driver_path) {
11261 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11262 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11264 ndr->flags = _flags_save_string;
11267 uint32_t _flags_save_string = ndr->flags;
11268 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11269 if (r->data_file) {
11270 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11271 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11273 ndr->flags = _flags_save_string;
11276 uint32_t _flags_save_string = ndr->flags;
11277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11278 if (r->config_file) {
11279 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11280 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11282 ndr->flags = _flags_save_string;
11285 return NDR_ERR_SUCCESS;
11288 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
11290 uint32_t _ptr_driver_name;
11291 TALLOC_CTX *_mem_save_driver_name_0;
11292 uint32_t _ptr_architecture;
11293 TALLOC_CTX *_mem_save_architecture_0;
11294 uint32_t _ptr_driver_path;
11295 TALLOC_CTX *_mem_save_driver_path_0;
11296 uint32_t _ptr_data_file;
11297 TALLOC_CTX *_mem_save_data_file_0;
11298 uint32_t _ptr_config_file;
11299 TALLOC_CTX *_mem_save_config_file_0;
11300 if (ndr_flags & NDR_SCALARS) {
11301 NDR_CHECK(ndr_pull_align(ndr, 4));
11302 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11304 uint32_t _flags_save_string = ndr->flags;
11305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11306 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11307 if (_ptr_driver_name) {
11308 NDR_PULL_ALLOC(ndr, r->driver_name);
11309 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11311 r->driver_name = NULL;
11313 ndr->flags = _flags_save_string;
11316 uint32_t _flags_save_string = ndr->flags;
11317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11318 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11319 if (_ptr_architecture) {
11320 NDR_PULL_ALLOC(ndr, r->architecture);
11321 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11323 r->architecture = NULL;
11325 ndr->flags = _flags_save_string;
11328 uint32_t _flags_save_string = ndr->flags;
11329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11330 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11331 if (_ptr_driver_path) {
11332 NDR_PULL_ALLOC(ndr, r->driver_path);
11333 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11335 r->driver_path = NULL;
11337 ndr->flags = _flags_save_string;
11340 uint32_t _flags_save_string = ndr->flags;
11341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11343 if (_ptr_data_file) {
11344 NDR_PULL_ALLOC(ndr, r->data_file);
11345 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11347 r->data_file = NULL;
11349 ndr->flags = _flags_save_string;
11352 uint32_t _flags_save_string = ndr->flags;
11353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11354 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11355 if (_ptr_config_file) {
11356 NDR_PULL_ALLOC(ndr, r->config_file);
11357 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11359 r->config_file = NULL;
11361 ndr->flags = _flags_save_string;
11363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_attributes));
11364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
11365 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
11367 if (ndr_flags & NDR_BUFFERS) {
11369 uint32_t _flags_save_string = ndr->flags;
11370 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11371 if (r->driver_name) {
11372 uint32_t _relative_save_offset;
11373 _relative_save_offset = ndr->offset;
11374 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11375 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11376 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11377 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11379 ndr->offset = _relative_save_offset;
11381 ndr->flags = _flags_save_string;
11384 uint32_t _flags_save_string = ndr->flags;
11385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11386 if (r->architecture) {
11387 uint32_t _relative_save_offset;
11388 _relative_save_offset = ndr->offset;
11389 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11390 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11391 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11392 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11394 ndr->offset = _relative_save_offset;
11396 ndr->flags = _flags_save_string;
11399 uint32_t _flags_save_string = ndr->flags;
11400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11401 if (r->driver_path) {
11402 uint32_t _relative_save_offset;
11403 _relative_save_offset = ndr->offset;
11404 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11405 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11406 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11407 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11409 ndr->offset = _relative_save_offset;
11411 ndr->flags = _flags_save_string;
11414 uint32_t _flags_save_string = ndr->flags;
11415 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11416 if (r->data_file) {
11417 uint32_t _relative_save_offset;
11418 _relative_save_offset = ndr->offset;
11419 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11420 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11421 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11422 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11424 ndr->offset = _relative_save_offset;
11426 ndr->flags = _flags_save_string;
11429 uint32_t _flags_save_string = ndr->flags;
11430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11431 if (r->config_file) {
11432 uint32_t _relative_save_offset;
11433 _relative_save_offset = ndr->offset;
11434 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11435 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11436 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11437 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11439 ndr->offset = _relative_save_offset;
11441 ndr->flags = _flags_save_string;
11444 return NDR_ERR_SUCCESS;
11447 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
11449 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
11451 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11452 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11454 if (r->driver_name) {
11455 ndr_print_string(ndr, "driver_name", r->driver_name);
11458 ndr_print_ptr(ndr, "architecture", r->architecture);
11460 if (r->architecture) {
11461 ndr_print_string(ndr, "architecture", r->architecture);
11464 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11466 if (r->driver_path) {
11467 ndr_print_string(ndr, "driver_path", r->driver_path);
11470 ndr_print_ptr(ndr, "data_file", r->data_file);
11472 if (r->data_file) {
11473 ndr_print_string(ndr, "data_file", r->data_file);
11476 ndr_print_ptr(ndr, "config_file", r->config_file);
11478 if (r->config_file) {
11479 ndr_print_string(ndr, "config_file", r->config_file);
11482 ndr_print_uint32(ndr, "driver_attributes", r->driver_attributes);
11483 ndr_print_uint32(ndr, "config_version", r->config_version);
11484 ndr_print_uint32(ndr, "driver_version", r->driver_version);
11488 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
11490 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
11493 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
11495 if (ndr_flags & NDR_SCALARS) {
11496 NDR_CHECK(ndr_push_align(ndr, 8));
11497 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11499 uint32_t _flags_save_string = ndr->flags;
11500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11501 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11502 ndr->flags = _flags_save_string;
11505 uint32_t _flags_save_string = ndr->flags;
11506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11507 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11508 ndr->flags = _flags_save_string;
11511 uint32_t _flags_save_string = ndr->flags;
11512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11513 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11514 ndr->flags = _flags_save_string;
11517 uint32_t _flags_save_string = ndr->flags;
11518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11519 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11520 ndr->flags = _flags_save_string;
11523 uint32_t _flags_save_string = ndr->flags;
11524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11525 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11526 ndr->flags = _flags_save_string;
11529 uint32_t _flags_save_string = ndr->flags;
11530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11531 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11532 ndr->flags = _flags_save_string;
11535 uint32_t _flags_save_string_array = ndr->flags;
11536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11537 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11538 ndr->flags = _flags_save_string_array;
11541 uint32_t _flags_save_string = ndr->flags;
11542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11543 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11544 ndr->flags = _flags_save_string;
11547 uint32_t _flags_save_string = ndr->flags;
11548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11549 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11550 ndr->flags = _flags_save_string;
11553 uint32_t _flags_save_string_array = ndr->flags;
11554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11555 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11556 ndr->flags = _flags_save_string_array;
11558 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
11559 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
11561 uint32_t _flags_save_string = ndr->flags;
11562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11563 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
11564 ndr->flags = _flags_save_string;
11567 uint32_t _flags_save_string = ndr->flags;
11568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11569 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
11570 ndr->flags = _flags_save_string;
11573 uint32_t _flags_save_string = ndr->flags;
11574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11575 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
11576 ndr->flags = _flags_save_string;
11579 uint32_t _flags_save_string = ndr->flags;
11580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11581 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
11582 ndr->flags = _flags_save_string;
11585 if (ndr_flags & NDR_BUFFERS) {
11587 uint32_t _flags_save_string = ndr->flags;
11588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11589 if (r->driver_name) {
11590 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11591 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11593 ndr->flags = _flags_save_string;
11596 uint32_t _flags_save_string = ndr->flags;
11597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11598 if (r->architecture) {
11599 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11600 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11602 ndr->flags = _flags_save_string;
11605 uint32_t _flags_save_string = ndr->flags;
11606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11607 if (r->driver_path) {
11608 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11609 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11611 ndr->flags = _flags_save_string;
11614 uint32_t _flags_save_string = ndr->flags;
11615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11616 if (r->data_file) {
11617 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11618 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11620 ndr->flags = _flags_save_string;
11623 uint32_t _flags_save_string = ndr->flags;
11624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11625 if (r->config_file) {
11626 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11627 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11629 ndr->flags = _flags_save_string;
11632 uint32_t _flags_save_string = ndr->flags;
11633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11634 if (r->help_file) {
11635 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11636 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11638 ndr->flags = _flags_save_string;
11641 uint32_t _flags_save_string_array = ndr->flags;
11642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11643 if (r->dependent_files) {
11644 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11645 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11647 ndr->flags = _flags_save_string_array;
11650 uint32_t _flags_save_string = ndr->flags;
11651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11652 if (r->monitor_name) {
11653 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11654 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11656 ndr->flags = _flags_save_string;
11659 uint32_t _flags_save_string = ndr->flags;
11660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11661 if (r->default_datatype) {
11662 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11663 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11665 ndr->flags = _flags_save_string;
11668 uint32_t _flags_save_string_array = ndr->flags;
11669 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11670 if (r->previous_names) {
11671 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
11672 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11674 ndr->flags = _flags_save_string_array;
11677 uint32_t _flags_save_string = ndr->flags;
11678 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11679 if (r->manufacturer_name) {
11680 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
11681 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
11683 ndr->flags = _flags_save_string;
11686 uint32_t _flags_save_string = ndr->flags;
11687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11688 if (r->manufacturer_url) {
11689 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
11690 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
11692 ndr->flags = _flags_save_string;
11695 uint32_t _flags_save_string = ndr->flags;
11696 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11697 if (r->hardware_id) {
11698 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
11699 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
11701 ndr->flags = _flags_save_string;
11704 uint32_t _flags_save_string = ndr->flags;
11705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11707 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
11708 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
11710 ndr->flags = _flags_save_string;
11713 return NDR_ERR_SUCCESS;
11716 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
11718 uint32_t _ptr_driver_name;
11719 TALLOC_CTX *_mem_save_driver_name_0;
11720 uint32_t _ptr_architecture;
11721 TALLOC_CTX *_mem_save_architecture_0;
11722 uint32_t _ptr_driver_path;
11723 TALLOC_CTX *_mem_save_driver_path_0;
11724 uint32_t _ptr_data_file;
11725 TALLOC_CTX *_mem_save_data_file_0;
11726 uint32_t _ptr_config_file;
11727 TALLOC_CTX *_mem_save_config_file_0;
11728 uint32_t _ptr_help_file;
11729 TALLOC_CTX *_mem_save_help_file_0;
11730 uint32_t _ptr_dependent_files;
11731 TALLOC_CTX *_mem_save_dependent_files_0;
11732 uint32_t _ptr_monitor_name;
11733 TALLOC_CTX *_mem_save_monitor_name_0;
11734 uint32_t _ptr_default_datatype;
11735 TALLOC_CTX *_mem_save_default_datatype_0;
11736 uint32_t _ptr_previous_names;
11737 TALLOC_CTX *_mem_save_previous_names_0;
11738 uint32_t _ptr_manufacturer_name;
11739 TALLOC_CTX *_mem_save_manufacturer_name_0;
11740 uint32_t _ptr_manufacturer_url;
11741 TALLOC_CTX *_mem_save_manufacturer_url_0;
11742 uint32_t _ptr_hardware_id;
11743 TALLOC_CTX *_mem_save_hardware_id_0;
11744 uint32_t _ptr_provider;
11745 TALLOC_CTX *_mem_save_provider_0;
11746 if (ndr_flags & NDR_SCALARS) {
11747 NDR_CHECK(ndr_pull_align(ndr, 8));
11748 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11750 uint32_t _flags_save_string = ndr->flags;
11751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11752 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11753 if (_ptr_driver_name) {
11754 NDR_PULL_ALLOC(ndr, r->driver_name);
11755 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11757 r->driver_name = NULL;
11759 ndr->flags = _flags_save_string;
11762 uint32_t _flags_save_string = ndr->flags;
11763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11764 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11765 if (_ptr_architecture) {
11766 NDR_PULL_ALLOC(ndr, r->architecture);
11767 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11769 r->architecture = NULL;
11771 ndr->flags = _flags_save_string;
11774 uint32_t _flags_save_string = ndr->flags;
11775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11777 if (_ptr_driver_path) {
11778 NDR_PULL_ALLOC(ndr, r->driver_path);
11779 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11781 r->driver_path = NULL;
11783 ndr->flags = _flags_save_string;
11786 uint32_t _flags_save_string = ndr->flags;
11787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11788 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11789 if (_ptr_data_file) {
11790 NDR_PULL_ALLOC(ndr, r->data_file);
11791 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11793 r->data_file = NULL;
11795 ndr->flags = _flags_save_string;
11798 uint32_t _flags_save_string = ndr->flags;
11799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11801 if (_ptr_config_file) {
11802 NDR_PULL_ALLOC(ndr, r->config_file);
11803 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11805 r->config_file = NULL;
11807 ndr->flags = _flags_save_string;
11810 uint32_t _flags_save_string = ndr->flags;
11811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11812 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11813 if (_ptr_help_file) {
11814 NDR_PULL_ALLOC(ndr, r->help_file);
11815 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11817 r->help_file = NULL;
11819 ndr->flags = _flags_save_string;
11822 uint32_t _flags_save_string_array = ndr->flags;
11823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11824 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11825 if (_ptr_dependent_files) {
11826 NDR_PULL_ALLOC(ndr, r->dependent_files);
11827 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11829 r->dependent_files = NULL;
11831 ndr->flags = _flags_save_string_array;
11834 uint32_t _flags_save_string = ndr->flags;
11835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11837 if (_ptr_monitor_name) {
11838 NDR_PULL_ALLOC(ndr, r->monitor_name);
11839 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11841 r->monitor_name = NULL;
11843 ndr->flags = _flags_save_string;
11846 uint32_t _flags_save_string = ndr->flags;
11847 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11849 if (_ptr_default_datatype) {
11850 NDR_PULL_ALLOC(ndr, r->default_datatype);
11851 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11853 r->default_datatype = NULL;
11855 ndr->flags = _flags_save_string;
11858 uint32_t _flags_save_string_array = ndr->flags;
11859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11861 if (_ptr_previous_names) {
11862 NDR_PULL_ALLOC(ndr, r->previous_names);
11863 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11865 r->previous_names = NULL;
11867 ndr->flags = _flags_save_string_array;
11869 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
11870 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
11872 uint32_t _flags_save_string = ndr->flags;
11873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11874 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
11875 if (_ptr_manufacturer_name) {
11876 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
11877 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
11879 r->manufacturer_name = NULL;
11881 ndr->flags = _flags_save_string;
11884 uint32_t _flags_save_string = ndr->flags;
11885 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
11887 if (_ptr_manufacturer_url) {
11888 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
11889 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
11891 r->manufacturer_url = NULL;
11893 ndr->flags = _flags_save_string;
11896 uint32_t _flags_save_string = ndr->flags;
11897 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
11899 if (_ptr_hardware_id) {
11900 NDR_PULL_ALLOC(ndr, r->hardware_id);
11901 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
11903 r->hardware_id = NULL;
11905 ndr->flags = _flags_save_string;
11908 uint32_t _flags_save_string = ndr->flags;
11909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
11911 if (_ptr_provider) {
11912 NDR_PULL_ALLOC(ndr, r->provider);
11913 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
11915 r->provider = NULL;
11917 ndr->flags = _flags_save_string;
11920 if (ndr_flags & NDR_BUFFERS) {
11922 uint32_t _flags_save_string = ndr->flags;
11923 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11924 if (r->driver_name) {
11925 uint32_t _relative_save_offset;
11926 _relative_save_offset = ndr->offset;
11927 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11928 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11929 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11930 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11932 ndr->offset = _relative_save_offset;
11934 ndr->flags = _flags_save_string;
11937 uint32_t _flags_save_string = ndr->flags;
11938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11939 if (r->architecture) {
11940 uint32_t _relative_save_offset;
11941 _relative_save_offset = ndr->offset;
11942 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11943 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11944 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11945 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11947 ndr->offset = _relative_save_offset;
11949 ndr->flags = _flags_save_string;
11952 uint32_t _flags_save_string = ndr->flags;
11953 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11954 if (r->driver_path) {
11955 uint32_t _relative_save_offset;
11956 _relative_save_offset = ndr->offset;
11957 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11958 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11959 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11960 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11962 ndr->offset = _relative_save_offset;
11964 ndr->flags = _flags_save_string;
11967 uint32_t _flags_save_string = ndr->flags;
11968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11969 if (r->data_file) {
11970 uint32_t _relative_save_offset;
11971 _relative_save_offset = ndr->offset;
11972 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11973 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11974 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11975 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11977 ndr->offset = _relative_save_offset;
11979 ndr->flags = _flags_save_string;
11982 uint32_t _flags_save_string = ndr->flags;
11983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11984 if (r->config_file) {
11985 uint32_t _relative_save_offset;
11986 _relative_save_offset = ndr->offset;
11987 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11988 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11989 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11990 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11992 ndr->offset = _relative_save_offset;
11994 ndr->flags = _flags_save_string;
11997 uint32_t _flags_save_string = ndr->flags;
11998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11999 if (r->help_file) {
12000 uint32_t _relative_save_offset;
12001 _relative_save_offset = ndr->offset;
12002 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12003 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12004 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12005 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12007 ndr->offset = _relative_save_offset;
12009 ndr->flags = _flags_save_string;
12012 uint32_t _flags_save_string_array = ndr->flags;
12013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12014 if (r->dependent_files) {
12015 uint32_t _relative_save_offset;
12016 _relative_save_offset = ndr->offset;
12017 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12018 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12019 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12020 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12022 ndr->offset = _relative_save_offset;
12024 ndr->flags = _flags_save_string_array;
12027 uint32_t _flags_save_string = ndr->flags;
12028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12029 if (r->monitor_name) {
12030 uint32_t _relative_save_offset;
12031 _relative_save_offset = ndr->offset;
12032 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12033 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12034 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12035 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12036 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12037 ndr->offset = _relative_save_offset;
12039 ndr->flags = _flags_save_string;
12042 uint32_t _flags_save_string = ndr->flags;
12043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12044 if (r->default_datatype) {
12045 uint32_t _relative_save_offset;
12046 _relative_save_offset = ndr->offset;
12047 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12048 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12049 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12050 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12051 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12052 ndr->offset = _relative_save_offset;
12054 ndr->flags = _flags_save_string;
12057 uint32_t _flags_save_string_array = ndr->flags;
12058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12059 if (r->previous_names) {
12060 uint32_t _relative_save_offset;
12061 _relative_save_offset = ndr->offset;
12062 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12063 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12064 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12065 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12067 ndr->offset = _relative_save_offset;
12069 ndr->flags = _flags_save_string_array;
12072 uint32_t _flags_save_string = ndr->flags;
12073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12074 if (r->manufacturer_name) {
12075 uint32_t _relative_save_offset;
12076 _relative_save_offset = ndr->offset;
12077 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12078 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12079 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12080 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12082 ndr->offset = _relative_save_offset;
12084 ndr->flags = _flags_save_string;
12087 uint32_t _flags_save_string = ndr->flags;
12088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12089 if (r->manufacturer_url) {
12090 uint32_t _relative_save_offset;
12091 _relative_save_offset = ndr->offset;
12092 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12093 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12094 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12095 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12097 ndr->offset = _relative_save_offset;
12099 ndr->flags = _flags_save_string;
12102 uint32_t _flags_save_string = ndr->flags;
12103 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12104 if (r->hardware_id) {
12105 uint32_t _relative_save_offset;
12106 _relative_save_offset = ndr->offset;
12107 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
12108 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
12109 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
12110 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
12111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
12112 ndr->offset = _relative_save_offset;
12114 ndr->flags = _flags_save_string;
12117 uint32_t _flags_save_string = ndr->flags;
12118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12120 uint32_t _relative_save_offset;
12121 _relative_save_offset = ndr->offset;
12122 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
12123 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
12124 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
12125 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
12126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
12127 ndr->offset = _relative_save_offset;
12129 ndr->flags = _flags_save_string;
12132 return NDR_ERR_SUCCESS;
12135 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
12137 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
12139 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12140 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12142 if (r->driver_name) {
12143 ndr_print_string(ndr, "driver_name", r->driver_name);
12146 ndr_print_ptr(ndr, "architecture", r->architecture);
12148 if (r->architecture) {
12149 ndr_print_string(ndr, "architecture", r->architecture);
12152 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12154 if (r->driver_path) {
12155 ndr_print_string(ndr, "driver_path", r->driver_path);
12158 ndr_print_ptr(ndr, "data_file", r->data_file);
12160 if (r->data_file) {
12161 ndr_print_string(ndr, "data_file", r->data_file);
12164 ndr_print_ptr(ndr, "config_file", r->config_file);
12166 if (r->config_file) {
12167 ndr_print_string(ndr, "config_file", r->config_file);
12170 ndr_print_ptr(ndr, "help_file", r->help_file);
12172 if (r->help_file) {
12173 ndr_print_string(ndr, "help_file", r->help_file);
12176 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12178 if (r->dependent_files) {
12179 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12182 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12184 if (r->monitor_name) {
12185 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12188 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12190 if (r->default_datatype) {
12191 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12194 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12196 if (r->previous_names) {
12197 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12200 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
12201 ndr_print_hyper(ndr, "driver_version", r->driver_version);
12202 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
12204 if (r->manufacturer_name) {
12205 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
12208 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
12210 if (r->manufacturer_url) {
12211 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
12214 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
12216 if (r->hardware_id) {
12217 ndr_print_string(ndr, "hardware_id", r->hardware_id);
12220 ndr_print_ptr(ndr, "provider", r->provider);
12223 ndr_print_string(ndr, "provider", r->provider);
12229 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
12231 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
12234 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
12236 if (ndr_flags & NDR_SCALARS) {
12237 NDR_CHECK(ndr_push_align(ndr, 8));
12238 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12240 uint32_t _flags_save_string = ndr->flags;
12241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12242 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12243 ndr->flags = _flags_save_string;
12246 uint32_t _flags_save_string = ndr->flags;
12247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12248 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12249 ndr->flags = _flags_save_string;
12252 uint32_t _flags_save_string = ndr->flags;
12253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12254 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12261 ndr->flags = _flags_save_string;
12264 uint32_t _flags_save_string = ndr->flags;
12265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12266 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12267 ndr->flags = _flags_save_string;
12270 uint32_t _flags_save_string = ndr->flags;
12271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12272 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12273 ndr->flags = _flags_save_string;
12276 uint32_t _flags_save_string = ndr->flags;
12277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12278 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12279 ndr->flags = _flags_save_string;
12282 uint32_t _flags_save_string = ndr->flags;
12283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12284 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12285 ndr->flags = _flags_save_string;
12288 uint32_t _flags_save_string_array = ndr->flags;
12289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12290 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12291 ndr->flags = _flags_save_string_array;
12294 uint32_t _flags_save_string_array = ndr->flags;
12295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12296 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12297 ndr->flags = _flags_save_string_array;
12299 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12300 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12302 uint32_t _flags_save_string = ndr->flags;
12303 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12304 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12305 ndr->flags = _flags_save_string;
12308 uint32_t _flags_save_string = ndr->flags;
12309 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12310 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
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_push_relative_ptr1(ndr, r->hardware_id));
12317 ndr->flags = _flags_save_string;
12320 uint32_t _flags_save_string = ndr->flags;
12321 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12322 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12323 ndr->flags = _flags_save_string;
12326 uint32_t _flags_save_string = ndr->flags;
12327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12328 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
12329 ndr->flags = _flags_save_string;
12332 uint32_t _flags_save_string = ndr->flags;
12333 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12334 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
12335 ndr->flags = _flags_save_string;
12338 uint32_t _flags_save_string_array = ndr->flags;
12339 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12340 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
12341 ndr->flags = _flags_save_string_array;
12344 uint32_t _flags_save_string = ndr->flags;
12345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12346 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
12347 ndr->flags = _flags_save_string;
12349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
12351 uint32_t _flags_save_string_array = ndr->flags;
12352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12353 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
12354 ndr->flags = _flags_save_string_array;
12356 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
12357 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
12359 if (ndr_flags & NDR_BUFFERS) {
12361 uint32_t _flags_save_string = ndr->flags;
12362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12363 if (r->driver_name) {
12364 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12365 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12367 ndr->flags = _flags_save_string;
12370 uint32_t _flags_save_string = ndr->flags;
12371 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12372 if (r->architecture) {
12373 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12374 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12376 ndr->flags = _flags_save_string;
12379 uint32_t _flags_save_string = ndr->flags;
12380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12381 if (r->driver_path) {
12382 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12383 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12385 ndr->flags = _flags_save_string;
12388 uint32_t _flags_save_string = ndr->flags;
12389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12390 if (r->data_file) {
12391 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12392 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12394 ndr->flags = _flags_save_string;
12397 uint32_t _flags_save_string = ndr->flags;
12398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12399 if (r->config_file) {
12400 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12401 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12403 ndr->flags = _flags_save_string;
12406 uint32_t _flags_save_string = ndr->flags;
12407 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12408 if (r->help_file) {
12409 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
12410 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12412 ndr->flags = _flags_save_string;
12415 uint32_t _flags_save_string = ndr->flags;
12416 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12417 if (r->monitor_name) {
12418 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12419 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12421 ndr->flags = _flags_save_string;
12424 uint32_t _flags_save_string = ndr->flags;
12425 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12426 if (r->default_datatype) {
12427 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
12428 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12430 ndr->flags = _flags_save_string;
12433 uint32_t _flags_save_string_array = ndr->flags;
12434 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12435 if (r->dependent_files) {
12436 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
12437 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12439 ndr->flags = _flags_save_string_array;
12442 uint32_t _flags_save_string_array = ndr->flags;
12443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12444 if (r->previous_names) {
12445 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
12446 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12448 ndr->flags = _flags_save_string_array;
12451 uint32_t _flags_save_string = ndr->flags;
12452 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12453 if (r->manufacturer_name) {
12454 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
12455 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12457 ndr->flags = _flags_save_string;
12460 uint32_t _flags_save_string = ndr->flags;
12461 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12462 if (r->manufacturer_url) {
12463 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
12464 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12466 ndr->flags = _flags_save_string;
12469 uint32_t _flags_save_string = ndr->flags;
12470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12471 if (r->hardware_id) {
12472 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
12473 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12475 ndr->flags = _flags_save_string;
12478 uint32_t _flags_save_string = ndr->flags;
12479 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12481 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
12482 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12484 ndr->flags = _flags_save_string;
12487 uint32_t _flags_save_string = ndr->flags;
12488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12489 if (r->print_processor) {
12490 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
12491 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
12493 ndr->flags = _flags_save_string;
12496 uint32_t _flags_save_string = ndr->flags;
12497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12498 if (r->vendor_setup) {
12499 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
12500 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
12502 ndr->flags = _flags_save_string;
12505 uint32_t _flags_save_string_array = ndr->flags;
12506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12507 if (r->color_profiles) {
12508 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
12509 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
12511 ndr->flags = _flags_save_string_array;
12514 uint32_t _flags_save_string = ndr->flags;
12515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12517 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
12518 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
12520 ndr->flags = _flags_save_string;
12523 uint32_t _flags_save_string_array = ndr->flags;
12524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12525 if (r->core_driver_dependencies) {
12526 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
12527 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
12529 ndr->flags = _flags_save_string_array;
12532 return NDR_ERR_SUCCESS;
12535 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
12537 uint32_t _ptr_driver_name;
12538 TALLOC_CTX *_mem_save_driver_name_0;
12539 uint32_t _ptr_architecture;
12540 TALLOC_CTX *_mem_save_architecture_0;
12541 uint32_t _ptr_driver_path;
12542 TALLOC_CTX *_mem_save_driver_path_0;
12543 uint32_t _ptr_data_file;
12544 TALLOC_CTX *_mem_save_data_file_0;
12545 uint32_t _ptr_config_file;
12546 TALLOC_CTX *_mem_save_config_file_0;
12547 uint32_t _ptr_help_file;
12548 TALLOC_CTX *_mem_save_help_file_0;
12549 uint32_t _ptr_monitor_name;
12550 TALLOC_CTX *_mem_save_monitor_name_0;
12551 uint32_t _ptr_default_datatype;
12552 TALLOC_CTX *_mem_save_default_datatype_0;
12553 uint32_t _ptr_dependent_files;
12554 TALLOC_CTX *_mem_save_dependent_files_0;
12555 uint32_t _ptr_previous_names;
12556 TALLOC_CTX *_mem_save_previous_names_0;
12557 uint32_t _ptr_manufacturer_name;
12558 TALLOC_CTX *_mem_save_manufacturer_name_0;
12559 uint32_t _ptr_manufacturer_url;
12560 TALLOC_CTX *_mem_save_manufacturer_url_0;
12561 uint32_t _ptr_hardware_id;
12562 TALLOC_CTX *_mem_save_hardware_id_0;
12563 uint32_t _ptr_provider;
12564 TALLOC_CTX *_mem_save_provider_0;
12565 uint32_t _ptr_print_processor;
12566 TALLOC_CTX *_mem_save_print_processor_0;
12567 uint32_t _ptr_vendor_setup;
12568 TALLOC_CTX *_mem_save_vendor_setup_0;
12569 uint32_t _ptr_color_profiles;
12570 TALLOC_CTX *_mem_save_color_profiles_0;
12571 uint32_t _ptr_inf_path;
12572 TALLOC_CTX *_mem_save_inf_path_0;
12573 uint32_t _ptr_core_driver_dependencies;
12574 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
12575 if (ndr_flags & NDR_SCALARS) {
12576 NDR_CHECK(ndr_pull_align(ndr, 8));
12577 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12579 uint32_t _flags_save_string = ndr->flags;
12580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12582 if (_ptr_driver_name) {
12583 NDR_PULL_ALLOC(ndr, r->driver_name);
12584 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12586 r->driver_name = NULL;
12588 ndr->flags = _flags_save_string;
12591 uint32_t _flags_save_string = ndr->flags;
12592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12593 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12594 if (_ptr_architecture) {
12595 NDR_PULL_ALLOC(ndr, r->architecture);
12596 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12598 r->architecture = NULL;
12600 ndr->flags = _flags_save_string;
12603 uint32_t _flags_save_string = ndr->flags;
12604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12605 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12606 if (_ptr_driver_path) {
12607 NDR_PULL_ALLOC(ndr, r->driver_path);
12608 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12610 r->driver_path = NULL;
12612 ndr->flags = _flags_save_string;
12615 uint32_t _flags_save_string = ndr->flags;
12616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12617 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12618 if (_ptr_data_file) {
12619 NDR_PULL_ALLOC(ndr, r->data_file);
12620 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12622 r->data_file = NULL;
12624 ndr->flags = _flags_save_string;
12627 uint32_t _flags_save_string = ndr->flags;
12628 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12629 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12630 if (_ptr_config_file) {
12631 NDR_PULL_ALLOC(ndr, r->config_file);
12632 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12634 r->config_file = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12642 if (_ptr_help_file) {
12643 NDR_PULL_ALLOC(ndr, r->help_file);
12644 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12646 r->help_file = NULL;
12648 ndr->flags = _flags_save_string;
12651 uint32_t _flags_save_string = ndr->flags;
12652 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12653 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12654 if (_ptr_monitor_name) {
12655 NDR_PULL_ALLOC(ndr, r->monitor_name);
12656 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12658 r->monitor_name = NULL;
12660 ndr->flags = _flags_save_string;
12663 uint32_t _flags_save_string = ndr->flags;
12664 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12665 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12666 if (_ptr_default_datatype) {
12667 NDR_PULL_ALLOC(ndr, r->default_datatype);
12668 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12670 r->default_datatype = NULL;
12672 ndr->flags = _flags_save_string;
12675 uint32_t _flags_save_string_array = ndr->flags;
12676 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12677 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12678 if (_ptr_dependent_files) {
12679 NDR_PULL_ALLOC(ndr, r->dependent_files);
12680 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12682 r->dependent_files = NULL;
12684 ndr->flags = _flags_save_string_array;
12687 uint32_t _flags_save_string_array = ndr->flags;
12688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12689 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12690 if (_ptr_previous_names) {
12691 NDR_PULL_ALLOC(ndr, r->previous_names);
12692 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12694 r->previous_names = NULL;
12696 ndr->flags = _flags_save_string_array;
12698 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12699 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12701 uint32_t _flags_save_string = ndr->flags;
12702 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12703 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12704 if (_ptr_manufacturer_name) {
12705 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12706 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12708 r->manufacturer_name = NULL;
12710 ndr->flags = _flags_save_string;
12713 uint32_t _flags_save_string = ndr->flags;
12714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12715 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12716 if (_ptr_manufacturer_url) {
12717 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12718 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12720 r->manufacturer_url = NULL;
12722 ndr->flags = _flags_save_string;
12725 uint32_t _flags_save_string = ndr->flags;
12726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12728 if (_ptr_hardware_id) {
12729 NDR_PULL_ALLOC(ndr, r->hardware_id);
12730 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12732 r->hardware_id = NULL;
12734 ndr->flags = _flags_save_string;
12737 uint32_t _flags_save_string = ndr->flags;
12738 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12739 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12740 if (_ptr_provider) {
12741 NDR_PULL_ALLOC(ndr, r->provider);
12742 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12744 r->provider = NULL;
12746 ndr->flags = _flags_save_string;
12749 uint32_t _flags_save_string = ndr->flags;
12750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12751 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
12752 if (_ptr_print_processor) {
12753 NDR_PULL_ALLOC(ndr, r->print_processor);
12754 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
12756 r->print_processor = NULL;
12758 ndr->flags = _flags_save_string;
12761 uint32_t _flags_save_string = ndr->flags;
12762 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12763 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
12764 if (_ptr_vendor_setup) {
12765 NDR_PULL_ALLOC(ndr, r->vendor_setup);
12766 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
12768 r->vendor_setup = NULL;
12770 ndr->flags = _flags_save_string;
12773 uint32_t _flags_save_string_array = ndr->flags;
12774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
12776 if (_ptr_color_profiles) {
12777 NDR_PULL_ALLOC(ndr, r->color_profiles);
12778 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
12780 r->color_profiles = NULL;
12782 ndr->flags = _flags_save_string_array;
12785 uint32_t _flags_save_string = ndr->flags;
12786 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12787 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
12788 if (_ptr_inf_path) {
12789 NDR_PULL_ALLOC(ndr, r->inf_path);
12790 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
12792 r->inf_path = NULL;
12794 ndr->flags = _flags_save_string;
12796 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
12798 uint32_t _flags_save_string_array = ndr->flags;
12799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
12801 if (_ptr_core_driver_dependencies) {
12802 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
12803 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
12805 r->core_driver_dependencies = NULL;
12807 ndr->flags = _flags_save_string_array;
12809 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
12810 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
12812 if (ndr_flags & NDR_BUFFERS) {
12814 uint32_t _flags_save_string = ndr->flags;
12815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12816 if (r->driver_name) {
12817 uint32_t _relative_save_offset;
12818 _relative_save_offset = ndr->offset;
12819 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12820 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12821 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12822 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12823 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12824 ndr->offset = _relative_save_offset;
12826 ndr->flags = _flags_save_string;
12829 uint32_t _flags_save_string = ndr->flags;
12830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12831 if (r->architecture) {
12832 uint32_t _relative_save_offset;
12833 _relative_save_offset = ndr->offset;
12834 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12835 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12836 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12837 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12838 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12839 ndr->offset = _relative_save_offset;
12841 ndr->flags = _flags_save_string;
12844 uint32_t _flags_save_string = ndr->flags;
12845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12846 if (r->driver_path) {
12847 uint32_t _relative_save_offset;
12848 _relative_save_offset = ndr->offset;
12849 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12850 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12851 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12852 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12853 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12854 ndr->offset = _relative_save_offset;
12856 ndr->flags = _flags_save_string;
12859 uint32_t _flags_save_string = ndr->flags;
12860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12861 if (r->data_file) {
12862 uint32_t _relative_save_offset;
12863 _relative_save_offset = ndr->offset;
12864 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12865 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12866 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12867 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12868 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12869 ndr->offset = _relative_save_offset;
12871 ndr->flags = _flags_save_string;
12874 uint32_t _flags_save_string = ndr->flags;
12875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12876 if (r->config_file) {
12877 uint32_t _relative_save_offset;
12878 _relative_save_offset = ndr->offset;
12879 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12880 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12881 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12882 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12884 ndr->offset = _relative_save_offset;
12886 ndr->flags = _flags_save_string;
12889 uint32_t _flags_save_string = ndr->flags;
12890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12891 if (r->help_file) {
12892 uint32_t _relative_save_offset;
12893 _relative_save_offset = ndr->offset;
12894 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12895 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12896 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12897 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12899 ndr->offset = _relative_save_offset;
12901 ndr->flags = _flags_save_string;
12904 uint32_t _flags_save_string = ndr->flags;
12905 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12906 if (r->monitor_name) {
12907 uint32_t _relative_save_offset;
12908 _relative_save_offset = ndr->offset;
12909 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12910 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12911 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12912 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12914 ndr->offset = _relative_save_offset;
12916 ndr->flags = _flags_save_string;
12919 uint32_t _flags_save_string = ndr->flags;
12920 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12921 if (r->default_datatype) {
12922 uint32_t _relative_save_offset;
12923 _relative_save_offset = ndr->offset;
12924 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12925 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12926 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12927 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12929 ndr->offset = _relative_save_offset;
12931 ndr->flags = _flags_save_string;
12934 uint32_t _flags_save_string_array = ndr->flags;
12935 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12936 if (r->dependent_files) {
12937 uint32_t _relative_save_offset;
12938 _relative_save_offset = ndr->offset;
12939 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12940 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12941 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12942 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12944 ndr->offset = _relative_save_offset;
12946 ndr->flags = _flags_save_string_array;
12949 uint32_t _flags_save_string_array = ndr->flags;
12950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12951 if (r->previous_names) {
12952 uint32_t _relative_save_offset;
12953 _relative_save_offset = ndr->offset;
12954 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12955 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12956 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12957 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12959 ndr->offset = _relative_save_offset;
12961 ndr->flags = _flags_save_string_array;
12964 uint32_t _flags_save_string = ndr->flags;
12965 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12966 if (r->manufacturer_name) {
12967 uint32_t _relative_save_offset;
12968 _relative_save_offset = ndr->offset;
12969 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12970 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12971 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12972 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12973 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12974 ndr->offset = _relative_save_offset;
12976 ndr->flags = _flags_save_string;
12979 uint32_t _flags_save_string = ndr->flags;
12980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12981 if (r->manufacturer_url) {
12982 uint32_t _relative_save_offset;
12983 _relative_save_offset = ndr->offset;
12984 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12985 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12986 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12987 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12989 ndr->offset = _relative_save_offset;
12991 ndr->flags = _flags_save_string;
12994 uint32_t _flags_save_string = ndr->flags;
12995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12996 if (r->hardware_id) {
12997 uint32_t _relative_save_offset;
12998 _relative_save_offset = ndr->offset;
12999 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13000 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13001 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13002 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13004 ndr->offset = _relative_save_offset;
13006 ndr->flags = _flags_save_string;
13009 uint32_t _flags_save_string = ndr->flags;
13010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13012 uint32_t _relative_save_offset;
13013 _relative_save_offset = ndr->offset;
13014 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13015 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13016 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13017 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13018 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13019 ndr->offset = _relative_save_offset;
13021 ndr->flags = _flags_save_string;
13024 uint32_t _flags_save_string = ndr->flags;
13025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13026 if (r->print_processor) {
13027 uint32_t _relative_save_offset;
13028 _relative_save_offset = ndr->offset;
13029 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
13030 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
13031 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
13032 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
13033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
13034 ndr->offset = _relative_save_offset;
13036 ndr->flags = _flags_save_string;
13039 uint32_t _flags_save_string = ndr->flags;
13040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13041 if (r->vendor_setup) {
13042 uint32_t _relative_save_offset;
13043 _relative_save_offset = ndr->offset;
13044 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
13045 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
13046 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
13047 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
13048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
13049 ndr->offset = _relative_save_offset;
13051 ndr->flags = _flags_save_string;
13054 uint32_t _flags_save_string_array = ndr->flags;
13055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13056 if (r->color_profiles) {
13057 uint32_t _relative_save_offset;
13058 _relative_save_offset = ndr->offset;
13059 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
13060 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
13061 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
13062 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
13063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
13064 ndr->offset = _relative_save_offset;
13066 ndr->flags = _flags_save_string_array;
13069 uint32_t _flags_save_string = ndr->flags;
13070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13072 uint32_t _relative_save_offset;
13073 _relative_save_offset = ndr->offset;
13074 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
13075 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13076 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
13077 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
13078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
13079 ndr->offset = _relative_save_offset;
13081 ndr->flags = _flags_save_string;
13084 uint32_t _flags_save_string_array = ndr->flags;
13085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13086 if (r->core_driver_dependencies) {
13087 uint32_t _relative_save_offset;
13088 _relative_save_offset = ndr->offset;
13089 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
13090 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13091 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
13092 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
13093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
13094 ndr->offset = _relative_save_offset;
13096 ndr->flags = _flags_save_string_array;
13099 return NDR_ERR_SUCCESS;
13102 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
13104 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
13106 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13107 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13109 if (r->driver_name) {
13110 ndr_print_string(ndr, "driver_name", r->driver_name);
13113 ndr_print_ptr(ndr, "architecture", r->architecture);
13115 if (r->architecture) {
13116 ndr_print_string(ndr, "architecture", r->architecture);
13119 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13121 if (r->driver_path) {
13122 ndr_print_string(ndr, "driver_path", r->driver_path);
13125 ndr_print_ptr(ndr, "data_file", r->data_file);
13127 if (r->data_file) {
13128 ndr_print_string(ndr, "data_file", r->data_file);
13131 ndr_print_ptr(ndr, "config_file", r->config_file);
13133 if (r->config_file) {
13134 ndr_print_string(ndr, "config_file", r->config_file);
13137 ndr_print_ptr(ndr, "help_file", r->help_file);
13139 if (r->help_file) {
13140 ndr_print_string(ndr, "help_file", r->help_file);
13143 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13145 if (r->monitor_name) {
13146 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13149 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13151 if (r->default_datatype) {
13152 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13155 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13157 if (r->dependent_files) {
13158 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13161 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13163 if (r->previous_names) {
13164 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13167 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13168 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13169 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13171 if (r->manufacturer_name) {
13172 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13175 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13177 if (r->manufacturer_url) {
13178 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13181 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13183 if (r->hardware_id) {
13184 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13187 ndr_print_ptr(ndr, "provider", r->provider);
13190 ndr_print_string(ndr, "provider", r->provider);
13193 ndr_print_ptr(ndr, "print_processor", r->print_processor);
13195 if (r->print_processor) {
13196 ndr_print_string(ndr, "print_processor", r->print_processor);
13199 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
13201 if (r->vendor_setup) {
13202 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
13205 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
13207 if (r->color_profiles) {
13208 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
13211 ndr_print_ptr(ndr, "inf_path", r->inf_path);
13214 ndr_print_string(ndr, "inf_path", r->inf_path);
13217 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
13218 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13220 if (r->core_driver_dependencies) {
13221 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13224 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
13225 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
13229 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
13231 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
13234 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
13236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13237 return NDR_ERR_SUCCESS;
13240 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
13243 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13245 return NDR_ERR_SUCCESS;
13248 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
13250 const char *val = NULL;
13253 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13254 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13255 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13256 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13257 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13259 ndr_print_enum(ndr, name, "ENUM", val, r);
13262 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
13264 if (ndr_flags & NDR_SCALARS) {
13265 NDR_CHECK(ndr_push_align(ndr, 4));
13267 uint32_t _flags_save_string = ndr->flags;
13268 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13269 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
13270 ndr->flags = _flags_save_string;
13272 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
13273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
13275 if (ndr_flags & NDR_BUFFERS) {
13277 uint32_t _flags_save_string = ndr->flags;
13278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13279 if (r->file_name) {
13280 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
13281 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
13283 ndr->flags = _flags_save_string;
13286 return NDR_ERR_SUCCESS;
13289 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
13291 uint32_t _ptr_file_name;
13292 TALLOC_CTX *_mem_save_file_name_0;
13293 if (ndr_flags & NDR_SCALARS) {
13294 NDR_CHECK(ndr_pull_align(ndr, 4));
13296 uint32_t _flags_save_string = ndr->flags;
13297 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13298 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
13299 if (_ptr_file_name) {
13300 NDR_PULL_ALLOC(ndr, r->file_name);
13301 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
13303 r->file_name = NULL;
13305 ndr->flags = _flags_save_string;
13307 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
13308 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
13310 if (ndr_flags & NDR_BUFFERS) {
13312 uint32_t _flags_save_string = ndr->flags;
13313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13314 if (r->file_name) {
13315 uint32_t _relative_save_offset;
13316 _relative_save_offset = ndr->offset;
13317 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
13318 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13319 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
13320 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
13321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
13322 ndr->offset = _relative_save_offset;
13324 ndr->flags = _flags_save_string;
13327 return NDR_ERR_SUCCESS;
13330 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
13332 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
13334 ndr_print_ptr(ndr, "file_name", r->file_name);
13336 if (r->file_name) {
13337 ndr_print_string(ndr, "file_name", r->file_name);
13340 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
13341 ndr_print_uint32(ndr, "file_version", r->file_version);
13345 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
13347 uint32_t cntr_file_info_1;
13348 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
13350 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13351 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13353 if (r->driver_name) {
13354 ndr_print_string(ndr, "driver_name", r->driver_name);
13357 ndr_print_ptr(ndr, "architecture", r->architecture);
13359 if (r->architecture) {
13360 ndr_print_string(ndr, "architecture", r->architecture);
13363 ndr_print_ptr(ndr, "file_info", r->file_info);
13365 if (r->file_info) {
13366 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
13368 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
13370 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
13371 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
13378 ndr_print_uint32(ndr, "file_count", r->file_count);
13379 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13381 if (r->monitor_name) {
13382 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13385 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13387 if (r->default_datatype) {
13388 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13391 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13393 if (r->previous_names) {
13394 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13397 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13398 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13399 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13401 if (r->manufacturer_name) {
13402 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13405 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13407 if (r->manufacturer_url) {
13408 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13411 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13413 if (r->hardware_id) {
13414 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13417 ndr_print_ptr(ndr, "provider", r->provider);
13420 ndr_print_string(ndr, "provider", r->provider);
13426 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
13428 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
13431 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
13433 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13434 if (ndr_flags & NDR_SCALARS) {
13435 int level = ndr_push_get_switch_value(ndr, r);
13438 NDR_CHECK(ndr_push_align(ndr, 4));
13439 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13440 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13444 NDR_CHECK(ndr_push_align(ndr, 4));
13445 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13446 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13450 NDR_CHECK(ndr_push_align(ndr, 4));
13451 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13452 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13456 NDR_CHECK(ndr_push_align(ndr, 4));
13457 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13458 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13462 NDR_CHECK(ndr_push_align(ndr, 4));
13463 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13464 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13468 NDR_CHECK(ndr_push_align(ndr, 8));
13469 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13470 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13474 NDR_CHECK(ndr_push_align(ndr, 8));
13475 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13476 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13480 NDR_CHECK(ndr_push_align(ndr, 8));
13481 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13482 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
13490 if (ndr_flags & NDR_BUFFERS) {
13491 int level = ndr_push_get_switch_value(ndr, r);
13492 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13495 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
13499 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
13503 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
13507 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
13511 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
13515 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
13519 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
13523 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
13531 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13532 return NDR_ERR_SUCCESS;
13535 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
13537 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13539 level = ndr_pull_get_switch_value(ndr, r);
13540 if (ndr_flags & NDR_SCALARS) {
13543 NDR_CHECK(ndr_pull_align(ndr, 4));
13544 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13545 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13549 NDR_CHECK(ndr_pull_align(ndr, 4));
13550 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13551 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13555 NDR_CHECK(ndr_pull_align(ndr, 4));
13556 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13557 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13561 NDR_CHECK(ndr_pull_align(ndr, 4));
13562 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13563 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13567 NDR_CHECK(ndr_pull_align(ndr, 4));
13568 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13569 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13573 NDR_CHECK(ndr_pull_align(ndr, 8));
13574 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13575 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13579 NDR_CHECK(ndr_pull_align(ndr, 8));
13580 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13581 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13585 NDR_CHECK(ndr_pull_align(ndr, 8));
13586 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13587 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
13595 if (ndr_flags & NDR_BUFFERS) {
13596 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13599 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
13603 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
13607 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
13611 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
13615 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
13619 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
13623 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
13627 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
13635 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13636 return NDR_ERR_SUCCESS;
13639 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
13642 level = ndr_print_get_switch_value(ndr, r);
13643 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
13646 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
13650 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
13654 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
13658 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
13662 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
13666 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
13670 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
13674 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
13683 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
13685 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
13688 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
13690 if (ndr_flags & NDR_SCALARS) {
13691 NDR_CHECK(ndr_push_align(ndr, 4));
13693 uint32_t _flags_save_string = ndr->flags;
13694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13695 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
13696 ndr->flags = _flags_save_string;
13699 if (ndr_flags & NDR_BUFFERS) {
13701 return NDR_ERR_SUCCESS;
13704 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
13706 if (ndr_flags & NDR_SCALARS) {
13707 NDR_CHECK(ndr_pull_align(ndr, 4));
13709 uint32_t _flags_save_string = ndr->flags;
13710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13711 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
13712 ndr->flags = _flags_save_string;
13715 if (ndr_flags & NDR_BUFFERS) {
13717 return NDR_ERR_SUCCESS;
13720 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
13722 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
13724 ndr_print_string(ndr, "directory_name", r->directory_name);
13728 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
13730 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
13733 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
13735 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13736 if (ndr_flags & NDR_SCALARS) {
13737 int level = ndr_push_get_switch_value(ndr, r);
13740 NDR_CHECK(ndr_push_align(ndr, 4));
13741 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13742 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13746 NDR_CHECK(ndr_push_align(ndr, 4));
13747 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13748 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13753 if (ndr_flags & NDR_BUFFERS) {
13754 int level = ndr_push_get_switch_value(ndr, r);
13755 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13765 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13766 return NDR_ERR_SUCCESS;
13769 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
13771 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13773 level = ndr_pull_get_switch_value(ndr, r);
13774 if (ndr_flags & NDR_SCALARS) {
13777 NDR_CHECK(ndr_pull_align(ndr, 4));
13778 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13779 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13783 NDR_CHECK(ndr_pull_align(ndr, 4));
13784 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13785 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13790 if (ndr_flags & NDR_BUFFERS) {
13791 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13801 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13802 return NDR_ERR_SUCCESS;
13805 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
13808 level = ndr_print_get_switch_value(ndr, r);
13809 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
13812 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
13816 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
13822 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
13824 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
13827 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
13829 if (ndr_flags & NDR_SCALARS) {
13830 NDR_CHECK(ndr_push_align(ndr, 4));
13832 uint32_t _flags_save_string = ndr->flags;
13833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13834 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
13835 ndr->flags = _flags_save_string;
13838 if (ndr_flags & NDR_BUFFERS) {
13840 uint32_t _flags_save_string = ndr->flags;
13841 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13842 if (r->print_processor_name) {
13843 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
13844 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
13846 ndr->flags = _flags_save_string;
13849 return NDR_ERR_SUCCESS;
13852 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
13854 uint32_t _ptr_print_processor_name;
13855 TALLOC_CTX *_mem_save_print_processor_name_0;
13856 if (ndr_flags & NDR_SCALARS) {
13857 NDR_CHECK(ndr_pull_align(ndr, 4));
13859 uint32_t _flags_save_string = ndr->flags;
13860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
13862 if (_ptr_print_processor_name) {
13863 NDR_PULL_ALLOC(ndr, r->print_processor_name);
13864 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
13866 r->print_processor_name = NULL;
13868 ndr->flags = _flags_save_string;
13871 if (ndr_flags & NDR_BUFFERS) {
13873 uint32_t _flags_save_string = ndr->flags;
13874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13875 if (r->print_processor_name) {
13876 uint32_t _relative_save_offset;
13877 _relative_save_offset = ndr->offset;
13878 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
13879 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13880 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
13881 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
13882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
13883 ndr->offset = _relative_save_offset;
13885 ndr->flags = _flags_save_string;
13888 return NDR_ERR_SUCCESS;
13891 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
13893 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
13895 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
13897 if (r->print_processor_name) {
13898 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
13904 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
13906 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
13909 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
13911 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13912 if (ndr_flags & NDR_SCALARS) {
13913 int level = ndr_push_get_switch_value(ndr, r);
13916 NDR_CHECK(ndr_push_align(ndr, 4));
13917 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13918 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
13926 if (ndr_flags & NDR_BUFFERS) {
13927 int level = ndr_push_get_switch_value(ndr, r);
13928 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13931 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
13939 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13940 return NDR_ERR_SUCCESS;
13943 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
13945 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13947 level = ndr_pull_get_switch_value(ndr, r);
13948 if (ndr_flags & NDR_SCALARS) {
13951 NDR_CHECK(ndr_pull_align(ndr, 4));
13952 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13953 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
13961 if (ndr_flags & NDR_BUFFERS) {
13962 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13965 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
13973 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13974 return NDR_ERR_SUCCESS;
13977 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
13980 level = ndr_print_get_switch_value(ndr, r);
13981 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
13984 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
13993 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
13995 if (ndr_flags & NDR_SCALARS) {
13996 NDR_CHECK(ndr_push_align(ndr, 4));
13998 uint32_t _flags_save_string = ndr->flags;
13999 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14000 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14001 ndr->flags = _flags_save_string;
14004 if (ndr_flags & NDR_BUFFERS) {
14006 return NDR_ERR_SUCCESS;
14009 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
14011 if (ndr_flags & NDR_SCALARS) {
14012 NDR_CHECK(ndr_pull_align(ndr, 4));
14014 uint32_t _flags_save_string = ndr->flags;
14015 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14016 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14017 ndr->flags = _flags_save_string;
14020 if (ndr_flags & NDR_BUFFERS) {
14022 return NDR_ERR_SUCCESS;
14025 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14027 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
14029 ndr_print_string(ndr, "directory_name", r->directory_name);
14033 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14035 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
14038 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
14040 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14041 if (ndr_flags & NDR_SCALARS) {
14042 int level = ndr_push_get_switch_value(ndr, r);
14045 NDR_CHECK(ndr_push_align(ndr, 4));
14046 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14047 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14051 NDR_CHECK(ndr_push_align(ndr, 4));
14052 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14053 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14058 if (ndr_flags & NDR_BUFFERS) {
14059 int level = ndr_push_get_switch_value(ndr, r);
14060 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14070 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14071 return NDR_ERR_SUCCESS;
14074 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
14076 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14078 level = ndr_pull_get_switch_value(ndr, r);
14079 if (ndr_flags & NDR_SCALARS) {
14082 NDR_CHECK(ndr_pull_align(ndr, 4));
14083 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14084 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14088 NDR_CHECK(ndr_pull_align(ndr, 4));
14089 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14090 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14095 if (ndr_flags & NDR_BUFFERS) {
14096 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14106 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14107 return NDR_ERR_SUCCESS;
14110 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
14113 level = ndr_print_get_switch_value(ndr, r);
14114 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
14117 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14121 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14127 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14129 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
14132 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
14134 if (ndr_flags & NDR_SCALARS) {
14135 NDR_CHECK(ndr_push_align(ndr, 4));
14136 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
14137 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
14138 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
14140 if (ndr_flags & NDR_BUFFERS) {
14141 if (r->document_name) {
14142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14145 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14147 if (r->output_file) {
14148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14151 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14155 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14157 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14160 return NDR_ERR_SUCCESS;
14163 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
14165 uint32_t _ptr_document_name;
14166 TALLOC_CTX *_mem_save_document_name_0;
14167 uint32_t _ptr_output_file;
14168 TALLOC_CTX *_mem_save_output_file_0;
14169 uint32_t _ptr_datatype;
14170 TALLOC_CTX *_mem_save_datatype_0;
14171 if (ndr_flags & NDR_SCALARS) {
14172 NDR_CHECK(ndr_pull_align(ndr, 4));
14173 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
14174 if (_ptr_document_name) {
14175 NDR_PULL_ALLOC(ndr, r->document_name);
14177 r->document_name = NULL;
14179 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
14180 if (_ptr_output_file) {
14181 NDR_PULL_ALLOC(ndr, r->output_file);
14183 r->output_file = NULL;
14185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14186 if (_ptr_datatype) {
14187 NDR_PULL_ALLOC(ndr, r->datatype);
14189 r->datatype = NULL;
14192 if (ndr_flags & NDR_BUFFERS) {
14193 if (r->document_name) {
14194 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14195 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
14196 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
14197 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
14198 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
14199 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));
14201 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
14202 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
14203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
14205 if (r->output_file) {
14206 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14207 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
14208 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
14209 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
14210 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
14211 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));
14213 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
14214 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
14215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
14218 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14219 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
14220 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
14221 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
14222 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
14223 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));
14225 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
14226 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
14227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14230 return NDR_ERR_SUCCESS;
14233 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
14235 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
14237 ndr_print_ptr(ndr, "document_name", r->document_name);
14239 if (r->document_name) {
14240 ndr_print_string(ndr, "document_name", r->document_name);
14243 ndr_print_ptr(ndr, "output_file", r->output_file);
14245 if (r->output_file) {
14246 ndr_print_string(ndr, "output_file", r->output_file);
14249 ndr_print_ptr(ndr, "datatype", r->datatype);
14252 ndr_print_string(ndr, "datatype", r->datatype);
14258 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
14260 if (ndr_flags & NDR_SCALARS) {
14261 int level = ndr_push_get_switch_value(ndr, r);
14262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14265 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
14279 if (ndr_flags & NDR_BUFFERS) {
14280 int level = ndr_push_get_switch_value(ndr, r);
14284 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14299 return NDR_ERR_SUCCESS;
14302 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
14306 TALLOC_CTX *_mem_save_info1_0;
14307 level = ndr_pull_get_switch_value(ndr, r);
14308 if (ndr_flags & NDR_SCALARS) {
14309 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14310 if (_level != level) {
14311 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14315 uint32_t _ptr_info1;
14316 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
14318 NDR_PULL_ALLOC(ndr, r->info1);
14335 if (ndr_flags & NDR_BUFFERS) {
14339 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14340 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
14341 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
14357 return NDR_ERR_SUCCESS;
14360 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
14363 level = ndr_print_get_switch_value(ndr, r);
14364 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
14367 ndr_print_ptr(ndr, "info1", r->info1);
14370 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
14387 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
14389 if (ndr_flags & NDR_SCALARS) {
14390 NDR_CHECK(ndr_push_align(ndr, 4));
14391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
14392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14397 uint32_t _flags_save_string = ndr->flags;
14398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14400 struct ndr_push *_ndr_extra_string;
14401 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14402 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14403 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14405 ndr->flags = _flags_save_string;
14408 if (ndr_flags & NDR_BUFFERS) {
14410 return NDR_ERR_SUCCESS;
14413 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
14415 if (ndr_flags & NDR_SCALARS) {
14416 NDR_CHECK(ndr_pull_align(ndr, 4));
14417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
14423 uint32_t _flags_save_string = ndr->flags;
14424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14426 struct ndr_pull *_ndr_extra_string;
14427 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14428 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14429 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14431 ndr->flags = _flags_save_string;
14434 if (ndr_flags & NDR_BUFFERS) {
14436 return NDR_ERR_SUCCESS;
14439 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
14441 ndr_print_struct(ndr, name, "spoolss_OSVersion");
14443 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);
14444 ndr_print_uint32(ndr, "major", r->major);
14445 ndr_print_uint32(ndr, "minor", r->minor);
14446 ndr_print_uint32(ndr, "build", r->build);
14447 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
14448 ndr_print_string(ndr, "extra_string", r->extra_string);
14452 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
14454 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
14457 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
14459 if (ndr_flags & NDR_SCALARS) {
14460 NDR_CHECK(ndr_push_align(ndr, 4));
14461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
14462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14467 uint32_t _flags_save_string = ndr->flags;
14468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14470 struct ndr_push *_ndr_extra_string;
14471 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14472 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14473 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14475 ndr->flags = _flags_save_string;
14477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
14478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
14480 if (ndr_flags & NDR_BUFFERS) {
14482 return NDR_ERR_SUCCESS;
14485 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
14487 if (ndr_flags & NDR_SCALARS) {
14488 NDR_CHECK(ndr_pull_align(ndr, 4));
14489 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14491 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
14495 uint32_t _flags_save_string = ndr->flags;
14496 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14498 struct ndr_pull *_ndr_extra_string;
14499 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14500 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14501 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14503 ndr->flags = _flags_save_string;
14505 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
14506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
14508 if (ndr_flags & NDR_BUFFERS) {
14510 return NDR_ERR_SUCCESS;
14513 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
14515 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
14517 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);
14518 ndr_print_uint32(ndr, "major", r->major);
14519 ndr_print_uint32(ndr, "minor", r->minor);
14520 ndr_print_uint32(ndr, "build", r->build);
14521 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
14522 ndr_print_string(ndr, "extra_string", r->extra_string);
14523 ndr_print_uint32(ndr, "unknown2", r->unknown2);
14524 ndr_print_uint32(ndr, "unknown3", r->unknown3);
14528 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
14530 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
14533 static enum ndr_err_code ndr_push_spoolss_PrinterDataType(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterDataType r)
14535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14536 return NDR_ERR_SUCCESS;
14539 static enum ndr_err_code ndr_pull_spoolss_PrinterDataType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterDataType *r)
14542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14544 return NDR_ERR_SUCCESS;
14547 _PUBLIC_ void ndr_print_spoolss_PrinterDataType(struct ndr_print *ndr, const char *name, enum spoolss_PrinterDataType r)
14549 const char *val = NULL;
14552 case SPOOLSS_PRINTER_DATA_TYPE_NULL: val = "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
14553 case SPOOLSS_PRINTER_DATA_TYPE_STRING: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
14554 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: val = "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
14555 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: val = "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
14556 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
14558 ndr_print_enum(ndr, name, "ENUM", val, r);
14561 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
14563 if (ndr_flags & NDR_SCALARS) {
14564 int level = ndr_push_get_switch_value(ndr, r);
14566 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
14569 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
14571 uint32_t _flags_save_string = ndr->flags;
14572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14573 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
14574 ndr->flags = _flags_save_string;
14578 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
14580 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14582 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
14583 ndr->flags = _flags_save_DATA_BLOB;
14587 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
14588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
14591 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
14593 uint32_t _flags_save_string_array = ndr->flags;
14594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14595 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
14596 ndr->flags = _flags_save_string_array;
14602 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14604 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
14605 ndr->flags = _flags_save_DATA_BLOB;
14611 if (ndr_flags & NDR_BUFFERS) {
14612 int level = ndr_push_get_switch_value(ndr, r);
14614 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
14617 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
14620 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
14623 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
14626 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
14634 return NDR_ERR_SUCCESS;
14637 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
14640 level = ndr_pull_get_switch_value(ndr, r);
14641 if (ndr_flags & NDR_SCALARS) {
14643 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
14646 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
14648 uint32_t _flags_save_string = ndr->flags;
14649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14650 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
14651 ndr->flags = _flags_save_string;
14655 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
14657 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14658 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14659 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
14660 ndr->flags = _flags_save_DATA_BLOB;
14664 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
14665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
14668 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
14670 uint32_t _flags_save_string_array = ndr->flags;
14671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14672 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
14673 ndr->flags = _flags_save_string_array;
14679 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14681 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
14682 ndr->flags = _flags_save_DATA_BLOB;
14688 if (ndr_flags & NDR_BUFFERS) {
14690 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
14693 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
14696 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
14699 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
14702 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
14710 return NDR_ERR_SUCCESS;
14713 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
14716 level = ndr_print_get_switch_value(ndr, r);
14717 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
14719 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
14722 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
14723 ndr_print_string(ndr, "string", r->string);
14726 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
14727 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
14730 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
14731 ndr_print_uint32(ndr, "value", r->value);
14734 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
14735 ndr_print_string_array(ndr, "string_array", r->string_array);
14739 ndr_print_DATA_BLOB(ndr, "data", r->data);
14745 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14747 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
14750 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
14752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14753 return NDR_ERR_SUCCESS;
14756 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
14759 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14761 return NDR_ERR_SUCCESS;
14764 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
14766 const char *val = NULL;
14769 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
14770 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
14771 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
14773 ndr_print_enum(ndr, name, "ENUM", val, r);
14776 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
14778 if (ndr_flags & NDR_SCALARS) {
14779 NDR_CHECK(ndr_push_align(ndr, 4));
14780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
14781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
14783 if (ndr_flags & NDR_BUFFERS) {
14785 return NDR_ERR_SUCCESS;
14788 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
14790 if (ndr_flags & NDR_SCALARS) {
14791 NDR_CHECK(ndr_pull_align(ndr, 4));
14792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
14793 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
14795 if (ndr_flags & NDR_BUFFERS) {
14797 return NDR_ERR_SUCCESS;
14800 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
14802 ndr_print_struct(ndr, name, "spoolss_FormSize");
14804 ndr_print_uint32(ndr, "width", r->width);
14805 ndr_print_uint32(ndr, "height", r->height);
14809 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
14811 if (ndr_flags & NDR_SCALARS) {
14812 NDR_CHECK(ndr_push_align(ndr, 4));
14813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
14814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
14815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
14816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
14818 if (ndr_flags & NDR_BUFFERS) {
14820 return NDR_ERR_SUCCESS;
14823 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
14825 if (ndr_flags & NDR_SCALARS) {
14826 NDR_CHECK(ndr_pull_align(ndr, 4));
14827 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
14828 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
14829 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
14830 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
14832 if (ndr_flags & NDR_BUFFERS) {
14834 return NDR_ERR_SUCCESS;
14837 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
14839 ndr_print_struct(ndr, name, "spoolss_FormArea");
14841 ndr_print_uint32(ndr, "left", r->left);
14842 ndr_print_uint32(ndr, "top", r->top);
14843 ndr_print_uint32(ndr, "right", r->right);
14844 ndr_print_uint32(ndr, "bottom", r->bottom);
14848 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
14850 if (ndr_flags & NDR_SCALARS) {
14851 NDR_CHECK(ndr_push_align(ndr, 4));
14852 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
14854 uint32_t _flags_save_string = ndr->flags;
14855 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14856 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
14857 ndr->flags = _flags_save_string;
14859 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14860 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14862 if (ndr_flags & NDR_BUFFERS) {
14864 uint32_t _flags_save_string = ndr->flags;
14865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14866 if (r->form_name) {
14867 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
14868 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
14870 ndr->flags = _flags_save_string;
14873 return NDR_ERR_SUCCESS;
14876 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
14878 uint32_t _ptr_form_name;
14879 TALLOC_CTX *_mem_save_form_name_0;
14880 if (ndr_flags & NDR_SCALARS) {
14881 NDR_CHECK(ndr_pull_align(ndr, 4));
14882 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
14884 uint32_t _flags_save_string = ndr->flags;
14885 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
14887 if (_ptr_form_name) {
14888 NDR_PULL_ALLOC(ndr, r->form_name);
14889 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
14891 r->form_name = NULL;
14893 ndr->flags = _flags_save_string;
14895 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14896 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14898 if (ndr_flags & NDR_BUFFERS) {
14900 uint32_t _flags_save_string = ndr->flags;
14901 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14902 if (r->form_name) {
14903 uint32_t _relative_save_offset;
14904 _relative_save_offset = ndr->offset;
14905 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
14906 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14907 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
14908 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
14909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
14910 ndr->offset = _relative_save_offset;
14912 ndr->flags = _flags_save_string;
14915 return NDR_ERR_SUCCESS;
14918 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
14920 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
14922 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
14923 ndr_print_ptr(ndr, "form_name", r->form_name);
14925 if (r->form_name) {
14926 ndr_print_string(ndr, "form_name", r->form_name);
14929 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
14930 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
14934 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14936 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
14939 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14941 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14942 return NDR_ERR_SUCCESS;
14945 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14948 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14950 return NDR_ERR_SUCCESS;
14953 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
14955 ndr_print_uint32(ndr, name, r);
14957 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
14958 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
14959 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
14963 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
14965 if (ndr_flags & NDR_SCALARS) {
14966 NDR_CHECK(ndr_push_align(ndr, 4));
14967 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
14969 uint32_t _flags_save_string = ndr->flags;
14970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14971 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
14972 ndr->flags = _flags_save_string;
14974 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14975 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14977 uint32_t _flags_save_string = ndr->flags;
14978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
14979 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
14980 ndr->flags = _flags_save_string;
14982 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
14984 uint32_t _flags_save_string = ndr->flags;
14985 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14986 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
14987 ndr->flags = _flags_save_string;
14989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
14991 uint32_t _flags_save_string = ndr->flags;
14992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14993 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
14994 ndr->flags = _flags_save_string;
14996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
14998 if (ndr_flags & NDR_BUFFERS) {
15000 uint32_t _flags_save_string = ndr->flags;
15001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15002 if (r->form_name) {
15003 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15004 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15006 ndr->flags = _flags_save_string;
15009 uint32_t _flags_save_string = ndr->flags;
15010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15012 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
15013 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
15015 ndr->flags = _flags_save_string;
15018 uint32_t _flags_save_string = ndr->flags;
15019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15021 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
15022 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
15024 ndr->flags = _flags_save_string;
15027 uint32_t _flags_save_string = ndr->flags;
15028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15029 if (r->display_name) {
15030 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
15031 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
15033 ndr->flags = _flags_save_string;
15036 return NDR_ERR_SUCCESS;
15039 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
15041 uint32_t _ptr_form_name;
15042 TALLOC_CTX *_mem_save_form_name_0;
15043 uint32_t _ptr_keyword;
15044 TALLOC_CTX *_mem_save_keyword_0;
15045 uint32_t _ptr_mui_dll;
15046 TALLOC_CTX *_mem_save_mui_dll_0;
15047 uint32_t _ptr_display_name;
15048 TALLOC_CTX *_mem_save_display_name_0;
15049 if (ndr_flags & NDR_SCALARS) {
15050 NDR_CHECK(ndr_pull_align(ndr, 4));
15051 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15053 uint32_t _flags_save_string = ndr->flags;
15054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15055 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15056 if (_ptr_form_name) {
15057 NDR_PULL_ALLOC(ndr, r->form_name);
15058 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15060 r->form_name = NULL;
15062 ndr->flags = _flags_save_string;
15064 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15065 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15067 uint32_t _flags_save_string = ndr->flags;
15068 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15069 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15070 if (_ptr_keyword) {
15071 NDR_PULL_ALLOC(ndr, r->keyword);
15072 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
15076 ndr->flags = _flags_save_string;
15078 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15080 uint32_t _flags_save_string = ndr->flags;
15081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15082 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15083 if (_ptr_mui_dll) {
15084 NDR_PULL_ALLOC(ndr, r->mui_dll);
15085 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
15089 ndr->flags = _flags_save_string;
15091 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15093 uint32_t _flags_save_string = ndr->flags;
15094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15095 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15096 if (_ptr_display_name) {
15097 NDR_PULL_ALLOC(ndr, r->display_name);
15098 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
15100 r->display_name = NULL;
15102 ndr->flags = _flags_save_string;
15104 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15106 if (ndr_flags & NDR_BUFFERS) {
15108 uint32_t _flags_save_string = ndr->flags;
15109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15110 if (r->form_name) {
15111 uint32_t _relative_save_offset;
15112 _relative_save_offset = ndr->offset;
15113 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15114 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15115 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15116 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15118 ndr->offset = _relative_save_offset;
15120 ndr->flags = _flags_save_string;
15123 uint32_t _flags_save_string = ndr->flags;
15124 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15126 uint32_t _relative_save_offset;
15127 _relative_save_offset = ndr->offset;
15128 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
15129 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15130 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15131 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
15132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15133 ndr->offset = _relative_save_offset;
15135 ndr->flags = _flags_save_string;
15138 uint32_t _flags_save_string = ndr->flags;
15139 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15141 uint32_t _relative_save_offset;
15142 _relative_save_offset = ndr->offset;
15143 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
15144 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15145 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15146 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
15147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15148 ndr->offset = _relative_save_offset;
15150 ndr->flags = _flags_save_string;
15153 uint32_t _flags_save_string = ndr->flags;
15154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15155 if (r->display_name) {
15156 uint32_t _relative_save_offset;
15157 _relative_save_offset = ndr->offset;
15158 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
15159 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15160 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15161 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
15162 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15163 ndr->offset = _relative_save_offset;
15165 ndr->flags = _flags_save_string;
15168 return NDR_ERR_SUCCESS;
15171 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
15173 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
15175 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15176 ndr_print_ptr(ndr, "form_name", r->form_name);
15178 if (r->form_name) {
15179 ndr_print_string(ndr, "form_name", r->form_name);
15182 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15183 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15184 ndr_print_ptr(ndr, "keyword", r->keyword);
15187 ndr_print_string(ndr, "keyword", r->keyword);
15190 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15191 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15194 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15197 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15198 ndr_print_ptr(ndr, "display_name", r->display_name);
15200 if (r->display_name) {
15201 ndr_print_string(ndr, "display_name", r->display_name);
15204 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15208 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
15210 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
15213 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
15215 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15216 if (ndr_flags & NDR_SCALARS) {
15217 int level = ndr_push_get_switch_value(ndr, r);
15220 NDR_CHECK(ndr_push_align(ndr, 4));
15221 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15222 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15226 NDR_CHECK(ndr_push_align(ndr, 4));
15227 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15228 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15236 if (ndr_flags & NDR_BUFFERS) {
15237 int level = ndr_push_get_switch_value(ndr, r);
15238 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15241 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15245 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15253 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15254 return NDR_ERR_SUCCESS;
15257 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
15259 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15261 level = ndr_pull_get_switch_value(ndr, r);
15262 if (ndr_flags & NDR_SCALARS) {
15265 NDR_CHECK(ndr_pull_align(ndr, 4));
15266 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15267 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15271 NDR_CHECK(ndr_pull_align(ndr, 4));
15272 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15273 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15281 if (ndr_flags & NDR_BUFFERS) {
15282 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15285 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15289 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15297 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15298 return NDR_ERR_SUCCESS;
15301 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
15304 level = ndr_print_get_switch_value(ndr, r);
15305 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
15308 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
15312 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
15321 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15323 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
15326 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
15328 if (ndr_flags & NDR_SCALARS) {
15329 NDR_CHECK(ndr_push_align(ndr, 4));
15330 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15331 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15332 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15333 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15335 if (ndr_flags & NDR_BUFFERS) {
15336 if (r->form_name) {
15337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15340 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15343 return NDR_ERR_SUCCESS;
15346 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
15348 uint32_t _ptr_form_name;
15349 TALLOC_CTX *_mem_save_form_name_0;
15350 if (ndr_flags & NDR_SCALARS) {
15351 NDR_CHECK(ndr_pull_align(ndr, 4));
15352 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15354 if (_ptr_form_name) {
15355 NDR_PULL_ALLOC(ndr, r->form_name);
15357 r->form_name = NULL;
15359 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15360 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15362 if (ndr_flags & NDR_BUFFERS) {
15363 if (r->form_name) {
15364 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15365 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15366 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15367 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15368 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15369 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));
15371 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15372 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15376 return NDR_ERR_SUCCESS;
15379 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
15381 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
15383 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15384 ndr_print_ptr(ndr, "form_name", r->form_name);
15386 if (r->form_name) {
15387 ndr_print_string(ndr, "form_name", r->form_name);
15390 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15391 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15395 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
15397 if (ndr_flags & NDR_SCALARS) {
15398 NDR_CHECK(ndr_push_align(ndr, 4));
15399 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15400 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15401 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15402 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15403 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
15404 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15405 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
15406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15407 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
15408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15410 if (ndr_flags & NDR_BUFFERS) {
15411 if (r->form_name) {
15412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15415 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15421 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
15424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15427 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15429 if (r->display_name) {
15430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15433 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15436 return NDR_ERR_SUCCESS;
15439 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
15441 uint32_t _ptr_form_name;
15442 TALLOC_CTX *_mem_save_form_name_0;
15443 uint32_t _ptr_keyword;
15444 TALLOC_CTX *_mem_save_keyword_0;
15445 uint32_t _ptr_mui_dll;
15446 TALLOC_CTX *_mem_save_mui_dll_0;
15447 uint32_t _ptr_display_name;
15448 TALLOC_CTX *_mem_save_display_name_0;
15449 if (ndr_flags & NDR_SCALARS) {
15450 NDR_CHECK(ndr_pull_align(ndr, 4));
15451 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15452 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15453 if (_ptr_form_name) {
15454 NDR_PULL_ALLOC(ndr, r->form_name);
15456 r->form_name = NULL;
15458 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15459 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15460 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15461 if (_ptr_keyword) {
15462 NDR_PULL_ALLOC(ndr, r->keyword);
15466 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15467 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15468 if (_ptr_mui_dll) {
15469 NDR_PULL_ALLOC(ndr, r->mui_dll);
15473 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15475 if (_ptr_display_name) {
15476 NDR_PULL_ALLOC(ndr, r->display_name);
15478 r->display_name = NULL;
15480 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15482 if (ndr_flags & NDR_BUFFERS) {
15483 if (r->form_name) {
15484 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15485 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15486 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15487 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15488 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15489 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));
15491 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15492 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15496 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15497 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15498 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
15499 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
15500 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
15501 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->keyword), ndr_get_array_length(ndr, &r->keyword));
15503 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
15504 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
15505 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15508 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15509 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15510 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
15511 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
15512 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
15513 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->mui_dll), ndr_get_array_length(ndr, &r->mui_dll));
15515 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
15516 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
15517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15519 if (r->display_name) {
15520 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15521 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15522 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
15523 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
15524 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
15525 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->display_name), ndr_get_array_length(ndr, &r->display_name));
15527 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
15528 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
15529 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15532 return NDR_ERR_SUCCESS;
15535 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
15537 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
15539 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15540 ndr_print_ptr(ndr, "form_name", r->form_name);
15542 if (r->form_name) {
15543 ndr_print_string(ndr, "form_name", r->form_name);
15546 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15547 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15548 ndr_print_ptr(ndr, "keyword", r->keyword);
15551 ndr_print_string(ndr, "keyword", r->keyword);
15554 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15555 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15558 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15561 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15562 ndr_print_ptr(ndr, "display_name", r->display_name);
15564 if (r->display_name) {
15565 ndr_print_string(ndr, "display_name", r->display_name);
15568 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15572 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
15574 if (ndr_flags & NDR_SCALARS) {
15575 int level = ndr_push_get_switch_value(ndr, r);
15576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15579 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15583 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
15587 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15590 if (ndr_flags & NDR_BUFFERS) {
15591 int level = ndr_push_get_switch_value(ndr, r);
15595 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15601 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
15606 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15609 return NDR_ERR_SUCCESS;
15612 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
15616 TALLOC_CTX *_mem_save_info1_0;
15617 TALLOC_CTX *_mem_save_info2_0;
15618 level = ndr_pull_get_switch_value(ndr, r);
15619 if (ndr_flags & NDR_SCALARS) {
15620 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15621 if (_level != level) {
15622 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
15626 uint32_t _ptr_info1;
15627 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15629 NDR_PULL_ALLOC(ndr, r->info1);
15636 uint32_t _ptr_info2;
15637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
15639 NDR_PULL_ALLOC(ndr, r->info2);
15646 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15649 if (ndr_flags & NDR_BUFFERS) {
15653 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15654 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15655 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15656 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15662 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
15663 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
15664 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
15665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
15670 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15673 return NDR_ERR_SUCCESS;
15676 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
15679 level = ndr_print_get_switch_value(ndr, r);
15680 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
15683 ndr_print_ptr(ndr, "info1", r->info1);
15686 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
15692 ndr_print_ptr(ndr, "info2", r->info2);
15695 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
15701 ndr_print_bad_level(ndr, name, level);
15705 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
15707 if (ndr_flags & NDR_SCALARS) {
15708 NDR_CHECK(ndr_push_align(ndr, 4));
15710 uint32_t _flags_save_string = ndr->flags;
15711 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15712 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
15713 ndr->flags = _flags_save_string;
15716 if (ndr_flags & NDR_BUFFERS) {
15718 uint32_t _flags_save_string = ndr->flags;
15719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15720 if (r->port_name) {
15721 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
15722 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
15724 ndr->flags = _flags_save_string;
15727 return NDR_ERR_SUCCESS;
15730 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
15732 uint32_t _ptr_port_name;
15733 TALLOC_CTX *_mem_save_port_name_0;
15734 if (ndr_flags & NDR_SCALARS) {
15735 NDR_CHECK(ndr_pull_align(ndr, 4));
15737 uint32_t _flags_save_string = ndr->flags;
15738 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15739 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
15740 if (_ptr_port_name) {
15741 NDR_PULL_ALLOC(ndr, r->port_name);
15742 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
15744 r->port_name = NULL;
15746 ndr->flags = _flags_save_string;
15749 if (ndr_flags & NDR_BUFFERS) {
15751 uint32_t _flags_save_string = ndr->flags;
15752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15753 if (r->port_name) {
15754 uint32_t _relative_save_offset;
15755 _relative_save_offset = ndr->offset;
15756 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
15757 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15758 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
15759 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
15760 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
15761 ndr->offset = _relative_save_offset;
15763 ndr->flags = _flags_save_string;
15766 return NDR_ERR_SUCCESS;
15769 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
15771 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
15773 ndr_print_ptr(ndr, "port_name", r->port_name);
15775 if (r->port_name) {
15776 ndr_print_string(ndr, "port_name", r->port_name);
15782 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15784 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
15787 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15790 return NDR_ERR_SUCCESS;
15793 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15796 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15798 return NDR_ERR_SUCCESS;
15801 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
15803 ndr_print_uint32(ndr, name, r);
15805 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
15806 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
15807 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
15808 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
15812 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
15814 if (ndr_flags & NDR_SCALARS) {
15815 NDR_CHECK(ndr_push_align(ndr, 4));
15817 uint32_t _flags_save_string = ndr->flags;
15818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15819 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
15820 ndr->flags = _flags_save_string;
15823 uint32_t _flags_save_string = ndr->flags;
15824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15825 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
15826 ndr->flags = _flags_save_string;
15829 uint32_t _flags_save_string = ndr->flags;
15830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15831 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
15832 ndr->flags = _flags_save_string;
15834 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
15835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
15837 if (ndr_flags & NDR_BUFFERS) {
15839 uint32_t _flags_save_string = ndr->flags;
15840 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15841 if (r->port_name) {
15842 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
15843 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
15845 ndr->flags = _flags_save_string;
15848 uint32_t _flags_save_string = ndr->flags;
15849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15850 if (r->monitor_name) {
15851 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
15852 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
15854 ndr->flags = _flags_save_string;
15857 uint32_t _flags_save_string = ndr->flags;
15858 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15859 if (r->description) {
15860 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
15861 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
15863 ndr->flags = _flags_save_string;
15866 return NDR_ERR_SUCCESS;
15869 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
15871 uint32_t _ptr_port_name;
15872 TALLOC_CTX *_mem_save_port_name_0;
15873 uint32_t _ptr_monitor_name;
15874 TALLOC_CTX *_mem_save_monitor_name_0;
15875 uint32_t _ptr_description;
15876 TALLOC_CTX *_mem_save_description_0;
15877 if (ndr_flags & NDR_SCALARS) {
15878 NDR_CHECK(ndr_pull_align(ndr, 4));
15880 uint32_t _flags_save_string = ndr->flags;
15881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
15883 if (_ptr_port_name) {
15884 NDR_PULL_ALLOC(ndr, r->port_name);
15885 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
15887 r->port_name = NULL;
15889 ndr->flags = _flags_save_string;
15892 uint32_t _flags_save_string = ndr->flags;
15893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
15895 if (_ptr_monitor_name) {
15896 NDR_PULL_ALLOC(ndr, r->monitor_name);
15897 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
15899 r->monitor_name = NULL;
15901 ndr->flags = _flags_save_string;
15904 uint32_t _flags_save_string = ndr->flags;
15905 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
15907 if (_ptr_description) {
15908 NDR_PULL_ALLOC(ndr, r->description);
15909 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
15911 r->description = NULL;
15913 ndr->flags = _flags_save_string;
15915 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
15916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
15918 if (ndr_flags & NDR_BUFFERS) {
15920 uint32_t _flags_save_string = ndr->flags;
15921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15922 if (r->port_name) {
15923 uint32_t _relative_save_offset;
15924 _relative_save_offset = ndr->offset;
15925 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
15926 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15927 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
15928 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
15929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
15930 ndr->offset = _relative_save_offset;
15932 ndr->flags = _flags_save_string;
15935 uint32_t _flags_save_string = ndr->flags;
15936 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15937 if (r->monitor_name) {
15938 uint32_t _relative_save_offset;
15939 _relative_save_offset = ndr->offset;
15940 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
15941 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15942 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
15943 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
15944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
15945 ndr->offset = _relative_save_offset;
15947 ndr->flags = _flags_save_string;
15950 uint32_t _flags_save_string = ndr->flags;
15951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15952 if (r->description) {
15953 uint32_t _relative_save_offset;
15954 _relative_save_offset = ndr->offset;
15955 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
15956 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
15957 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
15958 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
15959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
15960 ndr->offset = _relative_save_offset;
15962 ndr->flags = _flags_save_string;
15965 return NDR_ERR_SUCCESS;
15968 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
15970 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
15972 ndr_print_ptr(ndr, "port_name", r->port_name);
15974 if (r->port_name) {
15975 ndr_print_string(ndr, "port_name", r->port_name);
15978 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
15980 if (r->monitor_name) {
15981 ndr_print_string(ndr, "monitor_name", r->monitor_name);
15984 ndr_print_ptr(ndr, "description", r->description);
15986 if (r->description) {
15987 ndr_print_string(ndr, "description", r->description);
15990 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
15991 ndr_print_uint32(ndr, "reserved", r->reserved);
15995 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
15997 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
16000 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
16002 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16003 return NDR_ERR_SUCCESS;
16006 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
16009 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16011 return NDR_ERR_SUCCESS;
16014 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
16016 const char *val = NULL;
16019 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
16020 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
16021 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
16022 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
16023 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16024 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
16025 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
16026 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
16027 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
16028 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
16029 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
16030 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
16031 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
16033 ndr_print_enum(ndr, name, "ENUM", val, r);
16036 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
16038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16039 return NDR_ERR_SUCCESS;
16042 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
16045 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16047 return NDR_ERR_SUCCESS;
16050 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
16052 const char *val = NULL;
16055 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
16056 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
16057 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
16059 ndr_print_enum(ndr, name, "ENUM", val, r);
16062 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
16064 if (ndr_flags & NDR_SCALARS) {
16065 NDR_CHECK(ndr_push_align(ndr, 4));
16066 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
16068 uint32_t _flags_save_string = ndr->flags;
16069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16070 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
16071 ndr->flags = _flags_save_string;
16073 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
16075 if (ndr_flags & NDR_BUFFERS) {
16077 uint32_t _flags_save_string = ndr->flags;
16078 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16079 if (r->status_string) {
16080 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
16081 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
16083 ndr->flags = _flags_save_string;
16086 return NDR_ERR_SUCCESS;
16089 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
16091 uint32_t _ptr_status_string;
16092 TALLOC_CTX *_mem_save_status_string_0;
16093 if (ndr_flags & NDR_SCALARS) {
16094 NDR_CHECK(ndr_pull_align(ndr, 4));
16095 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
16097 uint32_t _flags_save_string = ndr->flags;
16098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16099 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
16100 if (_ptr_status_string) {
16101 NDR_PULL_ALLOC(ndr, r->status_string);
16102 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
16104 r->status_string = NULL;
16106 ndr->flags = _flags_save_string;
16108 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
16110 if (ndr_flags & NDR_BUFFERS) {
16112 uint32_t _flags_save_string = ndr->flags;
16113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16114 if (r->status_string) {
16115 uint32_t _relative_save_offset;
16116 _relative_save_offset = ndr->offset;
16117 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
16118 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
16119 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
16120 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
16121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
16122 ndr->offset = _relative_save_offset;
16124 ndr->flags = _flags_save_string;
16127 return NDR_ERR_SUCCESS;
16130 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
16132 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
16134 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
16135 ndr_print_ptr(ndr, "status_string", r->status_string);
16137 if (r->status_string) {
16138 ndr_print_string(ndr, "status_string", r->status_string);
16141 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
16145 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
16147 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
16150 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
16152 if (ndr_flags & NDR_SCALARS) {
16153 NDR_CHECK(ndr_push_align(ndr, 4));
16155 uint32_t _flags_save_string = ndr->flags;
16156 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16157 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16158 ndr->flags = _flags_save_string;
16160 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
16162 if (ndr_flags & NDR_BUFFERS) {
16164 uint32_t _flags_save_string = ndr->flags;
16165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16166 if (r->port_name) {
16167 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16168 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16170 ndr->flags = _flags_save_string;
16173 return NDR_ERR_SUCCESS;
16176 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
16178 uint32_t _ptr_port_name;
16179 TALLOC_CTX *_mem_save_port_name_0;
16180 if (ndr_flags & NDR_SCALARS) {
16181 NDR_CHECK(ndr_pull_align(ndr, 4));
16183 uint32_t _flags_save_string = ndr->flags;
16184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16186 if (_ptr_port_name) {
16187 NDR_PULL_ALLOC(ndr, r->port_name);
16188 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16190 r->port_name = NULL;
16192 ndr->flags = _flags_save_string;
16194 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
16196 if (ndr_flags & NDR_BUFFERS) {
16198 uint32_t _flags_save_string = ndr->flags;
16199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16200 if (r->port_name) {
16201 uint32_t _relative_save_offset;
16202 _relative_save_offset = ndr->offset;
16203 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16204 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16205 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16206 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16208 ndr->offset = _relative_save_offset;
16210 ndr->flags = _flags_save_string;
16213 return NDR_ERR_SUCCESS;
16216 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
16218 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
16220 ndr_print_ptr(ndr, "port_name", r->port_name);
16222 if (r->port_name) {
16223 ndr_print_string(ndr, "port_name", r->port_name);
16226 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
16230 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
16232 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
16235 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
16237 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16238 if (ndr_flags & NDR_SCALARS) {
16239 int level = ndr_push_get_switch_value(ndr, r);
16242 NDR_CHECK(ndr_push_align(ndr, 4));
16243 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16244 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16248 NDR_CHECK(ndr_push_align(ndr, 4));
16249 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16250 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16254 NDR_CHECK(ndr_push_align(ndr, 4));
16255 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16256 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16260 NDR_CHECK(ndr_push_align(ndr, 4));
16261 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16262 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16270 if (ndr_flags & NDR_BUFFERS) {
16271 int level = ndr_push_get_switch_value(ndr, r);
16272 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16275 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16279 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16283 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16287 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16295 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16296 return NDR_ERR_SUCCESS;
16299 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
16301 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16303 level = ndr_pull_get_switch_value(ndr, r);
16304 if (ndr_flags & NDR_SCALARS) {
16307 NDR_CHECK(ndr_pull_align(ndr, 4));
16308 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16309 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16313 NDR_CHECK(ndr_pull_align(ndr, 4));
16314 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16315 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16319 NDR_CHECK(ndr_pull_align(ndr, 4));
16320 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16321 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16325 NDR_CHECK(ndr_pull_align(ndr, 4));
16326 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16327 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16335 if (ndr_flags & NDR_BUFFERS) {
16336 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16339 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16343 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16347 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16351 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16359 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16360 return NDR_ERR_SUCCESS;
16363 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
16366 level = ndr_print_get_switch_value(ndr, r);
16367 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
16370 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
16374 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
16378 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
16382 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
16391 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
16393 if (ndr_flags & NDR_SCALARS) {
16394 NDR_CHECK(ndr_push_align(ndr, 4));
16396 uint32_t _flags_save_string = ndr->flags;
16397 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16398 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16399 ndr->flags = _flags_save_string;
16402 if (ndr_flags & NDR_BUFFERS) {
16404 uint32_t _flags_save_string = ndr->flags;
16405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16406 if (r->monitor_name) {
16407 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16408 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16410 ndr->flags = _flags_save_string;
16413 return NDR_ERR_SUCCESS;
16416 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
16418 uint32_t _ptr_monitor_name;
16419 TALLOC_CTX *_mem_save_monitor_name_0;
16420 if (ndr_flags & NDR_SCALARS) {
16421 NDR_CHECK(ndr_pull_align(ndr, 4));
16423 uint32_t _flags_save_string = ndr->flags;
16424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16425 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16426 if (_ptr_monitor_name) {
16427 NDR_PULL_ALLOC(ndr, r->monitor_name);
16428 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16430 r->monitor_name = NULL;
16432 ndr->flags = _flags_save_string;
16435 if (ndr_flags & NDR_BUFFERS) {
16437 uint32_t _flags_save_string = ndr->flags;
16438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16439 if (r->monitor_name) {
16440 uint32_t _relative_save_offset;
16441 _relative_save_offset = ndr->offset;
16442 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16443 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16444 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16445 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16446 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16447 ndr->offset = _relative_save_offset;
16449 ndr->flags = _flags_save_string;
16452 return NDR_ERR_SUCCESS;
16455 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
16457 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
16459 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16461 if (r->monitor_name) {
16462 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16468 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16470 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
16473 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
16475 if (ndr_flags & NDR_SCALARS) {
16476 NDR_CHECK(ndr_push_align(ndr, 4));
16478 uint32_t _flags_save_string = ndr->flags;
16479 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16480 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16481 ndr->flags = _flags_save_string;
16484 uint32_t _flags_save_string = ndr->flags;
16485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16486 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
16487 ndr->flags = _flags_save_string;
16490 uint32_t _flags_save_string = ndr->flags;
16491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16492 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
16493 ndr->flags = _flags_save_string;
16496 if (ndr_flags & NDR_BUFFERS) {
16498 uint32_t _flags_save_string = ndr->flags;
16499 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16500 if (r->monitor_name) {
16501 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16502 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16504 ndr->flags = _flags_save_string;
16507 uint32_t _flags_save_string = ndr->flags;
16508 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16509 if (r->environment) {
16510 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
16511 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
16513 ndr->flags = _flags_save_string;
16516 uint32_t _flags_save_string = ndr->flags;
16517 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16519 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
16520 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
16522 ndr->flags = _flags_save_string;
16525 return NDR_ERR_SUCCESS;
16528 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
16530 uint32_t _ptr_monitor_name;
16531 TALLOC_CTX *_mem_save_monitor_name_0;
16532 uint32_t _ptr_environment;
16533 TALLOC_CTX *_mem_save_environment_0;
16534 uint32_t _ptr_dll_name;
16535 TALLOC_CTX *_mem_save_dll_name_0;
16536 if (ndr_flags & NDR_SCALARS) {
16537 NDR_CHECK(ndr_pull_align(ndr, 4));
16539 uint32_t _flags_save_string = ndr->flags;
16540 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16541 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16542 if (_ptr_monitor_name) {
16543 NDR_PULL_ALLOC(ndr, r->monitor_name);
16544 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16546 r->monitor_name = NULL;
16548 ndr->flags = _flags_save_string;
16551 uint32_t _flags_save_string = ndr->flags;
16552 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16553 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16554 if (_ptr_environment) {
16555 NDR_PULL_ALLOC(ndr, r->environment);
16556 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
16558 r->environment = NULL;
16560 ndr->flags = _flags_save_string;
16563 uint32_t _flags_save_string = ndr->flags;
16564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16565 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
16566 if (_ptr_dll_name) {
16567 NDR_PULL_ALLOC(ndr, r->dll_name);
16568 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
16570 r->dll_name = NULL;
16572 ndr->flags = _flags_save_string;
16575 if (ndr_flags & NDR_BUFFERS) {
16577 uint32_t _flags_save_string = ndr->flags;
16578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16579 if (r->monitor_name) {
16580 uint32_t _relative_save_offset;
16581 _relative_save_offset = ndr->offset;
16582 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16583 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16584 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16585 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16587 ndr->offset = _relative_save_offset;
16589 ndr->flags = _flags_save_string;
16592 uint32_t _flags_save_string = ndr->flags;
16593 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16594 if (r->environment) {
16595 uint32_t _relative_save_offset;
16596 _relative_save_offset = ndr->offset;
16597 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
16598 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16599 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
16600 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
16601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16602 ndr->offset = _relative_save_offset;
16604 ndr->flags = _flags_save_string;
16607 uint32_t _flags_save_string = ndr->flags;
16608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16610 uint32_t _relative_save_offset;
16611 _relative_save_offset = ndr->offset;
16612 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
16613 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16614 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
16615 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
16616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
16617 ndr->offset = _relative_save_offset;
16619 ndr->flags = _flags_save_string;
16622 return NDR_ERR_SUCCESS;
16625 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
16627 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
16629 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16631 if (r->monitor_name) {
16632 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16635 ndr_print_ptr(ndr, "environment", r->environment);
16637 if (r->environment) {
16638 ndr_print_string(ndr, "environment", r->environment);
16641 ndr_print_ptr(ndr, "dll_name", r->dll_name);
16644 ndr_print_string(ndr, "dll_name", r->dll_name);
16650 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16652 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
16655 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
16657 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16658 if (ndr_flags & NDR_SCALARS) {
16659 int level = ndr_push_get_switch_value(ndr, r);
16662 NDR_CHECK(ndr_push_align(ndr, 4));
16663 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16664 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16668 NDR_CHECK(ndr_push_align(ndr, 4));
16669 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16670 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16678 if (ndr_flags & NDR_BUFFERS) {
16679 int level = ndr_push_get_switch_value(ndr, r);
16680 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16683 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16687 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16695 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16696 return NDR_ERR_SUCCESS;
16699 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
16701 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16703 level = ndr_pull_get_switch_value(ndr, r);
16704 if (ndr_flags & NDR_SCALARS) {
16707 NDR_CHECK(ndr_pull_align(ndr, 4));
16708 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16709 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16713 NDR_CHECK(ndr_pull_align(ndr, 4));
16714 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16715 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16723 if (ndr_flags & NDR_BUFFERS) {
16724 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16727 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16731 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16739 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16740 return NDR_ERR_SUCCESS;
16743 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
16746 level = ndr_print_get_switch_value(ndr, r);
16747 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
16750 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
16754 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
16763 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
16765 if (ndr_flags & NDR_SCALARS) {
16766 NDR_CHECK(ndr_push_align(ndr, 4));
16768 uint32_t _flags_save_string = ndr->flags;
16769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16770 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
16771 ndr->flags = _flags_save_string;
16774 if (ndr_flags & NDR_BUFFERS) {
16776 uint32_t _flags_save_string = ndr->flags;
16777 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16778 if (r->name_array) {
16779 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name_array));
16780 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
16782 ndr->flags = _flags_save_string;
16785 return NDR_ERR_SUCCESS;
16788 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
16790 uint32_t _ptr_name_array;
16791 TALLOC_CTX *_mem_save_name_array_0;
16792 if (ndr_flags & NDR_SCALARS) {
16793 NDR_CHECK(ndr_pull_align(ndr, 4));
16795 uint32_t _flags_save_string = ndr->flags;
16796 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16797 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
16798 if (_ptr_name_array) {
16799 NDR_PULL_ALLOC(ndr, r->name_array);
16800 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
16802 r->name_array = NULL;
16804 ndr->flags = _flags_save_string;
16807 if (ndr_flags & NDR_BUFFERS) {
16809 uint32_t _flags_save_string = ndr->flags;
16810 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16811 if (r->name_array) {
16812 uint32_t _relative_save_offset;
16813 _relative_save_offset = ndr->offset;
16814 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
16815 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
16816 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
16817 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
16818 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
16819 ndr->offset = _relative_save_offset;
16821 ndr->flags = _flags_save_string;
16824 return NDR_ERR_SUCCESS;
16827 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
16829 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
16831 ndr_print_ptr(ndr, "name_array", r->name_array);
16833 if (r->name_array) {
16834 ndr_print_string(ndr, "name_array", r->name_array);
16840 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16842 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
16845 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
16847 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16848 if (ndr_flags & NDR_SCALARS) {
16849 int level = ndr_push_get_switch_value(ndr, r);
16852 NDR_CHECK(ndr_push_align(ndr, 4));
16853 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16854 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
16862 if (ndr_flags & NDR_BUFFERS) {
16863 int level = ndr_push_get_switch_value(ndr, r);
16864 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16867 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
16875 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16876 return NDR_ERR_SUCCESS;
16879 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
16881 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16883 level = ndr_pull_get_switch_value(ndr, r);
16884 if (ndr_flags & NDR_SCALARS) {
16887 NDR_CHECK(ndr_pull_align(ndr, 4));
16888 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16889 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
16897 if (ndr_flags & NDR_BUFFERS) {
16898 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16901 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
16909 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16910 return NDR_ERR_SUCCESS;
16913 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
16916 level = ndr_print_get_switch_value(ndr, r);
16917 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
16920 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
16929 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16931 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16932 return NDR_ERR_SUCCESS;
16935 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16938 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16940 return NDR_ERR_SUCCESS;
16943 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
16945 ndr_print_uint32(ndr, name, r);
16947 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
16948 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
16949 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
16950 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
16951 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
16952 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
16953 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
16954 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
16955 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
16956 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
16957 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
16958 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
16959 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
16960 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
16961 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
16962 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
16963 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
16964 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
16965 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
16966 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
16967 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
16971 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
16973 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
16974 return NDR_ERR_SUCCESS;
16977 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
16980 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
16982 return NDR_ERR_SUCCESS;
16985 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
16987 const char *val = NULL;
16990 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
16991 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
16992 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
16993 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
16994 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
16995 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
16996 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
16997 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
16998 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
16999 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
17000 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
17001 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
17002 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
17003 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
17004 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
17005 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
17006 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
17007 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
17008 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
17009 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
17010 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
17011 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
17012 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
17013 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
17014 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
17015 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
17017 ndr_print_enum(ndr, name, "ENUM", val, r);
17020 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
17022 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17023 return NDR_ERR_SUCCESS;
17026 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
17029 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17031 return NDR_ERR_SUCCESS;
17034 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
17036 const char *val = NULL;
17039 case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
17040 case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
17042 ndr_print_enum(ndr, name, "ENUM", val, r);
17045 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
17047 uint32_t cntr_fields_1;
17048 if (ndr_flags & NDR_SCALARS) {
17049 NDR_CHECK(ndr_push_align(ndr, 4));
17050 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17051 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
17052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
17053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
17054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17055 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
17057 if (ndr_flags & NDR_BUFFERS) {
17059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17060 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17061 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
17065 return NDR_ERR_SUCCESS;
17068 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
17070 uint32_t _ptr_fields;
17071 uint32_t cntr_fields_1;
17072 TALLOC_CTX *_mem_save_fields_0;
17073 TALLOC_CTX *_mem_save_fields_1;
17074 if (ndr_flags & NDR_SCALARS) {
17075 NDR_CHECK(ndr_pull_align(ndr, 4));
17076 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17077 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
17078 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
17079 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
17080 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17081 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
17083 NDR_PULL_ALLOC(ndr, r->fields);
17088 if (ndr_flags & NDR_BUFFERS) {
17090 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
17091 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17092 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
17093 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
17094 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
17095 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17096 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17097 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
17100 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
17103 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
17106 return NDR_ERR_SUCCESS;
17109 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
17111 uint32_t cntr_fields_1;
17112 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
17114 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17115 ndr_print_uint16(ndr, "u1", r->u1);
17116 ndr_print_uint32(ndr, "u2", r->u2);
17117 ndr_print_uint32(ndr, "u3", r->u3);
17118 ndr_print_uint32(ndr, "count", r->count);
17119 ndr_print_ptr(ndr, "fields", r->fields);
17122 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
17124 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
17126 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
17127 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
17137 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17140 return NDR_ERR_SUCCESS;
17143 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17146 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17148 return NDR_ERR_SUCCESS;
17151 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17153 ndr_print_uint32(ndr, name, r);
17155 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
17159 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
17161 uint32_t cntr_types_1;
17162 if (ndr_flags & NDR_SCALARS) {
17163 NDR_CHECK(ndr_push_align(ndr, 4));
17164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17165 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
17166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17167 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
17169 if (ndr_flags & NDR_BUFFERS) {
17171 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17172 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17173 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17175 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17176 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17180 return NDR_ERR_SUCCESS;
17183 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
17185 uint32_t _ptr_types;
17186 uint32_t cntr_types_1;
17187 TALLOC_CTX *_mem_save_types_0;
17188 TALLOC_CTX *_mem_save_types_1;
17189 if (ndr_flags & NDR_SCALARS) {
17190 NDR_CHECK(ndr_pull_align(ndr, 4));
17191 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17192 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
17193 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17194 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
17196 NDR_PULL_ALLOC(ndr, r->types);
17201 if (ndr_flags & NDR_BUFFERS) {
17203 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
17204 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17205 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
17206 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
17207 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
17208 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17209 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17210 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17212 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17213 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
17216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
17219 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
17222 return NDR_ERR_SUCCESS;
17225 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
17227 uint32_t cntr_types_1;
17228 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
17230 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17231 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
17232 ndr_print_uint32(ndr, "count", r->count);
17233 ndr_print_ptr(ndr, "types", r->types);
17236 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
17238 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
17240 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
17241 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
17251 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
17253 if (ndr_flags & NDR_SCALARS) {
17254 NDR_CHECK(ndr_push_align(ndr, 4));
17255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17256 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
17258 if (ndr_flags & NDR_BUFFERS) {
17260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
17261 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
17264 return NDR_ERR_SUCCESS;
17267 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
17269 uint32_t _ptr_string;
17270 TALLOC_CTX *_mem_save_string_0;
17271 if (ndr_flags & NDR_SCALARS) {
17272 NDR_CHECK(ndr_pull_align(ndr, 4));
17273 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
17276 NDR_PULL_ALLOC(ndr, r->string);
17281 if (ndr_flags & NDR_BUFFERS) {
17283 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17284 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
17285 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
17286 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
17287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
17290 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
17293 return NDR_ERR_SUCCESS;
17296 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
17298 ndr_print_struct(ndr, name, "spoolss_NotifyString");
17300 ndr_print_uint32(ndr, "size", r->size);
17301 ndr_print_ptr(ndr, "string", r->string);
17304 ndr_print_string(ndr, "string", r->string);
17310 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
17312 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17313 return NDR_ERR_SUCCESS;
17316 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
17319 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17321 return NDR_ERR_SUCCESS;
17324 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
17326 const char *val = NULL;
17329 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
17330 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
17331 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
17332 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
17333 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
17335 ndr_print_enum(ndr, name, "ENUM", val, r);
17338 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
17340 if (ndr_flags & NDR_SCALARS) {
17341 int level = ndr_push_get_switch_value(ndr, r);
17342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17345 uint32_t cntr_integer_0;
17346 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
17352 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17356 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17360 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17364 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17368 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17371 if (ndr_flags & NDR_BUFFERS) {
17372 int level = ndr_push_get_switch_value(ndr, r);
17378 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17382 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17386 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17390 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17394 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17397 return NDR_ERR_SUCCESS;
17400 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
17404 level = ndr_pull_get_switch_value(ndr, r);
17405 if (ndr_flags & NDR_SCALARS) {
17406 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17407 if (_level != level) {
17408 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17412 uint32_t cntr_integer_0;
17413 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
17419 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17423 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17427 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17431 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17435 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17438 if (ndr_flags & NDR_BUFFERS) {
17444 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17448 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17452 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17456 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17460 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17463 return NDR_ERR_SUCCESS;
17466 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
17469 uint32_t cntr_integer_0;
17470 level = ndr_print_get_switch_value(ndr, r);
17471 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
17474 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
17476 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
17478 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
17479 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
17487 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
17491 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
17495 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
17499 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
17503 ndr_print_bad_level(ndr, name, level);
17507 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
17509 if (ndr_flags & NDR_SCALARS) {
17510 NDR_CHECK(ndr_push_align(ndr, 4));
17511 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17512 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
17513 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
17514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
17515 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
17516 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17518 if (ndr_flags & NDR_BUFFERS) {
17519 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17521 return NDR_ERR_SUCCESS;
17524 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
17526 if (ndr_flags & NDR_SCALARS) {
17527 NDR_CHECK(ndr_pull_align(ndr, 4));
17528 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17529 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
17530 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
17531 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
17532 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
17533 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17535 if (ndr_flags & NDR_BUFFERS) {
17536 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17538 return NDR_ERR_SUCCESS;
17541 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
17543 ndr_print_struct(ndr, name, "spoolss_Notify");
17545 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17546 ndr_print_spoolss_Field(ndr, "field", r->field);
17547 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
17548 ndr_print_uint32(ndr, "job_id", r->job_id);
17549 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
17550 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
17554 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
17556 uint32_t cntr_notifies_0;
17557 if (ndr_flags & NDR_SCALARS) {
17558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17559 NDR_CHECK(ndr_push_align(ndr, 4));
17560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17561 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17563 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17564 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17567 if (ndr_flags & NDR_BUFFERS) {
17568 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17569 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17572 return NDR_ERR_SUCCESS;
17575 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
17577 uint32_t cntr_notifies_0;
17578 TALLOC_CTX *_mem_save_notifies_0;
17579 if (ndr_flags & NDR_SCALARS) {
17580 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
17581 NDR_CHECK(ndr_pull_align(ndr, 4));
17582 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17583 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17584 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17585 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
17586 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17587 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17588 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17589 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17593 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
17596 if (ndr_flags & NDR_BUFFERS) {
17597 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17598 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17599 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17600 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17604 return NDR_ERR_SUCCESS;
17607 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
17609 uint32_t cntr_notifies_0;
17610 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
17612 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17613 ndr_print_uint32(ndr, "flags", r->flags);
17614 ndr_print_uint32(ndr, "count", r->count);
17615 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
17617 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
17619 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
17620 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
17628 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
17630 if (ndr_flags & NDR_SCALARS) {
17631 int level = ndr_push_get_switch_value(ndr, r);
17632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17635 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
17639 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17642 if (ndr_flags & NDR_BUFFERS) {
17643 int level = ndr_push_get_switch_value(ndr, r);
17647 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17652 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17655 return NDR_ERR_SUCCESS;
17658 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
17662 TALLOC_CTX *_mem_save_info0_0;
17663 level = ndr_pull_get_switch_value(ndr, r);
17664 if (ndr_flags & NDR_SCALARS) {
17665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17666 if (_level != level) {
17667 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17671 uint32_t _ptr_info0;
17672 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
17674 NDR_PULL_ALLOC(ndr, r->info0);
17681 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17684 if (ndr_flags & NDR_BUFFERS) {
17688 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
17689 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
17690 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
17696 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17699 return NDR_ERR_SUCCESS;
17702 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
17705 level = ndr_print_get_switch_value(ndr, r);
17706 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
17709 ndr_print_ptr(ndr, "info0", r->info0);
17712 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
17718 ndr_print_bad_level(ndr, name, level);
17722 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17725 return NDR_ERR_SUCCESS;
17728 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17733 return NDR_ERR_SUCCESS;
17736 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17738 ndr_print_uint32(ndr, name, r);
17740 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
17741 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
17742 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
17746 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
17748 if (ndr_flags & NDR_SCALARS) {
17749 NDR_CHECK(ndr_push_align(ndr, 4));
17750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17751 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
17752 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
17753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17754 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
17755 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
17756 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
17758 if (ndr_flags & NDR_BUFFERS) {
17760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17763 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17769 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17772 return NDR_ERR_SUCCESS;
17775 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
17777 uint32_t _ptr_client;
17778 TALLOC_CTX *_mem_save_client_0;
17779 uint32_t _ptr_user;
17780 TALLOC_CTX *_mem_save_user_0;
17781 if (ndr_flags & NDR_SCALARS) {
17782 NDR_CHECK(ndr_pull_align(ndr, 4));
17783 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17784 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
17786 NDR_PULL_ALLOC(ndr, r->client);
17790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
17792 NDR_PULL_ALLOC(ndr, r->user);
17796 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17797 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
17798 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
17799 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
17801 if (ndr_flags & NDR_BUFFERS) {
17803 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
17804 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
17805 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
17806 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
17807 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
17808 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));
17810 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
17811 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
17812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
17815 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
17816 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
17817 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
17818 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
17819 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
17820 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));
17822 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
17823 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
17824 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
17827 return NDR_ERR_SUCCESS;
17830 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
17832 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
17834 ndr_print_uint32(ndr, "size", r->size);
17835 ndr_print_ptr(ndr, "client", r->client);
17838 ndr_print_string(ndr, "client", r->client);
17841 ndr_print_ptr(ndr, "user", r->user);
17844 ndr_print_string(ndr, "user", r->user);
17847 ndr_print_uint32(ndr, "build", r->build);
17848 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
17849 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
17850 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
17854 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
17856 if (ndr_flags & NDR_SCALARS) {
17857 NDR_CHECK(ndr_push_align(ndr, 4));
17858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
17860 if (ndr_flags & NDR_BUFFERS) {
17862 return NDR_ERR_SUCCESS;
17865 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
17867 if (ndr_flags & NDR_SCALARS) {
17868 NDR_CHECK(ndr_pull_align(ndr, 4));
17869 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
17871 if (ndr_flags & NDR_BUFFERS) {
17873 return NDR_ERR_SUCCESS;
17876 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
17878 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
17880 ndr_print_uint32(ndr, "not_used", r->not_used);
17884 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
17886 if (ndr_flags & NDR_SCALARS) {
17887 NDR_CHECK(ndr_push_align(ndr, 4));
17888 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17890 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
17891 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
17892 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
17893 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17894 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
17895 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
17896 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
17897 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
17899 if (ndr_flags & NDR_BUFFERS) {
17901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17904 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17910 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17913 return NDR_ERR_SUCCESS;
17916 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
17918 uint32_t _ptr_client;
17919 TALLOC_CTX *_mem_save_client_0;
17920 uint32_t _ptr_user;
17921 TALLOC_CTX *_mem_save_user_0;
17922 if (ndr_flags & NDR_SCALARS) {
17923 NDR_CHECK(ndr_pull_align(ndr, 4));
17924 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17925 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17926 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
17927 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
17929 NDR_PULL_ALLOC(ndr, r->client);
17933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
17935 NDR_PULL_ALLOC(ndr, r->user);
17939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17940 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
17941 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
17942 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
17943 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
17945 if (ndr_flags & NDR_BUFFERS) {
17947 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
17948 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
17949 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
17950 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
17951 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
17952 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));
17954 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
17955 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
17956 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
17959 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
17960 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
17961 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
17962 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
17963 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
17964 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));
17966 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
17967 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
17968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
17971 return NDR_ERR_SUCCESS;
17974 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
17976 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
17978 ndr_print_uint32(ndr, "size", r->size);
17979 ndr_print_uint32(ndr, "flags", r->flags);
17980 ndr_print_uint32(ndr, "size2", r->size2);
17981 ndr_print_ptr(ndr, "client", r->client);
17984 ndr_print_string(ndr, "client", r->client);
17987 ndr_print_ptr(ndr, "user", r->user);
17990 ndr_print_string(ndr, "user", r->user);
17993 ndr_print_uint32(ndr, "build", r->build);
17994 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
17995 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
17996 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
17997 ndr_print_udlong(ndr, "reserved", r->reserved);
18001 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
18003 if (ndr_flags & NDR_SCALARS) {
18004 int level = ndr_push_get_switch_value(ndr, r);
18005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18008 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
18012 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
18016 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
18020 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18023 if (ndr_flags & NDR_BUFFERS) {
18024 int level = ndr_push_get_switch_value(ndr, r);
18028 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18034 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18040 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18045 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18048 return NDR_ERR_SUCCESS;
18051 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
18055 TALLOC_CTX *_mem_save_level1_0;
18056 TALLOC_CTX *_mem_save_level2_0;
18057 TALLOC_CTX *_mem_save_level3_0;
18058 level = ndr_pull_get_switch_value(ndr, r);
18059 if (ndr_flags & NDR_SCALARS) {
18060 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18061 if (_level != level) {
18062 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
18066 uint32_t _ptr_level1;
18067 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
18069 NDR_PULL_ALLOC(ndr, r->level1);
18076 uint32_t _ptr_level2;
18077 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
18079 NDR_PULL_ALLOC(ndr, r->level2);
18086 uint32_t _ptr_level3;
18087 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
18089 NDR_PULL_ALLOC(ndr, r->level3);
18096 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18099 if (ndr_flags & NDR_BUFFERS) {
18103 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
18104 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
18105 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
18112 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
18113 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
18114 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18115 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
18121 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
18122 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
18123 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18124 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
18129 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18132 return NDR_ERR_SUCCESS;
18135 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
18138 level = ndr_print_get_switch_value(ndr, r);
18139 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
18142 ndr_print_ptr(ndr, "level1", r->level1);
18145 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
18151 ndr_print_ptr(ndr, "level2", r->level2);
18154 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
18160 ndr_print_ptr(ndr, "level3", r->level3);
18163 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
18169 ndr_print_bad_level(ndr, name, level);
18173 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
18175 if (ndr_flags & NDR_SCALARS) {
18176 NDR_CHECK(ndr_push_align(ndr, 4));
18177 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
18178 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
18179 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18181 if (ndr_flags & NDR_BUFFERS) {
18182 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18184 return NDR_ERR_SUCCESS;
18187 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
18189 if (ndr_flags & NDR_SCALARS) {
18190 NDR_CHECK(ndr_pull_align(ndr, 4));
18191 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
18192 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
18193 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18195 if (ndr_flags & NDR_BUFFERS) {
18196 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18198 return NDR_ERR_SUCCESS;
18201 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
18203 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
18205 ndr_print_uint32(ndr, "level", r->level);
18206 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
18207 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
18211 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18214 return NDR_ERR_SUCCESS;
18217 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18222 return NDR_ERR_SUCCESS;
18225 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
18227 ndr_print_uint32(ndr, name, r);
18229 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
18230 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
18231 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
18232 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
18233 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
18234 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
18238 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18240 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18241 return NDR_ERR_SUCCESS;
18244 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18247 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18249 return NDR_ERR_SUCCESS;
18252 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18254 ndr_print_uint32(ndr, name, r);
18256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
18257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
18258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
18262 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
18264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18265 return NDR_ERR_SUCCESS;
18268 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
18271 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18273 return NDR_ERR_SUCCESS;
18276 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
18278 const char *val = NULL;
18281 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
18282 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
18284 ndr_print_enum(ndr, name, "ENUM", val, r);
18287 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
18289 if (ndr_flags & NDR_SCALARS) {
18290 NDR_CHECK(ndr_push_align(ndr, 4));
18291 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18292 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
18293 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18296 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18297 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18299 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18300 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18301 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18302 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18307 if (ndr_flags & NDR_BUFFERS) {
18309 return NDR_ERR_SUCCESS;
18312 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
18314 if (ndr_flags & NDR_SCALARS) {
18315 NDR_CHECK(ndr_pull_align(ndr, 4));
18316 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18317 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18318 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18319 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18320 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18321 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18322 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18323 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18324 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18325 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18326 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18327 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18328 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18332 if (ndr_flags & NDR_BUFFERS) {
18334 return NDR_ERR_SUCCESS;
18337 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
18339 ndr_print_struct(ndr, name, "spoolss_PortData1");
18341 ndr_print_string(ndr, "portname", r->portname);
18342 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
18343 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18344 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18345 ndr_print_uint32(ndr, "reserved", r->reserved);
18346 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18347 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18348 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18349 ndr_print_string(ndr, "queue", r->queue);
18350 ndr_print_string(ndr, "ip_address", r->ip_address);
18351 ndr_print_string(ndr, "hardware_address", r->hardware_address);
18352 ndr_print_string(ndr, "device_type", r->device_type);
18353 ndr_print_uint32(ndr, "port_number", r->port_number);
18354 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18355 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18359 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
18361 if (ndr_flags & NDR_SCALARS) {
18362 NDR_CHECK(ndr_push_align(ndr, 4));
18363 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
18365 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18368 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18369 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18371 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18372 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
18378 if (ndr_flags & NDR_BUFFERS) {
18380 return NDR_ERR_SUCCESS;
18383 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
18385 if (ndr_flags & NDR_SCALARS) {
18386 NDR_CHECK(ndr_pull_align(ndr, 4));
18387 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18388 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18389 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18390 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18391 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18392 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18393 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18394 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18395 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18396 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18397 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18398 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18399 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18400 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
18402 if (ndr_flags & NDR_BUFFERS) {
18404 return NDR_ERR_SUCCESS;
18407 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
18409 ndr_print_struct(ndr, name, "spoolss_PortData2");
18411 ndr_print_string(ndr, "portname", r->portname);
18412 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
18413 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18414 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18415 ndr_print_uint32(ndr, "reserved", r->reserved);
18416 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18417 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18418 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18419 ndr_print_string(ndr, "queue", r->queue);
18420 ndr_print_string(ndr, "device_type", r->device_type);
18421 ndr_print_uint32(ndr, "port_number", r->port_number);
18422 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18423 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18424 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
18428 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
18430 if (ndr_flags & NDR_SCALARS) {
18431 NDR_CHECK(ndr_push_align(ndr, 4));
18433 uint32_t _flags_save_string = ndr->flags;
18434 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18435 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
18436 ndr->flags = _flags_save_string;
18439 if (ndr_flags & NDR_BUFFERS) {
18441 return NDR_ERR_SUCCESS;
18444 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
18446 if (ndr_flags & NDR_SCALARS) {
18447 NDR_CHECK(ndr_pull_align(ndr, 4));
18449 uint32_t _flags_save_string = ndr->flags;
18450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18451 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
18452 ndr->flags = _flags_save_string;
18455 if (ndr_flags & NDR_BUFFERS) {
18457 return NDR_ERR_SUCCESS;
18460 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
18462 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
18464 ndr_print_string(ndr, "dll_name", r->dll_name);
18468 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18471 return NDR_ERR_SUCCESS;
18474 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18477 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18479 return NDR_ERR_SUCCESS;
18482 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18484 ndr_print_uint32(ndr, name, r);
18486 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
18487 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
18488 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
18489 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
18490 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
18491 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
18492 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
18493 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
18497 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
18499 if (flags & NDR_IN) {
18500 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
18501 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
18502 if (r->in.server) {
18503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18504 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18506 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18509 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18510 if (r->in.buffer) {
18511 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18515 if (flags & NDR_OUT) {
18516 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18518 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18520 if (r->out.needed == NULL) {
18521 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18523 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18524 if (r->out.count == NULL) {
18525 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18528 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18530 return NDR_ERR_SUCCESS;
18533 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
18535 uint32_t _ptr_server;
18536 uint32_t _ptr_buffer;
18537 uint32_t _ptr_info;
18538 TALLOC_CTX *_mem_save_server_0;
18539 TALLOC_CTX *_mem_save_buffer_0;
18540 TALLOC_CTX *_mem_save_info_0;
18541 TALLOC_CTX *_mem_save_needed_0;
18542 TALLOC_CTX *_mem_save_count_0;
18543 if (flags & NDR_IN) {
18544 ZERO_STRUCT(r->out);
18546 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
18547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
18549 NDR_PULL_ALLOC(ndr, r->in.server);
18551 r->in.server = NULL;
18553 if (r->in.server) {
18554 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
18555 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
18556 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
18557 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
18558 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
18559 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));
18561 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
18562 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
18563 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
18565 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18566 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18568 NDR_PULL_ALLOC(ndr, r->in.buffer);
18570 r->in.buffer = NULL;
18572 if (r->in.buffer) {
18573 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18574 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18575 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18576 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18578 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18579 NDR_PULL_ALLOC(ndr, r->out.needed);
18580 ZERO_STRUCTP(r->out.needed);
18581 NDR_PULL_ALLOC(ndr, r->out.count);
18582 ZERO_STRUCTP(r->out.count);
18584 if (flags & NDR_OUT) {
18585 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18587 NDR_PULL_ALLOC(ndr, r->out.info);
18589 r->out.info = NULL;
18592 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18593 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18594 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18597 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18598 NDR_PULL_ALLOC(ndr, r->out.needed);
18600 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18601 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18602 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18604 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18605 NDR_PULL_ALLOC(ndr, r->out.count);
18607 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18608 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18611 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18613 return NDR_ERR_SUCCESS;
18616 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
18618 uint32_t cntr_info_0;
18619 if (flags & NDR_IN) {
18620 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18623 if (flags & NDR_OUT) {
18624 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18625 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18626 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18628 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18629 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18632 return NDR_ERR_SUCCESS;
18635 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
18637 uint32_t cntr_info_0;
18638 TALLOC_CTX *_mem_save_info_0;
18639 if (flags & NDR_IN) {
18640 ZERO_STRUCT(r->out);
18642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18643 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18645 if (flags & NDR_OUT) {
18646 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18647 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18648 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18649 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18650 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18651 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18653 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18654 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18656 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18658 return NDR_ERR_SUCCESS;
18661 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
18663 uint32_t cntr_info_2;
18664 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
18666 if (flags & NDR_SET_VALUES) {
18667 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18669 if (flags & NDR_IN) {
18670 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
18672 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
18673 ndr_print_ptr(ndr, "server", r->in.server);
18675 if (r->in.server) {
18676 ndr_print_string(ndr, "server", r->in.server);
18679 ndr_print_uint32(ndr, "level", r->in.level);
18680 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18682 if (r->in.buffer) {
18683 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18686 ndr_print_uint32(ndr, "offered", r->in.offered);
18689 if (flags & NDR_OUT) {
18690 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
18692 ndr_print_ptr(ndr, "count", r->out.count);
18694 ndr_print_uint32(ndr, "count", *r->out.count);
18696 ndr_print_ptr(ndr, "info", r->out.info);
18698 ndr_print_ptr(ndr, "info", *r->out.info);
18700 if (*r->out.info) {
18701 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18703 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
18705 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
18706 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
18707 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
18715 ndr_print_ptr(ndr, "needed", r->out.needed);
18717 ndr_print_uint32(ndr, "needed", *r->out.needed);
18719 ndr_print_WERROR(ndr, "result", r->out.result);
18725 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
18727 if (flags & NDR_IN) {
18728 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
18729 if (r->in.printername) {
18730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18733 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18735 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
18736 if (r->in.datatype) {
18737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18740 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18742 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18743 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
18745 if (flags & NDR_OUT) {
18746 if (r->out.handle == NULL) {
18747 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18749 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18750 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18752 return NDR_ERR_SUCCESS;
18755 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
18757 uint32_t _ptr_printername;
18758 uint32_t _ptr_datatype;
18759 TALLOC_CTX *_mem_save_printername_0;
18760 TALLOC_CTX *_mem_save_datatype_0;
18761 TALLOC_CTX *_mem_save_handle_0;
18762 if (flags & NDR_IN) {
18763 ZERO_STRUCT(r->out);
18765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
18766 if (_ptr_printername) {
18767 NDR_PULL_ALLOC(ndr, r->in.printername);
18769 r->in.printername = NULL;
18771 if (r->in.printername) {
18772 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18773 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
18774 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
18775 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
18776 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
18777 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));
18779 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
18780 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
18781 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
18783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
18784 if (_ptr_datatype) {
18785 NDR_PULL_ALLOC(ndr, r->in.datatype);
18787 r->in.datatype = NULL;
18789 if (r->in.datatype) {
18790 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
18791 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
18792 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
18793 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
18794 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
18795 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));
18797 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
18798 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
18799 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
18801 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18802 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
18803 NDR_PULL_ALLOC(ndr, r->out.handle);
18804 ZERO_STRUCTP(r->out.handle);
18806 if (flags & NDR_OUT) {
18807 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18808 NDR_PULL_ALLOC(ndr, r->out.handle);
18810 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18811 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
18812 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18814 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18816 return NDR_ERR_SUCCESS;
18819 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
18821 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
18823 if (flags & NDR_SET_VALUES) {
18824 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18826 if (flags & NDR_IN) {
18827 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
18829 ndr_print_ptr(ndr, "printername", r->in.printername);
18831 if (r->in.printername) {
18832 ndr_print_string(ndr, "printername", r->in.printername);
18835 ndr_print_ptr(ndr, "datatype", r->in.datatype);
18837 if (r->in.datatype) {
18838 ndr_print_string(ndr, "datatype", r->in.datatype);
18841 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
18842 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
18845 if (flags & NDR_OUT) {
18846 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
18848 ndr_print_ptr(ndr, "handle", r->out.handle);
18850 ndr_print_policy_handle(ndr, "handle", r->out.handle);
18852 ndr_print_WERROR(ndr, "result", r->out.result);
18858 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
18860 if (flags & NDR_IN) {
18861 if (r->in.handle == NULL) {
18862 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18864 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
18866 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
18868 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
18870 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
18872 if (flags & NDR_OUT) {
18873 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18875 return NDR_ERR_SUCCESS;
18878 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
18881 TALLOC_CTX *_mem_save_handle_0;
18882 TALLOC_CTX *_mem_save_ctr_0;
18883 if (flags & NDR_IN) {
18884 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18885 NDR_PULL_ALLOC(ndr, r->in.handle);
18887 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18888 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18889 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18891 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
18892 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
18894 NDR_PULL_ALLOC(ndr, r->in.ctr);
18899 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
18900 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
18901 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
18902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
18904 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
18906 if (flags & NDR_OUT) {
18907 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18909 return NDR_ERR_SUCCESS;
18912 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
18914 ndr_print_struct(ndr, name, "spoolss_SetJob");
18916 if (flags & NDR_SET_VALUES) {
18917 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18919 if (flags & NDR_IN) {
18920 ndr_print_struct(ndr, "in", "spoolss_SetJob");
18922 ndr_print_ptr(ndr, "handle", r->in.handle);
18924 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18926 ndr_print_uint32(ndr, "job_id", r->in.job_id);
18927 ndr_print_ptr(ndr, "ctr", r->in.ctr);
18930 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
18933 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
18936 if (flags & NDR_OUT) {
18937 ndr_print_struct(ndr, "out", "spoolss_SetJob");
18939 ndr_print_WERROR(ndr, "result", r->out.result);
18945 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
18947 if (flags & NDR_IN) {
18948 if (r->in.handle == NULL) {
18949 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18951 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18952 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
18953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18954 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18955 if (r->in.buffer) {
18956 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18960 if (flags & NDR_OUT) {
18961 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18964 struct ndr_push *_ndr_info;
18965 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18966 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
18967 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18968 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18971 if (r->out.needed == NULL) {
18972 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18975 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18977 return NDR_ERR_SUCCESS;
18980 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
18982 uint32_t _ptr_buffer;
18983 uint32_t _ptr_info;
18984 TALLOC_CTX *_mem_save_handle_0;
18985 TALLOC_CTX *_mem_save_buffer_0;
18986 TALLOC_CTX *_mem_save_info_0;
18987 TALLOC_CTX *_mem_save_needed_0;
18988 if (flags & NDR_IN) {
18989 ZERO_STRUCT(r->out);
18991 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18992 NDR_PULL_ALLOC(ndr, r->in.handle);
18994 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18995 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18996 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18998 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
18999 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19000 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19002 NDR_PULL_ALLOC(ndr, r->in.buffer);
19004 r->in.buffer = NULL;
19006 if (r->in.buffer) {
19007 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19008 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19009 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19012 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19013 NDR_PULL_ALLOC(ndr, r->out.needed);
19014 ZERO_STRUCTP(r->out.needed);
19016 if (flags & NDR_OUT) {
19017 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19019 NDR_PULL_ALLOC(ndr, r->out.info);
19021 r->out.info = NULL;
19024 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19025 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19027 struct ndr_pull *_ndr_info;
19028 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19029 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19030 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19031 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19035 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19036 NDR_PULL_ALLOC(ndr, r->out.needed);
19038 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19039 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19040 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19042 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19044 return NDR_ERR_SUCCESS;
19047 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
19049 ndr_print_struct(ndr, name, "spoolss_GetJob");
19051 if (flags & NDR_SET_VALUES) {
19052 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19054 if (flags & NDR_IN) {
19055 ndr_print_struct(ndr, "in", "spoolss_GetJob");
19057 ndr_print_ptr(ndr, "handle", r->in.handle);
19059 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19061 ndr_print_uint32(ndr, "job_id", r->in.job_id);
19062 ndr_print_uint32(ndr, "level", r->in.level);
19063 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19065 if (r->in.buffer) {
19066 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19069 ndr_print_uint32(ndr, "offered", r->in.offered);
19072 if (flags & NDR_OUT) {
19073 ndr_print_struct(ndr, "out", "spoolss_GetJob");
19075 ndr_print_ptr(ndr, "info", r->out.info);
19078 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19079 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
19082 ndr_print_ptr(ndr, "needed", r->out.needed);
19084 ndr_print_uint32(ndr, "needed", *r->out.needed);
19086 ndr_print_WERROR(ndr, "result", r->out.result);
19092 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
19094 if (flags & NDR_IN) {
19095 if (r->in.handle == NULL) {
19096 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19098 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
19100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
19101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19102 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19103 if (r->in.buffer) {
19104 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19108 if (flags & NDR_OUT) {
19109 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19111 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19113 if (r->out.needed == NULL) {
19114 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19117 if (r->out.count == NULL) {
19118 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19120 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19121 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19123 return NDR_ERR_SUCCESS;
19126 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
19128 uint32_t _ptr_buffer;
19129 uint32_t _ptr_info;
19130 TALLOC_CTX *_mem_save_handle_0;
19131 TALLOC_CTX *_mem_save_buffer_0;
19132 TALLOC_CTX *_mem_save_info_0;
19133 TALLOC_CTX *_mem_save_needed_0;
19134 TALLOC_CTX *_mem_save_count_0;
19135 if (flags & NDR_IN) {
19136 ZERO_STRUCT(r->out);
19138 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19139 NDR_PULL_ALLOC(ndr, r->in.handle);
19141 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19142 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19143 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19144 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19145 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
19146 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
19147 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19148 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19150 NDR_PULL_ALLOC(ndr, r->in.buffer);
19152 r->in.buffer = NULL;
19154 if (r->in.buffer) {
19155 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19156 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19157 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19158 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19160 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19161 NDR_PULL_ALLOC(ndr, r->out.needed);
19162 ZERO_STRUCTP(r->out.needed);
19163 NDR_PULL_ALLOC(ndr, r->out.count);
19164 ZERO_STRUCTP(r->out.count);
19166 if (flags & NDR_OUT) {
19167 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19169 NDR_PULL_ALLOC(ndr, r->out.info);
19171 r->out.info = NULL;
19174 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19175 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19176 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19177 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19179 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19180 NDR_PULL_ALLOC(ndr, r->out.needed);
19182 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19183 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19185 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19186 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19187 NDR_PULL_ALLOC(ndr, r->out.count);
19189 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19190 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19191 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19193 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19195 return NDR_ERR_SUCCESS;
19198 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
19200 uint32_t cntr_info_0;
19201 if (flags & NDR_IN) {
19202 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19205 if (flags & NDR_OUT) {
19206 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19207 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19208 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19210 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19211 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19214 return NDR_ERR_SUCCESS;
19217 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
19219 uint32_t cntr_info_0;
19220 TALLOC_CTX *_mem_save_info_0;
19221 if (flags & NDR_IN) {
19222 ZERO_STRUCT(r->out);
19224 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19225 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19227 if (flags & NDR_OUT) {
19228 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19229 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19230 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19231 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19232 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19233 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19235 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19236 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19240 return NDR_ERR_SUCCESS;
19243 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
19245 uint32_t cntr_info_2;
19246 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
19248 if (flags & NDR_SET_VALUES) {
19249 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19251 if (flags & NDR_IN) {
19252 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
19254 ndr_print_ptr(ndr, "handle", r->in.handle);
19256 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19258 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
19259 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
19260 ndr_print_uint32(ndr, "level", r->in.level);
19261 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19263 if (r->in.buffer) {
19264 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19267 ndr_print_uint32(ndr, "offered", r->in.offered);
19270 if (flags & NDR_OUT) {
19271 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
19273 ndr_print_ptr(ndr, "count", r->out.count);
19275 ndr_print_uint32(ndr, "count", *r->out.count);
19277 ndr_print_ptr(ndr, "info", r->out.info);
19279 ndr_print_ptr(ndr, "info", *r->out.info);
19281 if (*r->out.info) {
19282 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19284 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19286 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19287 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19288 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19296 ndr_print_ptr(ndr, "needed", r->out.needed);
19298 ndr_print_uint32(ndr, "needed", *r->out.needed);
19300 ndr_print_WERROR(ndr, "result", r->out.result);
19306 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
19308 if (flags & NDR_IN) {
19310 if (flags & NDR_OUT) {
19311 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19313 return NDR_ERR_SUCCESS;
19316 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
19318 if (flags & NDR_IN) {
19320 if (flags & NDR_OUT) {
19321 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19323 return NDR_ERR_SUCCESS;
19326 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
19328 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
19330 if (flags & NDR_SET_VALUES) {
19331 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19333 if (flags & NDR_IN) {
19334 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
19338 if (flags & NDR_OUT) {
19339 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
19341 ndr_print_WERROR(ndr, "result", r->out.result);
19347 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
19349 if (flags & NDR_IN) {
19350 if (r->in.handle == NULL) {
19351 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19353 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19355 if (flags & NDR_OUT) {
19356 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19358 return NDR_ERR_SUCCESS;
19361 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
19363 TALLOC_CTX *_mem_save_handle_0;
19364 if (flags & NDR_IN) {
19365 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19366 NDR_PULL_ALLOC(ndr, r->in.handle);
19368 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19369 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19370 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19373 if (flags & NDR_OUT) {
19374 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19376 return NDR_ERR_SUCCESS;
19379 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
19381 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
19383 if (flags & NDR_SET_VALUES) {
19384 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19386 if (flags & NDR_IN) {
19387 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
19389 ndr_print_ptr(ndr, "handle", r->in.handle);
19391 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19395 if (flags & NDR_OUT) {
19396 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
19398 ndr_print_WERROR(ndr, "result", r->out.result);
19404 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
19406 if (flags & NDR_IN) {
19407 if (r->in.handle == NULL) {
19408 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19410 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19411 if (r->in.info_ctr == NULL) {
19412 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19414 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19415 if (r->in.devmode_ctr == NULL) {
19416 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19418 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19419 if (r->in.secdesc_ctr == NULL) {
19420 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19422 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19423 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
19425 if (flags & NDR_OUT) {
19426 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19428 return NDR_ERR_SUCCESS;
19431 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
19433 TALLOC_CTX *_mem_save_handle_0;
19434 TALLOC_CTX *_mem_save_info_ctr_0;
19435 TALLOC_CTX *_mem_save_devmode_ctr_0;
19436 TALLOC_CTX *_mem_save_secdesc_ctr_0;
19437 if (flags & NDR_IN) {
19438 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19439 NDR_PULL_ALLOC(ndr, r->in.handle);
19441 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19442 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19443 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19445 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19446 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19448 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19449 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19450 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19452 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19453 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
19455 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19456 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
19457 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19459 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19460 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
19462 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19463 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
19464 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19465 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19466 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
19468 if (flags & NDR_OUT) {
19469 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19471 return NDR_ERR_SUCCESS;
19474 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
19476 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
19478 if (flags & NDR_SET_VALUES) {
19479 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19481 if (flags & NDR_IN) {
19482 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
19484 ndr_print_ptr(ndr, "handle", r->in.handle);
19486 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19488 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19490 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
19492 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
19494 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
19496 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19498 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19500 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
19503 if (flags & NDR_OUT) {
19504 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
19506 ndr_print_WERROR(ndr, "result", r->out.result);
19512 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
19514 if (flags & NDR_IN) {
19515 if (r->in.handle == NULL) {
19516 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19518 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19520 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19521 if (r->in.buffer) {
19522 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19526 if (flags & NDR_OUT) {
19527 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19530 struct ndr_push *_ndr_info;
19531 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19532 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19533 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19534 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19537 if (r->out.needed == NULL) {
19538 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19541 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19543 return NDR_ERR_SUCCESS;
19546 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
19548 uint32_t _ptr_buffer;
19549 uint32_t _ptr_info;
19550 TALLOC_CTX *_mem_save_handle_0;
19551 TALLOC_CTX *_mem_save_buffer_0;
19552 TALLOC_CTX *_mem_save_info_0;
19553 TALLOC_CTX *_mem_save_needed_0;
19554 if (flags & NDR_IN) {
19555 ZERO_STRUCT(r->out);
19557 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19558 NDR_PULL_ALLOC(ndr, r->in.handle);
19560 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19561 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19562 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19563 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19565 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19567 NDR_PULL_ALLOC(ndr, r->in.buffer);
19569 r->in.buffer = NULL;
19571 if (r->in.buffer) {
19572 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19573 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19574 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19575 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19577 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19578 NDR_PULL_ALLOC(ndr, r->out.needed);
19579 ZERO_STRUCTP(r->out.needed);
19581 if (flags & NDR_OUT) {
19582 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19584 NDR_PULL_ALLOC(ndr, r->out.info);
19586 r->out.info = NULL;
19589 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19590 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19592 struct ndr_pull *_ndr_info;
19593 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19594 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19595 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19596 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19600 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19601 NDR_PULL_ALLOC(ndr, r->out.needed);
19603 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19604 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19605 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19606 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19607 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19609 return NDR_ERR_SUCCESS;
19612 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
19614 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
19616 if (flags & NDR_SET_VALUES) {
19617 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19619 if (flags & NDR_IN) {
19620 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
19622 ndr_print_ptr(ndr, "handle", r->in.handle);
19624 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19626 ndr_print_uint32(ndr, "level", r->in.level);
19627 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19629 if (r->in.buffer) {
19630 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19633 ndr_print_uint32(ndr, "offered", r->in.offered);
19636 if (flags & NDR_OUT) {
19637 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
19639 ndr_print_ptr(ndr, "info", r->out.info);
19642 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19643 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
19646 ndr_print_ptr(ndr, "needed", r->out.needed);
19648 ndr_print_uint32(ndr, "needed", *r->out.needed);
19650 ndr_print_WERROR(ndr, "result", r->out.result);
19656 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
19658 if (flags & NDR_IN) {
19659 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
19660 if (r->in.servername) {
19661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19664 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19666 if (r->in.info_ctr == NULL) {
19667 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19669 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19671 if (flags & NDR_OUT) {
19672 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19674 return NDR_ERR_SUCCESS;
19677 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
19679 uint32_t _ptr_servername;
19680 TALLOC_CTX *_mem_save_servername_0;
19681 TALLOC_CTX *_mem_save_info_ctr_0;
19682 if (flags & NDR_IN) {
19683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
19684 if (_ptr_servername) {
19685 NDR_PULL_ALLOC(ndr, r->in.servername);
19687 r->in.servername = NULL;
19689 if (r->in.servername) {
19690 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19691 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
19692 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
19693 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
19694 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
19695 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));
19697 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
19698 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
19699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
19701 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19702 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19704 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19705 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19706 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19707 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19709 if (flags & NDR_OUT) {
19710 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19712 return NDR_ERR_SUCCESS;
19715 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
19717 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
19719 if (flags & NDR_SET_VALUES) {
19720 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19722 if (flags & NDR_IN) {
19723 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
19725 ndr_print_ptr(ndr, "servername", r->in.servername);
19727 if (r->in.servername) {
19728 ndr_print_string(ndr, "servername", r->in.servername);
19731 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19733 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
19737 if (flags & NDR_OUT) {
19738 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
19740 ndr_print_WERROR(ndr, "result", r->out.result);
19746 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
19748 if (flags & NDR_IN) {
19749 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19750 if (r->in.server) {
19751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19754 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19756 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
19757 if (r->in.environment) {
19758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19761 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19764 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19765 if (r->in.buffer) {
19766 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19770 if (flags & NDR_OUT) {
19771 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19773 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19775 if (r->out.needed == NULL) {
19776 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19779 if (r->out.count == NULL) {
19780 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19783 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19785 return NDR_ERR_SUCCESS;
19788 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
19790 uint32_t _ptr_server;
19791 uint32_t _ptr_environment;
19792 uint32_t _ptr_buffer;
19793 uint32_t _ptr_info;
19794 TALLOC_CTX *_mem_save_server_0;
19795 TALLOC_CTX *_mem_save_environment_0;
19796 TALLOC_CTX *_mem_save_buffer_0;
19797 TALLOC_CTX *_mem_save_info_0;
19798 TALLOC_CTX *_mem_save_needed_0;
19799 TALLOC_CTX *_mem_save_count_0;
19800 if (flags & NDR_IN) {
19801 ZERO_STRUCT(r->out);
19803 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19805 NDR_PULL_ALLOC(ndr, r->in.server);
19807 r->in.server = NULL;
19809 if (r->in.server) {
19810 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19811 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19812 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19813 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19814 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19815 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));
19817 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19818 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19819 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
19822 if (_ptr_environment) {
19823 NDR_PULL_ALLOC(ndr, r->in.environment);
19825 r->in.environment = NULL;
19827 if (r->in.environment) {
19828 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
19829 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
19830 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
19831 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
19832 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
19833 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));
19835 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
19836 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
19837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
19839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19842 NDR_PULL_ALLOC(ndr, r->in.buffer);
19844 r->in.buffer = NULL;
19846 if (r->in.buffer) {
19847 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19848 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19849 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19852 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19853 NDR_PULL_ALLOC(ndr, r->out.needed);
19854 ZERO_STRUCTP(r->out.needed);
19855 NDR_PULL_ALLOC(ndr, r->out.count);
19856 ZERO_STRUCTP(r->out.count);
19858 if (flags & NDR_OUT) {
19859 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19861 NDR_PULL_ALLOC(ndr, r->out.info);
19863 r->out.info = NULL;
19866 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19867 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19868 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19869 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19871 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19872 NDR_PULL_ALLOC(ndr, r->out.needed);
19874 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19875 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19876 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19878 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19879 NDR_PULL_ALLOC(ndr, r->out.count);
19881 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19882 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19883 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19885 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19887 return NDR_ERR_SUCCESS;
19890 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
19892 uint32_t cntr_info_0;
19893 if (flags & NDR_IN) {
19894 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19895 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19897 if (flags & NDR_OUT) {
19898 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19899 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19900 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19902 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19903 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19906 return NDR_ERR_SUCCESS;
19909 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
19911 uint32_t cntr_info_0;
19912 TALLOC_CTX *_mem_save_info_0;
19913 if (flags & NDR_IN) {
19914 ZERO_STRUCT(r->out);
19916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19917 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19919 if (flags & NDR_OUT) {
19920 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19921 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19922 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19923 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19924 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19925 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19927 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19928 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19932 return NDR_ERR_SUCCESS;
19935 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
19937 uint32_t cntr_info_2;
19938 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
19940 if (flags & NDR_SET_VALUES) {
19941 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19943 if (flags & NDR_IN) {
19944 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
19946 ndr_print_ptr(ndr, "server", r->in.server);
19948 if (r->in.server) {
19949 ndr_print_string(ndr, "server", r->in.server);
19952 ndr_print_ptr(ndr, "environment", r->in.environment);
19954 if (r->in.environment) {
19955 ndr_print_string(ndr, "environment", r->in.environment);
19958 ndr_print_uint32(ndr, "level", r->in.level);
19959 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19961 if (r->in.buffer) {
19962 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19965 ndr_print_uint32(ndr, "offered", r->in.offered);
19968 if (flags & NDR_OUT) {
19969 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
19971 ndr_print_ptr(ndr, "count", r->out.count);
19973 ndr_print_uint32(ndr, "count", *r->out.count);
19975 ndr_print_ptr(ndr, "info", r->out.info);
19977 ndr_print_ptr(ndr, "info", *r->out.info);
19979 if (*r->out.info) {
19980 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19982 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19984 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19985 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19986 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19994 ndr_print_ptr(ndr, "needed", r->out.needed);
19996 ndr_print_uint32(ndr, "needed", *r->out.needed);
19998 ndr_print_WERROR(ndr, "result", r->out.result);
20004 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
20006 if (flags & NDR_IN) {
20008 if (flags & NDR_OUT) {
20009 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20011 return NDR_ERR_SUCCESS;
20014 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
20016 if (flags & NDR_IN) {
20018 if (flags & NDR_OUT) {
20019 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20021 return NDR_ERR_SUCCESS;
20024 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
20026 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
20028 if (flags & NDR_SET_VALUES) {
20029 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20031 if (flags & NDR_IN) {
20032 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
20036 if (flags & NDR_OUT) {
20037 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
20039 ndr_print_WERROR(ndr, "result", r->out.result);
20045 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
20047 if (flags & NDR_IN) {
20048 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20049 if (r->in.server) {
20050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20053 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20055 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20056 if (r->in.environment) {
20057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20060 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20063 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20064 if (r->in.buffer) {
20065 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20069 if (flags & NDR_OUT) {
20070 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20073 struct ndr_push *_ndr_info;
20074 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20075 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20076 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20077 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20080 if (r->out.needed == NULL) {
20081 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20084 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20086 return NDR_ERR_SUCCESS;
20089 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
20091 uint32_t _ptr_server;
20092 uint32_t _ptr_environment;
20093 uint32_t _ptr_buffer;
20094 uint32_t _ptr_info;
20095 TALLOC_CTX *_mem_save_server_0;
20096 TALLOC_CTX *_mem_save_environment_0;
20097 TALLOC_CTX *_mem_save_buffer_0;
20098 TALLOC_CTX *_mem_save_info_0;
20099 TALLOC_CTX *_mem_save_needed_0;
20100 if (flags & NDR_IN) {
20101 ZERO_STRUCT(r->out);
20103 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20105 NDR_PULL_ALLOC(ndr, r->in.server);
20107 r->in.server = NULL;
20109 if (r->in.server) {
20110 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20111 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20112 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20113 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20114 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20115 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));
20117 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20118 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20121 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20122 if (_ptr_environment) {
20123 NDR_PULL_ALLOC(ndr, r->in.environment);
20125 r->in.environment = NULL;
20127 if (r->in.environment) {
20128 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20129 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20130 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20131 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20132 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20133 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));
20135 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20136 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20139 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20140 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20142 NDR_PULL_ALLOC(ndr, r->in.buffer);
20144 r->in.buffer = NULL;
20146 if (r->in.buffer) {
20147 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20148 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20149 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20153 NDR_PULL_ALLOC(ndr, r->out.needed);
20154 ZERO_STRUCTP(r->out.needed);
20156 if (flags & NDR_OUT) {
20157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20159 NDR_PULL_ALLOC(ndr, r->out.info);
20161 r->out.info = NULL;
20164 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20165 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20167 struct ndr_pull *_ndr_info;
20168 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20169 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20170 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20171 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20175 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20176 NDR_PULL_ALLOC(ndr, r->out.needed);
20178 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20179 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20180 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20181 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20182 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20184 return NDR_ERR_SUCCESS;
20187 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
20189 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
20191 if (flags & NDR_SET_VALUES) {
20192 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20194 if (flags & NDR_IN) {
20195 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
20197 ndr_print_ptr(ndr, "server", r->in.server);
20199 if (r->in.server) {
20200 ndr_print_string(ndr, "server", r->in.server);
20203 ndr_print_ptr(ndr, "environment", r->in.environment);
20205 if (r->in.environment) {
20206 ndr_print_string(ndr, "environment", r->in.environment);
20209 ndr_print_uint32(ndr, "level", r->in.level);
20210 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20212 if (r->in.buffer) {
20213 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20216 ndr_print_uint32(ndr, "offered", r->in.offered);
20219 if (flags & NDR_OUT) {
20220 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
20222 ndr_print_ptr(ndr, "info", r->out.info);
20225 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20226 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
20229 ndr_print_ptr(ndr, "needed", r->out.needed);
20231 ndr_print_uint32(ndr, "needed", *r->out.needed);
20233 ndr_print_WERROR(ndr, "result", r->out.result);
20239 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
20241 if (flags & NDR_IN) {
20242 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20243 if (r->in.server) {
20244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20247 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20252 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20256 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20258 if (flags & NDR_OUT) {
20259 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20261 return NDR_ERR_SUCCESS;
20264 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
20266 uint32_t _ptr_server;
20267 TALLOC_CTX *_mem_save_server_0;
20268 if (flags & NDR_IN) {
20269 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20271 NDR_PULL_ALLOC(ndr, r->in.server);
20273 r->in.server = NULL;
20275 if (r->in.server) {
20276 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20277 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20278 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20279 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20280 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20281 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));
20283 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20284 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20285 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20287 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20288 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20289 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20290 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));
20292 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20293 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20294 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
20295 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
20296 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
20297 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));
20299 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
20300 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
20302 if (flags & NDR_OUT) {
20303 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20305 return NDR_ERR_SUCCESS;
20308 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
20310 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
20312 if (flags & NDR_SET_VALUES) {
20313 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20315 if (flags & NDR_IN) {
20316 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
20318 ndr_print_ptr(ndr, "server", r->in.server);
20320 if (r->in.server) {
20321 ndr_print_string(ndr, "server", r->in.server);
20324 ndr_print_string(ndr, "architecture", r->in.architecture);
20325 ndr_print_string(ndr, "driver", r->in.driver);
20328 if (flags & NDR_OUT) {
20329 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
20331 ndr_print_WERROR(ndr, "result", r->out.result);
20337 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
20339 if (flags & NDR_IN) {
20340 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20341 if (r->in.server) {
20342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20345 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20350 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20354 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));
20355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20358 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));
20360 if (flags & NDR_OUT) {
20361 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20363 return NDR_ERR_SUCCESS;
20366 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
20368 uint32_t _ptr_server;
20369 TALLOC_CTX *_mem_save_server_0;
20370 if (flags & NDR_IN) {
20371 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20373 NDR_PULL_ALLOC(ndr, r->in.server);
20375 r->in.server = NULL;
20377 if (r->in.server) {
20378 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20379 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20380 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20381 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20382 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20383 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));
20385 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20386 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20389 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20390 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20391 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20392 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));
20394 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20395 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20396 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
20397 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
20398 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
20399 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));
20401 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
20402 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));
20403 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
20404 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
20405 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
20406 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));
20408 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
20409 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));
20411 if (flags & NDR_OUT) {
20412 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20414 return NDR_ERR_SUCCESS;
20417 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
20419 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
20421 if (flags & NDR_SET_VALUES) {
20422 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20424 if (flags & NDR_IN) {
20425 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
20427 ndr_print_ptr(ndr, "server", r->in.server);
20429 if (r->in.server) {
20430 ndr_print_string(ndr, "server", r->in.server);
20433 ndr_print_string(ndr, "architecture", r->in.architecture);
20434 ndr_print_string(ndr, "path_name", r->in.path_name);
20435 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
20438 if (flags & NDR_OUT) {
20439 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
20441 ndr_print_WERROR(ndr, "result", r->out.result);
20447 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
20449 if (flags & NDR_IN) {
20450 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
20451 if (r->in.servername) {
20452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20455 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20457 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20458 if (r->in.environment) {
20459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20462 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20465 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20466 if (r->in.buffer) {
20467 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20471 if (flags & NDR_OUT) {
20472 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20474 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20476 if (r->out.needed == NULL) {
20477 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20479 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20480 if (r->out.count == NULL) {
20481 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20484 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20486 return NDR_ERR_SUCCESS;
20489 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
20491 uint32_t _ptr_servername;
20492 uint32_t _ptr_environment;
20493 uint32_t _ptr_buffer;
20494 uint32_t _ptr_info;
20495 TALLOC_CTX *_mem_save_servername_0;
20496 TALLOC_CTX *_mem_save_environment_0;
20497 TALLOC_CTX *_mem_save_buffer_0;
20498 TALLOC_CTX *_mem_save_info_0;
20499 TALLOC_CTX *_mem_save_needed_0;
20500 TALLOC_CTX *_mem_save_count_0;
20501 if (flags & NDR_IN) {
20502 ZERO_STRUCT(r->out);
20504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
20505 if (_ptr_servername) {
20506 NDR_PULL_ALLOC(ndr, r->in.servername);
20508 r->in.servername = NULL;
20510 if (r->in.servername) {
20511 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20512 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
20513 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20514 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20515 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
20516 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));
20518 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
20519 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
20520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
20522 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20523 if (_ptr_environment) {
20524 NDR_PULL_ALLOC(ndr, r->in.environment);
20526 r->in.environment = NULL;
20528 if (r->in.environment) {
20529 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20530 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20531 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20532 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20533 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20534 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));
20536 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20537 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20538 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20540 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20541 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20543 NDR_PULL_ALLOC(ndr, r->in.buffer);
20545 r->in.buffer = NULL;
20547 if (r->in.buffer) {
20548 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20549 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20550 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20551 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20553 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20554 NDR_PULL_ALLOC(ndr, r->out.needed);
20555 ZERO_STRUCTP(r->out.needed);
20556 NDR_PULL_ALLOC(ndr, r->out.count);
20557 ZERO_STRUCTP(r->out.count);
20559 if (flags & NDR_OUT) {
20560 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20562 NDR_PULL_ALLOC(ndr, r->out.info);
20564 r->out.info = NULL;
20567 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20568 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20569 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20570 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20572 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20573 NDR_PULL_ALLOC(ndr, r->out.needed);
20575 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20576 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20577 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20579 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20580 NDR_PULL_ALLOC(ndr, r->out.count);
20582 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20583 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20584 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20586 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20588 return NDR_ERR_SUCCESS;
20591 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
20593 uint32_t cntr_info_0;
20594 if (flags & NDR_IN) {
20595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20598 if (flags & NDR_OUT) {
20599 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20600 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20601 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20603 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20604 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20607 return NDR_ERR_SUCCESS;
20610 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
20612 uint32_t cntr_info_0;
20613 TALLOC_CTX *_mem_save_info_0;
20614 if (flags & NDR_IN) {
20615 ZERO_STRUCT(r->out);
20617 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20618 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20620 if (flags & NDR_OUT) {
20621 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20622 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20623 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20624 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20625 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20626 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20628 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20629 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20631 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20633 return NDR_ERR_SUCCESS;
20636 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
20638 uint32_t cntr_info_2;
20639 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
20641 if (flags & NDR_SET_VALUES) {
20642 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20644 if (flags & NDR_IN) {
20645 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
20647 ndr_print_ptr(ndr, "servername", r->in.servername);
20649 if (r->in.servername) {
20650 ndr_print_string(ndr, "servername", r->in.servername);
20653 ndr_print_ptr(ndr, "environment", r->in.environment);
20655 if (r->in.environment) {
20656 ndr_print_string(ndr, "environment", r->in.environment);
20659 ndr_print_uint32(ndr, "level", r->in.level);
20660 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20662 if (r->in.buffer) {
20663 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20666 ndr_print_uint32(ndr, "offered", r->in.offered);
20669 if (flags & NDR_OUT) {
20670 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
20672 ndr_print_ptr(ndr, "count", r->out.count);
20674 ndr_print_uint32(ndr, "count", *r->out.count);
20676 ndr_print_ptr(ndr, "info", r->out.info);
20678 ndr_print_ptr(ndr, "info", *r->out.info);
20680 if (*r->out.info) {
20681 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20683 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20685 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20686 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20687 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20695 ndr_print_ptr(ndr, "needed", r->out.needed);
20697 ndr_print_uint32(ndr, "needed", *r->out.needed);
20699 ndr_print_WERROR(ndr, "result", r->out.result);
20705 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
20707 if (flags & NDR_IN) {
20708 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20709 if (r->in.server) {
20710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20713 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20715 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20716 if (r->in.environment) {
20717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20720 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20723 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20724 if (r->in.buffer) {
20725 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20729 if (flags & NDR_OUT) {
20730 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20733 struct ndr_push *_ndr_info;
20734 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20735 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20736 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20737 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20740 if (r->out.needed == NULL) {
20741 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20744 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20746 return NDR_ERR_SUCCESS;
20749 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
20751 uint32_t _ptr_server;
20752 uint32_t _ptr_environment;
20753 uint32_t _ptr_buffer;
20754 uint32_t _ptr_info;
20755 TALLOC_CTX *_mem_save_server_0;
20756 TALLOC_CTX *_mem_save_environment_0;
20757 TALLOC_CTX *_mem_save_buffer_0;
20758 TALLOC_CTX *_mem_save_info_0;
20759 TALLOC_CTX *_mem_save_needed_0;
20760 if (flags & NDR_IN) {
20761 ZERO_STRUCT(r->out);
20763 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20765 NDR_PULL_ALLOC(ndr, r->in.server);
20767 r->in.server = NULL;
20769 if (r->in.server) {
20770 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20771 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20772 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20773 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20774 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20775 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));
20777 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20778 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20781 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20782 if (_ptr_environment) {
20783 NDR_PULL_ALLOC(ndr, r->in.environment);
20785 r->in.environment = NULL;
20787 if (r->in.environment) {
20788 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20789 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20790 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20791 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20792 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20793 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));
20795 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20796 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20799 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20802 NDR_PULL_ALLOC(ndr, r->in.buffer);
20804 r->in.buffer = NULL;
20806 if (r->in.buffer) {
20807 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20808 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20809 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20813 NDR_PULL_ALLOC(ndr, r->out.needed);
20814 ZERO_STRUCTP(r->out.needed);
20816 if (flags & NDR_OUT) {
20817 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20819 NDR_PULL_ALLOC(ndr, r->out.info);
20821 r->out.info = NULL;
20824 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20825 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20827 struct ndr_pull *_ndr_info;
20828 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20829 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20830 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20831 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20833 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20835 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20836 NDR_PULL_ALLOC(ndr, r->out.needed);
20838 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20839 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20840 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20841 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20842 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20844 return NDR_ERR_SUCCESS;
20847 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
20849 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
20851 if (flags & NDR_SET_VALUES) {
20852 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20854 if (flags & NDR_IN) {
20855 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
20857 ndr_print_ptr(ndr, "server", r->in.server);
20859 if (r->in.server) {
20860 ndr_print_string(ndr, "server", r->in.server);
20863 ndr_print_ptr(ndr, "environment", r->in.environment);
20865 if (r->in.environment) {
20866 ndr_print_string(ndr, "environment", r->in.environment);
20869 ndr_print_uint32(ndr, "level", r->in.level);
20870 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20872 if (r->in.buffer) {
20873 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20876 ndr_print_uint32(ndr, "offered", r->in.offered);
20879 if (flags & NDR_OUT) {
20880 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
20882 ndr_print_ptr(ndr, "info", r->out.info);
20885 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20886 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
20889 ndr_print_ptr(ndr, "needed", r->out.needed);
20891 ndr_print_uint32(ndr, "needed", *r->out.needed);
20893 ndr_print_WERROR(ndr, "result", r->out.result);
20899 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
20901 if (flags & NDR_IN) {
20902 if (r->in.handle == NULL) {
20903 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20905 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20907 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
20908 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20910 if (flags & NDR_OUT) {
20911 if (r->out.job_id == NULL) {
20912 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
20915 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20917 return NDR_ERR_SUCCESS;
20920 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
20922 TALLOC_CTX *_mem_save_handle_0;
20923 TALLOC_CTX *_mem_save_job_id_0;
20924 if (flags & NDR_IN) {
20925 ZERO_STRUCT(r->out);
20927 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20928 NDR_PULL_ALLOC(ndr, r->in.handle);
20930 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20931 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20932 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20935 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
20936 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20937 NDR_PULL_ALLOC(ndr, r->out.job_id);
20938 ZERO_STRUCTP(r->out.job_id);
20940 if (flags & NDR_OUT) {
20941 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20942 NDR_PULL_ALLOC(ndr, r->out.job_id);
20944 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
20945 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
20946 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
20947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
20948 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20950 return NDR_ERR_SUCCESS;
20953 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
20955 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
20957 if (flags & NDR_SET_VALUES) {
20958 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20960 if (flags & NDR_IN) {
20961 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
20963 ndr_print_ptr(ndr, "handle", r->in.handle);
20965 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20967 ndr_print_uint32(ndr, "level", r->in.level);
20968 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
20969 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
20972 if (flags & NDR_OUT) {
20973 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
20975 ndr_print_ptr(ndr, "job_id", r->out.job_id);
20977 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
20979 ndr_print_WERROR(ndr, "result", r->out.result);
20985 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
20987 if (flags & NDR_IN) {
20988 if (r->in.handle == NULL) {
20989 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20991 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20993 if (flags & NDR_OUT) {
20994 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20996 return NDR_ERR_SUCCESS;
20999 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
21001 TALLOC_CTX *_mem_save_handle_0;
21002 if (flags & NDR_IN) {
21003 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21004 NDR_PULL_ALLOC(ndr, r->in.handle);
21006 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21007 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21008 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21011 if (flags & NDR_OUT) {
21012 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21014 return NDR_ERR_SUCCESS;
21017 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
21019 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
21021 if (flags & NDR_SET_VALUES) {
21022 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21024 if (flags & NDR_IN) {
21025 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
21027 ndr_print_ptr(ndr, "handle", r->in.handle);
21029 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21033 if (flags & NDR_OUT) {
21034 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
21036 ndr_print_WERROR(ndr, "result", r->out.result);
21042 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
21044 if (flags & NDR_IN) {
21045 if (r->in.handle == NULL) {
21046 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21048 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21049 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
21050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
21052 if (flags & NDR_OUT) {
21053 if (r->out.num_written == NULL) {
21054 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
21057 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21059 return NDR_ERR_SUCCESS;
21062 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
21064 TALLOC_CTX *_mem_save_handle_0;
21065 TALLOC_CTX *_mem_save_num_written_0;
21066 if (flags & NDR_IN) {
21067 ZERO_STRUCT(r->out);
21069 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21070 NDR_PULL_ALLOC(ndr, r->in.handle);
21072 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21073 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21074 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21076 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
21077 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
21078 NDR_PULL_ALLOC(ndr, r->out.num_written);
21079 ZERO_STRUCTP(r->out.num_written);
21081 if (flags & NDR_OUT) {
21082 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21083 NDR_PULL_ALLOC(ndr, r->out.num_written);
21085 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
21086 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
21087 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
21088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
21089 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21091 return NDR_ERR_SUCCESS;
21094 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
21096 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
21098 if (flags & NDR_SET_VALUES) {
21099 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21101 if (flags & NDR_IN) {
21102 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
21104 ndr_print_ptr(ndr, "handle", r->in.handle);
21106 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21108 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
21109 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
21112 if (flags & NDR_OUT) {
21113 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
21115 ndr_print_ptr(ndr, "num_written", r->out.num_written);
21117 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
21119 ndr_print_WERROR(ndr, "result", r->out.result);
21125 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
21127 if (flags & NDR_IN) {
21128 if (r->in.handle == NULL) {
21129 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21131 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21133 if (flags & NDR_OUT) {
21134 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21136 return NDR_ERR_SUCCESS;
21139 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
21141 TALLOC_CTX *_mem_save_handle_0;
21142 if (flags & NDR_IN) {
21143 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21144 NDR_PULL_ALLOC(ndr, r->in.handle);
21146 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21147 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21148 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21149 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21151 if (flags & NDR_OUT) {
21152 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21154 return NDR_ERR_SUCCESS;
21157 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
21159 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
21161 if (flags & NDR_SET_VALUES) {
21162 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21164 if (flags & NDR_IN) {
21165 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
21167 ndr_print_ptr(ndr, "handle", r->in.handle);
21169 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21173 if (flags & NDR_OUT) {
21174 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
21176 ndr_print_WERROR(ndr, "result", r->out.result);
21182 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
21184 if (flags & NDR_IN) {
21185 if (r->in.handle == NULL) {
21186 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21188 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21190 if (flags & NDR_OUT) {
21191 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21193 return NDR_ERR_SUCCESS;
21196 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
21198 TALLOC_CTX *_mem_save_handle_0;
21199 if (flags & NDR_IN) {
21200 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21201 NDR_PULL_ALLOC(ndr, r->in.handle);
21203 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21204 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21205 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21208 if (flags & NDR_OUT) {
21209 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21211 return NDR_ERR_SUCCESS;
21214 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
21216 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
21218 if (flags & NDR_SET_VALUES) {
21219 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21221 if (flags & NDR_IN) {
21222 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
21224 ndr_print_ptr(ndr, "handle", r->in.handle);
21226 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21230 if (flags & NDR_OUT) {
21231 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
21233 ndr_print_WERROR(ndr, "result", r->out.result);
21239 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
21241 if (flags & NDR_IN) {
21242 if (r->in.handle == NULL) {
21243 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21245 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21248 if (flags & NDR_OUT) {
21249 if (r->out.data == NULL) {
21250 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21253 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
21254 if (r->out._data_size == NULL) {
21255 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
21258 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21260 return NDR_ERR_SUCCESS;
21263 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
21265 TALLOC_CTX *_mem_save_handle_0;
21266 TALLOC_CTX *_mem_save__data_size_0;
21267 if (flags & NDR_IN) {
21268 ZERO_STRUCT(r->out);
21270 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21271 NDR_PULL_ALLOC(ndr, r->in.handle);
21273 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21274 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21275 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21277 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
21278 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
21279 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
21280 NDR_PULL_ALLOC(ndr, r->out._data_size);
21281 ZERO_STRUCTP(r->out._data_size);
21283 if (flags & NDR_OUT) {
21284 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
21285 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21286 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
21288 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
21289 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21290 NDR_PULL_ALLOC(ndr, r->out._data_size);
21292 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
21293 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
21294 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
21295 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
21296 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21298 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
21301 return NDR_ERR_SUCCESS;
21304 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
21306 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
21308 if (flags & NDR_SET_VALUES) {
21309 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21311 if (flags & NDR_IN) {
21312 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
21314 ndr_print_ptr(ndr, "handle", r->in.handle);
21316 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21318 ndr_print_uint32(ndr, "data_size", r->in.data_size);
21321 if (flags & NDR_OUT) {
21322 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
21324 ndr_print_ptr(ndr, "data", r->out.data);
21326 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
21328 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
21330 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
21332 ndr_print_WERROR(ndr, "result", r->out.result);
21338 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
21340 if (flags & NDR_IN) {
21341 if (r->in.handle == NULL) {
21342 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21344 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21346 if (flags & NDR_OUT) {
21347 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21349 return NDR_ERR_SUCCESS;
21352 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
21354 TALLOC_CTX *_mem_save_handle_0;
21355 if (flags & NDR_IN) {
21356 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21357 NDR_PULL_ALLOC(ndr, r->in.handle);
21359 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21360 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21361 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21362 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21364 if (flags & NDR_OUT) {
21365 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21367 return NDR_ERR_SUCCESS;
21370 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
21372 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
21374 if (flags & NDR_SET_VALUES) {
21375 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21377 if (flags & NDR_IN) {
21378 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
21380 ndr_print_ptr(ndr, "handle", r->in.handle);
21382 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21386 if (flags & NDR_OUT) {
21387 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
21389 ndr_print_WERROR(ndr, "result", r->out.result);
21395 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
21397 if (flags & NDR_IN) {
21398 if (r->in.handle == NULL) {
21399 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21401 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21403 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21404 if (r->in.buffer) {
21405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21406 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
21408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21410 if (flags & NDR_OUT) {
21411 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
21412 if (r->out.buffer) {
21413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21414 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21416 if (r->out.needed == NULL) {
21417 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21420 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21422 return NDR_ERR_SUCCESS;
21425 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
21427 uint32_t _ptr_buffer;
21428 TALLOC_CTX *_mem_save_handle_0;
21429 TALLOC_CTX *_mem_save_buffer_0;
21430 TALLOC_CTX *_mem_save_needed_0;
21431 if (flags & NDR_IN) {
21432 ZERO_STRUCT(r->out);
21434 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21435 NDR_PULL_ALLOC(ndr, r->in.handle);
21437 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21438 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21439 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21440 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21441 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21442 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21444 NDR_PULL_ALLOC(ndr, r->in.buffer);
21446 r->in.buffer = NULL;
21448 if (r->in.buffer) {
21449 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21450 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21451 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
21452 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
21453 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
21454 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21456 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21457 NDR_PULL_ALLOC(ndr, r->out.needed);
21458 ZERO_STRUCTP(r->out.needed);
21459 if (r->in.buffer) {
21460 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
21463 if (flags & NDR_OUT) {
21464 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21466 NDR_PULL_ALLOC(ndr, r->out.buffer);
21468 r->out.buffer = NULL;
21470 if (r->out.buffer) {
21471 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21472 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
21473 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
21474 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
21475 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
21476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21478 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21479 NDR_PULL_ALLOC(ndr, r->out.needed);
21481 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21482 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21483 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21484 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21485 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21486 if (r->out.buffer) {
21487 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
21490 return NDR_ERR_SUCCESS;
21493 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
21495 ndr_print_struct(ndr, name, "spoolss_AddJob");
21497 if (flags & NDR_SET_VALUES) {
21498 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21500 if (flags & NDR_IN) {
21501 ndr_print_struct(ndr, "in", "spoolss_AddJob");
21503 ndr_print_ptr(ndr, "handle", r->in.handle);
21505 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21507 ndr_print_uint32(ndr, "level", r->in.level);
21508 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21510 if (r->in.buffer) {
21511 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
21514 ndr_print_uint32(ndr, "offered", r->in.offered);
21517 if (flags & NDR_OUT) {
21518 ndr_print_struct(ndr, "out", "spoolss_AddJob");
21520 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21522 if (r->out.buffer) {
21523 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
21526 ndr_print_ptr(ndr, "needed", r->out.needed);
21528 ndr_print_uint32(ndr, "needed", *r->out.needed);
21530 ndr_print_WERROR(ndr, "result", r->out.result);
21536 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
21538 if (flags & NDR_IN) {
21539 if (r->in.handle == NULL) {
21540 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21542 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
21545 if (flags & NDR_OUT) {
21546 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21548 return NDR_ERR_SUCCESS;
21551 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
21553 TALLOC_CTX *_mem_save_handle_0;
21554 if (flags & NDR_IN) {
21555 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21556 NDR_PULL_ALLOC(ndr, r->in.handle);
21558 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21559 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21560 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21562 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
21564 if (flags & NDR_OUT) {
21565 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21567 return NDR_ERR_SUCCESS;
21570 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
21572 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
21574 if (flags & NDR_SET_VALUES) {
21575 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21577 if (flags & NDR_IN) {
21578 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
21580 ndr_print_ptr(ndr, "handle", r->in.handle);
21582 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21584 ndr_print_uint32(ndr, "jobid", r->in.jobid);
21587 if (flags & NDR_OUT) {
21588 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
21590 ndr_print_WERROR(ndr, "result", r->out.result);
21596 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
21598 if (flags & NDR_IN) {
21599 if (r->in.handle == NULL) {
21600 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21602 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21606 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));
21607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21609 if (flags & NDR_OUT) {
21610 if (r->out.type == NULL) {
21611 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21613 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, *r->out.type));
21614 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
21615 if (r->out.needed == NULL) {
21616 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21619 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21621 return NDR_ERR_SUCCESS;
21624 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
21626 TALLOC_CTX *_mem_save_handle_0;
21627 TALLOC_CTX *_mem_save_type_0;
21628 TALLOC_CTX *_mem_save_needed_0;
21629 if (flags & NDR_IN) {
21630 ZERO_STRUCT(r->out);
21632 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21633 NDR_PULL_ALLOC(ndr, r->in.handle);
21635 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21636 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21637 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21639 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21640 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21641 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21642 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));
21644 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21645 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));
21646 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21647 NDR_PULL_ALLOC(ndr, r->out.type);
21648 ZERO_STRUCTP(r->out.type);
21649 NDR_PULL_ALLOC(ndr, r->out.needed);
21650 ZERO_STRUCTP(r->out.needed);
21652 if (flags & NDR_OUT) {
21653 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21654 NDR_PULL_ALLOC(ndr, r->out.type);
21656 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21657 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
21658 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->out.type));
21659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
21660 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.data));
21661 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21662 NDR_PULL_ALLOC(ndr, r->out.needed);
21664 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21665 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21666 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21668 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21670 return NDR_ERR_SUCCESS;
21673 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
21675 if (flags & NDR_IN) {
21676 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
21678 if (flags & NDR_OUT) {
21679 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
21680 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
21682 return NDR_ERR_SUCCESS;
21685 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
21687 if (flags & NDR_IN) {
21688 ZERO_STRUCT(r->out);
21690 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
21692 if (flags & NDR_OUT) {
21693 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.data, r->in.type));
21694 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
21696 return NDR_ERR_SUCCESS;
21699 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
21701 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
21703 if (flags & NDR_SET_VALUES) {
21704 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21706 if (flags & NDR_IN) {
21707 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
21709 ndr_print_ptr(ndr, "handle", r->in.handle);
21711 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21713 ndr_print_string(ndr, "value_name", r->in.value_name);
21714 ndr_print_uint32(ndr, "offered", r->in.offered);
21717 if (flags & NDR_OUT) {
21718 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
21720 ndr_print_ptr(ndr, "type", r->out.type);
21722 ndr_print_spoolss_PrinterDataType(ndr, "type", *r->out.type);
21724 ndr_print_set_switch_value(ndr, &r->out.data, *r->out.type);
21725 ndr_print_spoolss_PrinterData(ndr, "data", &r->out.data);
21726 ndr_print_ptr(ndr, "needed", r->out.needed);
21728 ndr_print_uint32(ndr, "needed", *r->out.needed);
21730 ndr_print_WERROR(ndr, "result", r->out.result);
21736 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
21738 if (flags & NDR_IN) {
21739 if (r->in.handle == NULL) {
21740 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21742 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21746 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));
21747 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
21748 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
21749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
21751 if (flags & NDR_OUT) {
21752 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21754 return NDR_ERR_SUCCESS;
21757 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
21759 if (flags & NDR_IN) {
21760 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
21762 if (flags & NDR_OUT) {
21763 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
21764 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
21766 return NDR_ERR_SUCCESS;
21769 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
21771 TALLOC_CTX *_mem_save_handle_0;
21772 if (flags & NDR_IN) {
21773 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21774 NDR_PULL_ALLOC(ndr, r->in.handle);
21776 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21777 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21778 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21780 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21781 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21782 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21783 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));
21785 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21786 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));
21787 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
21789 struct ndr_pull *_ndr_data;
21790 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
21791 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
21792 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
21793 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
21795 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
21797 if (flags & NDR_OUT) {
21798 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21800 return NDR_ERR_SUCCESS;
21803 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
21805 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
21807 if (flags & NDR_SET_VALUES) {
21808 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21810 if (flags & NDR_IN) {
21811 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
21813 ndr_print_ptr(ndr, "handle", r->in.handle);
21815 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21817 ndr_print_string(ndr, "value_name", r->in.value_name);
21818 ndr_print_spoolss_PrinterDataType(ndr, "type", r->in.type);
21819 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
21820 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
21821 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);
21824 if (flags & NDR_OUT) {
21825 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
21827 ndr_print_WERROR(ndr, "result", r->out.result);
21833 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
21835 if (flags & NDR_IN) {
21837 if (flags & NDR_OUT) {
21838 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21840 return NDR_ERR_SUCCESS;
21843 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
21845 if (flags & NDR_IN) {
21847 if (flags & NDR_OUT) {
21848 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21850 return NDR_ERR_SUCCESS;
21853 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
21855 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
21857 if (flags & NDR_SET_VALUES) {
21858 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21860 if (flags & NDR_IN) {
21861 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
21865 if (flags & NDR_OUT) {
21866 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
21868 ndr_print_WERROR(ndr, "result", r->out.result);
21874 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
21876 if (flags & NDR_IN) {
21877 if (r->in.handle == NULL) {
21878 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21880 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21882 if (flags & NDR_OUT) {
21883 if (r->out.handle == NULL) {
21884 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21886 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21889 return NDR_ERR_SUCCESS;
21892 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
21894 TALLOC_CTX *_mem_save_handle_0;
21895 if (flags & NDR_IN) {
21896 ZERO_STRUCT(r->out);
21898 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21899 NDR_PULL_ALLOC(ndr, r->in.handle);
21901 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21902 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21903 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21905 NDR_PULL_ALLOC(ndr, r->out.handle);
21906 *r->out.handle = *r->in.handle;
21908 if (flags & NDR_OUT) {
21909 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21910 NDR_PULL_ALLOC(ndr, r->out.handle);
21912 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21913 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21914 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21915 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21916 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21918 return NDR_ERR_SUCCESS;
21921 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
21923 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
21925 if (flags & NDR_SET_VALUES) {
21926 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21928 if (flags & NDR_IN) {
21929 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
21931 ndr_print_ptr(ndr, "handle", r->in.handle);
21933 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21937 if (flags & NDR_OUT) {
21938 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
21940 ndr_print_ptr(ndr, "handle", r->out.handle);
21942 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21944 ndr_print_WERROR(ndr, "result", r->out.result);
21950 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
21952 if (flags & NDR_IN) {
21953 if (r->in.handle == NULL) {
21954 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21956 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21957 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21958 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
21959 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21961 if (flags & NDR_OUT) {
21962 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21964 return NDR_ERR_SUCCESS;
21967 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
21969 TALLOC_CTX *_mem_save_handle_0;
21970 if (flags & NDR_IN) {
21971 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21972 NDR_PULL_ALLOC(ndr, r->in.handle);
21974 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21975 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21976 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21978 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21979 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
21980 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21982 if (flags & NDR_OUT) {
21983 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21985 return NDR_ERR_SUCCESS;
21988 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
21990 ndr_print_struct(ndr, name, "spoolss_AddForm");
21992 if (flags & NDR_SET_VALUES) {
21993 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21995 if (flags & NDR_IN) {
21996 ndr_print_struct(ndr, "in", "spoolss_AddForm");
21998 ndr_print_ptr(ndr, "handle", r->in.handle);
22000 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22002 ndr_print_uint32(ndr, "level", r->in.level);
22003 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22004 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
22007 if (flags & NDR_OUT) {
22008 ndr_print_struct(ndr, "out", "spoolss_AddForm");
22010 ndr_print_WERROR(ndr, "result", r->out.result);
22016 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
22018 if (flags & NDR_IN) {
22019 if (r->in.handle == NULL) {
22020 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22022 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22026 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));
22028 if (flags & NDR_OUT) {
22029 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22031 return NDR_ERR_SUCCESS;
22034 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
22036 TALLOC_CTX *_mem_save_handle_0;
22037 if (flags & NDR_IN) {
22038 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22039 NDR_PULL_ALLOC(ndr, r->in.handle);
22041 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22042 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22043 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22045 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22046 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22047 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22048 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));
22050 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22051 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));
22053 if (flags & NDR_OUT) {
22054 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22056 return NDR_ERR_SUCCESS;
22059 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
22061 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
22063 if (flags & NDR_SET_VALUES) {
22064 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22066 if (flags & NDR_IN) {
22067 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
22069 ndr_print_ptr(ndr, "handle", r->in.handle);
22071 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22073 ndr_print_string(ndr, "form_name", r->in.form_name);
22076 if (flags & NDR_OUT) {
22077 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
22079 ndr_print_WERROR(ndr, "result", r->out.result);
22085 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
22087 if (flags & NDR_IN) {
22088 if (r->in.handle == NULL) {
22089 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22091 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22095 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));
22096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22097 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22098 if (r->in.buffer) {
22099 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22103 if (flags & NDR_OUT) {
22104 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22107 struct ndr_push *_ndr_info;
22108 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22109 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22110 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22111 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22114 if (r->out.needed == NULL) {
22115 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22118 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22120 return NDR_ERR_SUCCESS;
22123 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
22125 uint32_t _ptr_buffer;
22126 uint32_t _ptr_info;
22127 TALLOC_CTX *_mem_save_handle_0;
22128 TALLOC_CTX *_mem_save_buffer_0;
22129 TALLOC_CTX *_mem_save_info_0;
22130 TALLOC_CTX *_mem_save_needed_0;
22131 if (flags & NDR_IN) {
22132 ZERO_STRUCT(r->out);
22134 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22135 NDR_PULL_ALLOC(ndr, r->in.handle);
22137 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22138 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22139 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22140 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22141 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22142 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22143 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22144 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));
22146 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22147 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));
22148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22149 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22151 NDR_PULL_ALLOC(ndr, r->in.buffer);
22153 r->in.buffer = NULL;
22155 if (r->in.buffer) {
22156 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22157 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22158 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22159 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22162 NDR_PULL_ALLOC(ndr, r->out.needed);
22163 ZERO_STRUCTP(r->out.needed);
22165 if (flags & NDR_OUT) {
22166 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22168 NDR_PULL_ALLOC(ndr, r->out.info);
22170 r->out.info = NULL;
22173 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22174 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22176 struct ndr_pull *_ndr_info;
22177 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22178 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22179 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22180 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22184 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22185 NDR_PULL_ALLOC(ndr, r->out.needed);
22187 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22188 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22189 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22190 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22191 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22193 return NDR_ERR_SUCCESS;
22196 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
22198 ndr_print_struct(ndr, name, "spoolss_GetForm");
22200 if (flags & NDR_SET_VALUES) {
22201 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22203 if (flags & NDR_IN) {
22204 ndr_print_struct(ndr, "in", "spoolss_GetForm");
22206 ndr_print_ptr(ndr, "handle", r->in.handle);
22208 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22210 ndr_print_string(ndr, "form_name", r->in.form_name);
22211 ndr_print_uint32(ndr, "level", r->in.level);
22212 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22214 if (r->in.buffer) {
22215 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22218 ndr_print_uint32(ndr, "offered", r->in.offered);
22221 if (flags & NDR_OUT) {
22222 ndr_print_struct(ndr, "out", "spoolss_GetForm");
22224 ndr_print_ptr(ndr, "info", r->out.info);
22227 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22228 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
22231 ndr_print_ptr(ndr, "needed", r->out.needed);
22233 ndr_print_uint32(ndr, "needed", *r->out.needed);
22235 ndr_print_WERROR(ndr, "result", r->out.result);
22241 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
22243 if (flags & NDR_IN) {
22244 if (r->in.handle == NULL) {
22245 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22247 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22251 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));
22252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22253 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22254 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22256 if (flags & NDR_OUT) {
22257 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22259 return NDR_ERR_SUCCESS;
22262 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
22264 TALLOC_CTX *_mem_save_handle_0;
22265 if (flags & NDR_IN) {
22266 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22267 NDR_PULL_ALLOC(ndr, r->in.handle);
22269 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22270 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22271 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22273 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22274 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22275 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22276 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));
22278 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22279 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));
22280 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22281 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22282 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22284 if (flags & NDR_OUT) {
22285 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22287 return NDR_ERR_SUCCESS;
22290 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
22292 ndr_print_struct(ndr, name, "spoolss_SetForm");
22294 if (flags & NDR_SET_VALUES) {
22295 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22297 if (flags & NDR_IN) {
22298 ndr_print_struct(ndr, "in", "spoolss_SetForm");
22300 ndr_print_ptr(ndr, "handle", r->in.handle);
22302 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22304 ndr_print_string(ndr, "form_name", r->in.form_name);
22305 ndr_print_uint32(ndr, "level", r->in.level);
22306 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22307 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
22310 if (flags & NDR_OUT) {
22311 ndr_print_struct(ndr, "out", "spoolss_SetForm");
22313 ndr_print_WERROR(ndr, "result", r->out.result);
22319 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
22321 if (flags & NDR_IN) {
22322 if (r->in.handle == NULL) {
22323 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22325 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22327 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22328 if (r->in.buffer) {
22329 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22333 if (flags & NDR_OUT) {
22334 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22336 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22338 if (r->out.needed == NULL) {
22339 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22342 if (r->out.count == NULL) {
22343 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22346 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22348 return NDR_ERR_SUCCESS;
22351 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
22353 uint32_t _ptr_buffer;
22354 uint32_t _ptr_info;
22355 TALLOC_CTX *_mem_save_handle_0;
22356 TALLOC_CTX *_mem_save_buffer_0;
22357 TALLOC_CTX *_mem_save_info_0;
22358 TALLOC_CTX *_mem_save_needed_0;
22359 TALLOC_CTX *_mem_save_count_0;
22360 if (flags & NDR_IN) {
22361 ZERO_STRUCT(r->out);
22363 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22364 NDR_PULL_ALLOC(ndr, r->in.handle);
22366 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22367 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22368 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22370 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22371 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22373 NDR_PULL_ALLOC(ndr, r->in.buffer);
22375 r->in.buffer = NULL;
22377 if (r->in.buffer) {
22378 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22379 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22380 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22383 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22384 NDR_PULL_ALLOC(ndr, r->out.needed);
22385 ZERO_STRUCTP(r->out.needed);
22386 NDR_PULL_ALLOC(ndr, r->out.count);
22387 ZERO_STRUCTP(r->out.count);
22389 if (flags & NDR_OUT) {
22390 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22392 NDR_PULL_ALLOC(ndr, r->out.info);
22394 r->out.info = NULL;
22397 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22398 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22399 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22402 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22403 NDR_PULL_ALLOC(ndr, r->out.needed);
22405 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22406 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22407 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22409 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22410 NDR_PULL_ALLOC(ndr, r->out.count);
22412 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22413 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22416 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22418 return NDR_ERR_SUCCESS;
22421 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
22423 uint32_t cntr_info_0;
22424 if (flags & NDR_IN) {
22425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22428 if (flags & NDR_OUT) {
22429 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22430 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22431 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22433 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22434 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22437 return NDR_ERR_SUCCESS;
22440 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
22442 uint32_t cntr_info_0;
22443 TALLOC_CTX *_mem_save_info_0;
22444 if (flags & NDR_IN) {
22445 ZERO_STRUCT(r->out);
22447 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22448 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22450 if (flags & NDR_OUT) {
22451 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22452 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22453 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22454 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22455 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22456 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22458 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22459 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22463 return NDR_ERR_SUCCESS;
22466 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
22468 uint32_t cntr_info_2;
22469 ndr_print_struct(ndr, name, "spoolss_EnumForms");
22471 if (flags & NDR_SET_VALUES) {
22472 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22474 if (flags & NDR_IN) {
22475 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
22477 ndr_print_ptr(ndr, "handle", r->in.handle);
22479 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22481 ndr_print_uint32(ndr, "level", r->in.level);
22482 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22484 if (r->in.buffer) {
22485 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22488 ndr_print_uint32(ndr, "offered", r->in.offered);
22491 if (flags & NDR_OUT) {
22492 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
22494 ndr_print_ptr(ndr, "count", r->out.count);
22496 ndr_print_uint32(ndr, "count", *r->out.count);
22498 ndr_print_ptr(ndr, "info", r->out.info);
22500 ndr_print_ptr(ndr, "info", *r->out.info);
22502 if (*r->out.info) {
22503 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22505 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22507 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22508 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22509 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22517 ndr_print_ptr(ndr, "needed", r->out.needed);
22519 ndr_print_uint32(ndr, "needed", *r->out.needed);
22521 ndr_print_WERROR(ndr, "result", r->out.result);
22527 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
22529 if (flags & NDR_IN) {
22530 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22531 if (r->in.servername) {
22532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22535 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22538 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22539 if (r->in.buffer) {
22540 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22544 if (flags & NDR_OUT) {
22545 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22547 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22549 if (r->out.needed == NULL) {
22550 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22553 if (r->out.count == NULL) {
22554 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22557 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22559 return NDR_ERR_SUCCESS;
22562 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
22564 uint32_t _ptr_servername;
22565 uint32_t _ptr_buffer;
22566 uint32_t _ptr_info;
22567 TALLOC_CTX *_mem_save_servername_0;
22568 TALLOC_CTX *_mem_save_buffer_0;
22569 TALLOC_CTX *_mem_save_info_0;
22570 TALLOC_CTX *_mem_save_needed_0;
22571 TALLOC_CTX *_mem_save_count_0;
22572 if (flags & NDR_IN) {
22573 ZERO_STRUCT(r->out);
22575 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22576 if (_ptr_servername) {
22577 NDR_PULL_ALLOC(ndr, r->in.servername);
22579 r->in.servername = NULL;
22581 if (r->in.servername) {
22582 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22583 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22584 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22585 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22586 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22587 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));
22589 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22590 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22593 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22594 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22596 NDR_PULL_ALLOC(ndr, r->in.buffer);
22598 r->in.buffer = NULL;
22600 if (r->in.buffer) {
22601 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22602 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22603 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22604 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22606 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22607 NDR_PULL_ALLOC(ndr, r->out.needed);
22608 ZERO_STRUCTP(r->out.needed);
22609 NDR_PULL_ALLOC(ndr, r->out.count);
22610 ZERO_STRUCTP(r->out.count);
22612 if (flags & NDR_OUT) {
22613 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22615 NDR_PULL_ALLOC(ndr, r->out.info);
22617 r->out.info = NULL;
22620 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22621 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22622 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22623 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22625 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22626 NDR_PULL_ALLOC(ndr, r->out.needed);
22628 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22629 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22630 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22631 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22632 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22633 NDR_PULL_ALLOC(ndr, r->out.count);
22635 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22636 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22637 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22639 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22641 return NDR_ERR_SUCCESS;
22644 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
22646 uint32_t cntr_info_0;
22647 if (flags & NDR_IN) {
22648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22651 if (flags & NDR_OUT) {
22652 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22653 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22654 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22656 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22657 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22660 return NDR_ERR_SUCCESS;
22663 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
22665 uint32_t cntr_info_0;
22666 TALLOC_CTX *_mem_save_info_0;
22667 if (flags & NDR_IN) {
22668 ZERO_STRUCT(r->out);
22670 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22671 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22673 if (flags & NDR_OUT) {
22674 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22675 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22676 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22677 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22678 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22679 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22681 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22682 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22684 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22686 return NDR_ERR_SUCCESS;
22689 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
22691 uint32_t cntr_info_2;
22692 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
22694 if (flags & NDR_SET_VALUES) {
22695 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22697 if (flags & NDR_IN) {
22698 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
22700 ndr_print_ptr(ndr, "servername", r->in.servername);
22702 if (r->in.servername) {
22703 ndr_print_string(ndr, "servername", r->in.servername);
22706 ndr_print_uint32(ndr, "level", r->in.level);
22707 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22709 if (r->in.buffer) {
22710 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22713 ndr_print_uint32(ndr, "offered", r->in.offered);
22716 if (flags & NDR_OUT) {
22717 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
22719 ndr_print_ptr(ndr, "count", r->out.count);
22721 ndr_print_uint32(ndr, "count", *r->out.count);
22723 ndr_print_ptr(ndr, "info", r->out.info);
22725 ndr_print_ptr(ndr, "info", *r->out.info);
22727 if (*r->out.info) {
22728 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22730 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22732 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22733 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22734 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22742 ndr_print_ptr(ndr, "needed", r->out.needed);
22744 ndr_print_uint32(ndr, "needed", *r->out.needed);
22746 ndr_print_WERROR(ndr, "result", r->out.result);
22752 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
22754 if (flags & NDR_IN) {
22755 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22756 if (r->in.servername) {
22757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22760 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22763 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22764 if (r->in.buffer) {
22765 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22769 if (flags & NDR_OUT) {
22770 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22772 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22774 if (r->out.needed == NULL) {
22775 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22778 if (r->out.count == NULL) {
22779 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22782 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22784 return NDR_ERR_SUCCESS;
22787 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
22789 uint32_t _ptr_servername;
22790 uint32_t _ptr_buffer;
22791 uint32_t _ptr_info;
22792 TALLOC_CTX *_mem_save_servername_0;
22793 TALLOC_CTX *_mem_save_buffer_0;
22794 TALLOC_CTX *_mem_save_info_0;
22795 TALLOC_CTX *_mem_save_needed_0;
22796 TALLOC_CTX *_mem_save_count_0;
22797 if (flags & NDR_IN) {
22798 ZERO_STRUCT(r->out);
22800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22801 if (_ptr_servername) {
22802 NDR_PULL_ALLOC(ndr, r->in.servername);
22804 r->in.servername = NULL;
22806 if (r->in.servername) {
22807 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22808 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22809 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22810 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22811 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22812 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));
22814 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22815 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22818 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22821 NDR_PULL_ALLOC(ndr, r->in.buffer);
22823 r->in.buffer = NULL;
22825 if (r->in.buffer) {
22826 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22827 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22828 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22829 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22831 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22832 NDR_PULL_ALLOC(ndr, r->out.needed);
22833 ZERO_STRUCTP(r->out.needed);
22834 NDR_PULL_ALLOC(ndr, r->out.count);
22835 ZERO_STRUCTP(r->out.count);
22837 if (flags & NDR_OUT) {
22838 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22840 NDR_PULL_ALLOC(ndr, r->out.info);
22842 r->out.info = NULL;
22845 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22846 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22847 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22850 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22851 NDR_PULL_ALLOC(ndr, r->out.needed);
22853 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22854 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22855 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22857 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22858 NDR_PULL_ALLOC(ndr, r->out.count);
22860 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22861 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22862 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22863 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22864 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22866 return NDR_ERR_SUCCESS;
22869 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
22871 uint32_t cntr_info_0;
22872 if (flags & NDR_IN) {
22873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22876 if (flags & NDR_OUT) {
22877 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22878 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22879 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22881 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22882 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22885 return NDR_ERR_SUCCESS;
22888 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
22890 uint32_t cntr_info_0;
22891 TALLOC_CTX *_mem_save_info_0;
22892 if (flags & NDR_IN) {
22893 ZERO_STRUCT(r->out);
22895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22898 if (flags & NDR_OUT) {
22899 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22900 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22901 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22902 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22903 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22904 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22906 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22907 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22911 return NDR_ERR_SUCCESS;
22914 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
22916 uint32_t cntr_info_2;
22917 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
22919 if (flags & NDR_SET_VALUES) {
22920 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22922 if (flags & NDR_IN) {
22923 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
22925 ndr_print_ptr(ndr, "servername", r->in.servername);
22927 if (r->in.servername) {
22928 ndr_print_string(ndr, "servername", r->in.servername);
22931 ndr_print_uint32(ndr, "level", r->in.level);
22932 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22934 if (r->in.buffer) {
22935 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22938 ndr_print_uint32(ndr, "offered", r->in.offered);
22941 if (flags & NDR_OUT) {
22942 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
22944 ndr_print_ptr(ndr, "count", r->out.count);
22946 ndr_print_uint32(ndr, "count", *r->out.count);
22948 ndr_print_ptr(ndr, "info", r->out.info);
22950 ndr_print_ptr(ndr, "info", *r->out.info);
22952 if (*r->out.info) {
22953 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22955 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22957 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22958 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22959 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22967 ndr_print_ptr(ndr, "needed", r->out.needed);
22969 ndr_print_uint32(ndr, "needed", *r->out.needed);
22971 ndr_print_WERROR(ndr, "result", r->out.result);
22977 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
22979 if (flags & NDR_IN) {
22980 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
22981 if (r->in.server_name) {
22982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
22983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
22985 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));
22987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
22988 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
22989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
22991 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));
22993 if (flags & NDR_OUT) {
22994 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22996 return NDR_ERR_SUCCESS;
22999 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
23001 uint32_t _ptr_server_name;
23002 TALLOC_CTX *_mem_save_server_name_0;
23003 if (flags & NDR_IN) {
23004 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
23005 if (_ptr_server_name) {
23006 NDR_PULL_ALLOC(ndr, r->in.server_name);
23008 r->in.server_name = NULL;
23010 if (r->in.server_name) {
23011 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
23012 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
23013 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
23014 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
23015 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
23016 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));
23018 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
23019 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));
23020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
23022 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
23023 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
23024 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
23025 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
23026 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));
23028 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
23029 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));
23031 if (flags & NDR_OUT) {
23032 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23034 return NDR_ERR_SUCCESS;
23037 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
23039 ndr_print_struct(ndr, name, "spoolss_AddPort");
23041 if (flags & NDR_SET_VALUES) {
23042 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23044 if (flags & NDR_IN) {
23045 ndr_print_struct(ndr, "in", "spoolss_AddPort");
23047 ndr_print_ptr(ndr, "server_name", r->in.server_name);
23049 if (r->in.server_name) {
23050 ndr_print_string(ndr, "server_name", r->in.server_name);
23053 ndr_print_uint32(ndr, "unknown", r->in.unknown);
23054 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
23057 if (flags & NDR_OUT) {
23058 ndr_print_struct(ndr, "out", "spoolss_AddPort");
23060 ndr_print_WERROR(ndr, "result", r->out.result);
23066 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
23068 if (flags & NDR_IN) {
23070 if (flags & NDR_OUT) {
23071 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23073 return NDR_ERR_SUCCESS;
23076 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
23078 if (flags & NDR_IN) {
23080 if (flags & NDR_OUT) {
23081 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23083 return NDR_ERR_SUCCESS;
23086 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
23088 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
23090 if (flags & NDR_SET_VALUES) {
23091 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23093 if (flags & NDR_IN) {
23094 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
23098 if (flags & NDR_OUT) {
23099 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
23101 ndr_print_WERROR(ndr, "result", r->out.result);
23107 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
23109 if (flags & NDR_IN) {
23111 if (flags & NDR_OUT) {
23112 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23114 return NDR_ERR_SUCCESS;
23117 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
23119 if (flags & NDR_IN) {
23121 if (flags & NDR_OUT) {
23122 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23124 return NDR_ERR_SUCCESS;
23127 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
23129 ndr_print_struct(ndr, name, "spoolss_DeletePort");
23131 if (flags & NDR_SET_VALUES) {
23132 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23134 if (flags & NDR_IN) {
23135 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
23139 if (flags & NDR_OUT) {
23140 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
23142 ndr_print_WERROR(ndr, "result", r->out.result);
23148 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
23150 if (flags & NDR_IN) {
23152 if (flags & NDR_OUT) {
23153 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23155 return NDR_ERR_SUCCESS;
23158 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
23160 if (flags & NDR_IN) {
23162 if (flags & NDR_OUT) {
23163 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23165 return NDR_ERR_SUCCESS;
23168 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
23170 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
23172 if (flags & NDR_SET_VALUES) {
23173 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23175 if (flags & NDR_IN) {
23176 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
23180 if (flags & NDR_OUT) {
23181 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
23183 ndr_print_WERROR(ndr, "result", r->out.result);
23189 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
23191 if (flags & NDR_IN) {
23193 if (flags & NDR_OUT) {
23194 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23196 return NDR_ERR_SUCCESS;
23199 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
23201 if (flags & NDR_IN) {
23203 if (flags & NDR_OUT) {
23204 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23206 return NDR_ERR_SUCCESS;
23209 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
23211 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
23213 if (flags & NDR_SET_VALUES) {
23214 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23216 if (flags & NDR_IN) {
23217 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
23221 if (flags & NDR_OUT) {
23222 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
23224 ndr_print_WERROR(ndr, "result", r->out.result);
23230 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
23232 if (flags & NDR_IN) {
23234 if (flags & NDR_OUT) {
23235 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23237 return NDR_ERR_SUCCESS;
23240 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
23242 if (flags & NDR_IN) {
23244 if (flags & NDR_OUT) {
23245 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23247 return NDR_ERR_SUCCESS;
23250 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
23252 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
23254 if (flags & NDR_SET_VALUES) {
23255 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23257 if (flags & NDR_IN) {
23258 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
23262 if (flags & NDR_OUT) {
23263 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
23265 ndr_print_WERROR(ndr, "result", r->out.result);
23271 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
23273 if (flags & NDR_IN) {
23275 if (flags & NDR_OUT) {
23276 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23278 return NDR_ERR_SUCCESS;
23281 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
23283 if (flags & NDR_IN) {
23285 if (flags & NDR_OUT) {
23286 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23288 return NDR_ERR_SUCCESS;
23291 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
23293 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
23295 if (flags & NDR_SET_VALUES) {
23296 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23298 if (flags & NDR_IN) {
23299 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
23303 if (flags & NDR_OUT) {
23304 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
23306 ndr_print_WERROR(ndr, "result", r->out.result);
23312 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
23314 if (flags & NDR_IN) {
23316 if (flags & NDR_OUT) {
23317 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23319 return NDR_ERR_SUCCESS;
23322 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
23324 if (flags & NDR_IN) {
23326 if (flags & NDR_OUT) {
23327 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23329 return NDR_ERR_SUCCESS;
23332 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
23334 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
23336 if (flags & NDR_SET_VALUES) {
23337 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23339 if (flags & NDR_IN) {
23340 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
23344 if (flags & NDR_OUT) {
23345 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
23347 ndr_print_WERROR(ndr, "result", r->out.result);
23353 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
23355 if (flags & NDR_IN) {
23357 if (flags & NDR_OUT) {
23358 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23360 return NDR_ERR_SUCCESS;
23363 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
23365 if (flags & NDR_IN) {
23367 if (flags & NDR_OUT) {
23368 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23370 return NDR_ERR_SUCCESS;
23373 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
23375 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
23377 if (flags & NDR_SET_VALUES) {
23378 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23380 if (flags & NDR_IN) {
23381 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
23385 if (flags & NDR_OUT) {
23386 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
23388 ndr_print_WERROR(ndr, "result", r->out.result);
23394 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
23396 if (flags & NDR_IN) {
23398 if (flags & NDR_OUT) {
23399 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23401 return NDR_ERR_SUCCESS;
23404 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
23406 if (flags & NDR_IN) {
23408 if (flags & NDR_OUT) {
23409 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23411 return NDR_ERR_SUCCESS;
23414 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
23416 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
23418 if (flags & NDR_SET_VALUES) {
23419 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23421 if (flags & NDR_IN) {
23422 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
23426 if (flags & NDR_OUT) {
23427 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
23429 ndr_print_WERROR(ndr, "result", r->out.result);
23435 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
23437 if (flags & NDR_IN) {
23439 if (flags & NDR_OUT) {
23440 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23442 return NDR_ERR_SUCCESS;
23445 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
23447 if (flags & NDR_IN) {
23449 if (flags & NDR_OUT) {
23450 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23452 return NDR_ERR_SUCCESS;
23455 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
23457 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
23459 if (flags & NDR_SET_VALUES) {
23460 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23462 if (flags & NDR_IN) {
23463 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
23467 if (flags & NDR_OUT) {
23468 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
23470 ndr_print_WERROR(ndr, "result", r->out.result);
23476 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
23478 if (flags & NDR_IN) {
23480 if (flags & NDR_OUT) {
23481 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23483 return NDR_ERR_SUCCESS;
23486 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
23488 if (flags & NDR_IN) {
23490 if (flags & NDR_OUT) {
23491 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23493 return NDR_ERR_SUCCESS;
23496 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
23498 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
23500 if (flags & NDR_SET_VALUES) {
23501 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23503 if (flags & NDR_IN) {
23504 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
23508 if (flags & NDR_OUT) {
23509 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
23511 ndr_print_WERROR(ndr, "result", r->out.result);
23517 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
23519 if (flags & NDR_IN) {
23521 if (flags & NDR_OUT) {
23522 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23524 return NDR_ERR_SUCCESS;
23527 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
23529 if (flags & NDR_IN) {
23531 if (flags & NDR_OUT) {
23532 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23534 return NDR_ERR_SUCCESS;
23537 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
23539 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
23541 if (flags & NDR_SET_VALUES) {
23542 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23544 if (flags & NDR_IN) {
23545 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
23549 if (flags & NDR_OUT) {
23550 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
23552 ndr_print_WERROR(ndr, "result", r->out.result);
23558 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
23560 if (flags & NDR_IN) {
23562 if (flags & NDR_OUT) {
23563 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23565 return NDR_ERR_SUCCESS;
23568 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
23570 if (flags & NDR_IN) {
23572 if (flags & NDR_OUT) {
23573 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23575 return NDR_ERR_SUCCESS;
23578 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
23580 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
23582 if (flags & NDR_SET_VALUES) {
23583 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23585 if (flags & NDR_IN) {
23586 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
23590 if (flags & NDR_OUT) {
23591 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
23593 ndr_print_WERROR(ndr, "result", r->out.result);
23599 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
23601 if (flags & NDR_IN) {
23602 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23603 if (r->in.servername) {
23604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23607 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23609 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
23610 if (r->in.print_processor_name) {
23611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
23612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
23614 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));
23616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23617 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23618 if (r->in.buffer) {
23619 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23623 if (flags & NDR_OUT) {
23624 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23626 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23628 if (r->out.needed == NULL) {
23629 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23632 if (r->out.count == NULL) {
23633 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23636 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23638 return NDR_ERR_SUCCESS;
23641 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
23643 uint32_t _ptr_servername;
23644 uint32_t _ptr_print_processor_name;
23645 uint32_t _ptr_buffer;
23646 uint32_t _ptr_info;
23647 TALLOC_CTX *_mem_save_servername_0;
23648 TALLOC_CTX *_mem_save_print_processor_name_0;
23649 TALLOC_CTX *_mem_save_buffer_0;
23650 TALLOC_CTX *_mem_save_info_0;
23651 TALLOC_CTX *_mem_save_needed_0;
23652 TALLOC_CTX *_mem_save_count_0;
23653 if (flags & NDR_IN) {
23654 ZERO_STRUCT(r->out);
23656 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23657 if (_ptr_servername) {
23658 NDR_PULL_ALLOC(ndr, r->in.servername);
23660 r->in.servername = NULL;
23662 if (r->in.servername) {
23663 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23664 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23665 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23666 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23667 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23668 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));
23670 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23671 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23674 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
23675 if (_ptr_print_processor_name) {
23676 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
23678 r->in.print_processor_name = NULL;
23680 if (r->in.print_processor_name) {
23681 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
23682 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
23683 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
23684 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
23685 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
23686 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));
23688 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
23689 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));
23690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
23692 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23693 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23695 NDR_PULL_ALLOC(ndr, r->in.buffer);
23697 r->in.buffer = NULL;
23699 if (r->in.buffer) {
23700 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23701 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23702 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23705 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23706 NDR_PULL_ALLOC(ndr, r->out.needed);
23707 ZERO_STRUCTP(r->out.needed);
23708 NDR_PULL_ALLOC(ndr, r->out.count);
23709 ZERO_STRUCTP(r->out.count);
23711 if (flags & NDR_OUT) {
23712 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23714 NDR_PULL_ALLOC(ndr, r->out.info);
23716 r->out.info = NULL;
23719 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23720 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23721 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23722 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23724 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23725 NDR_PULL_ALLOC(ndr, r->out.needed);
23727 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23728 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23729 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23730 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23731 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23732 NDR_PULL_ALLOC(ndr, r->out.count);
23734 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23735 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23736 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23738 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23740 return NDR_ERR_SUCCESS;
23743 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
23745 uint32_t cntr_info_0;
23746 if (flags & NDR_IN) {
23747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23750 if (flags & NDR_OUT) {
23751 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23752 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23753 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23755 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23756 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23759 return NDR_ERR_SUCCESS;
23762 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
23764 uint32_t cntr_info_0;
23765 TALLOC_CTX *_mem_save_info_0;
23766 if (flags & NDR_IN) {
23767 ZERO_STRUCT(r->out);
23769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23772 if (flags & NDR_OUT) {
23773 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23774 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23775 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23776 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23777 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23778 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23780 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23781 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23783 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23785 return NDR_ERR_SUCCESS;
23788 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
23790 uint32_t cntr_info_2;
23791 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
23793 if (flags & NDR_SET_VALUES) {
23794 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23796 if (flags & NDR_IN) {
23797 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
23799 ndr_print_ptr(ndr, "servername", r->in.servername);
23801 if (r->in.servername) {
23802 ndr_print_string(ndr, "servername", r->in.servername);
23805 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
23807 if (r->in.print_processor_name) {
23808 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
23811 ndr_print_uint32(ndr, "level", r->in.level);
23812 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23814 if (r->in.buffer) {
23815 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23818 ndr_print_uint32(ndr, "offered", r->in.offered);
23821 if (flags & NDR_OUT) {
23822 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
23824 ndr_print_ptr(ndr, "count", r->out.count);
23826 ndr_print_uint32(ndr, "count", *r->out.count);
23828 ndr_print_ptr(ndr, "info", r->out.info);
23830 ndr_print_ptr(ndr, "info", *r->out.info);
23832 if (*r->out.info) {
23833 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23835 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23837 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23838 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23839 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23847 ndr_print_ptr(ndr, "needed", r->out.needed);
23849 ndr_print_uint32(ndr, "needed", *r->out.needed);
23851 ndr_print_WERROR(ndr, "result", r->out.result);
23857 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
23859 if (flags & NDR_IN) {
23860 if (r->in.handle == NULL) {
23861 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23863 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23864 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
23865 if (r->in.data_type) {
23866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
23867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
23869 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));
23871 if (r->in.devmode_ctr == NULL) {
23872 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23874 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
23876 if (flags & NDR_OUT) {
23877 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23879 return NDR_ERR_SUCCESS;
23882 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
23884 uint32_t _ptr_data_type;
23885 TALLOC_CTX *_mem_save_handle_0;
23886 TALLOC_CTX *_mem_save_data_type_0;
23887 TALLOC_CTX *_mem_save_devmode_ctr_0;
23888 if (flags & NDR_IN) {
23889 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23890 NDR_PULL_ALLOC(ndr, r->in.handle);
23892 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23893 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23894 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23895 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23896 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
23897 if (_ptr_data_type) {
23898 NDR_PULL_ALLOC(ndr, r->in.data_type);
23900 r->in.data_type = NULL;
23902 if (r->in.data_type) {
23903 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23904 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
23905 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
23906 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
23907 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
23908 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));
23910 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
23911 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));
23912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
23914 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23915 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
23917 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
23918 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
23919 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
23920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
23922 if (flags & NDR_OUT) {
23923 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23925 return NDR_ERR_SUCCESS;
23928 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
23930 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
23932 if (flags & NDR_SET_VALUES) {
23933 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23935 if (flags & NDR_IN) {
23936 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
23938 ndr_print_ptr(ndr, "handle", r->in.handle);
23940 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23942 ndr_print_ptr(ndr, "data_type", r->in.data_type);
23944 if (r->in.data_type) {
23945 ndr_print_string(ndr, "data_type", r->in.data_type);
23948 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
23950 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
23954 if (flags & NDR_OUT) {
23955 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
23957 ndr_print_WERROR(ndr, "result", r->out.result);
23963 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
23965 if (flags & NDR_IN) {
23966 if (r->in.handle == NULL) {
23967 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23969 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23970 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
23971 if (r->in.architecture) {
23972 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
23973 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
23975 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23978 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23979 if (r->in.buffer) {
23980 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
23984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
23986 if (flags & NDR_OUT) {
23987 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23990 struct ndr_push *_ndr_info;
23991 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23992 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23993 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23994 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23997 if (r->out.needed == NULL) {
23998 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24001 if (r->out.server_major_version == NULL) {
24002 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
24005 if (r->out.server_minor_version == NULL) {
24006 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24008 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
24009 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24011 return NDR_ERR_SUCCESS;
24014 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
24016 uint32_t _ptr_architecture;
24017 uint32_t _ptr_buffer;
24018 uint32_t _ptr_info;
24019 TALLOC_CTX *_mem_save_handle_0;
24020 TALLOC_CTX *_mem_save_architecture_0;
24021 TALLOC_CTX *_mem_save_buffer_0;
24022 TALLOC_CTX *_mem_save_info_0;
24023 TALLOC_CTX *_mem_save_needed_0;
24024 TALLOC_CTX *_mem_save_server_major_version_0;
24025 TALLOC_CTX *_mem_save_server_minor_version_0;
24026 if (flags & NDR_IN) {
24027 ZERO_STRUCT(r->out);
24029 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24030 NDR_PULL_ALLOC(ndr, r->in.handle);
24032 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24033 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24034 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24036 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
24037 if (_ptr_architecture) {
24038 NDR_PULL_ALLOC(ndr, r->in.architecture);
24040 r->in.architecture = NULL;
24042 if (r->in.architecture) {
24043 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
24044 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
24045 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
24046 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
24047 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
24048 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));
24050 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
24051 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
24052 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
24054 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24055 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24057 NDR_PULL_ALLOC(ndr, r->in.buffer);
24059 r->in.buffer = NULL;
24061 if (r->in.buffer) {
24062 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24063 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24064 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24065 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24067 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24068 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
24069 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
24070 NDR_PULL_ALLOC(ndr, r->out.needed);
24071 ZERO_STRUCTP(r->out.needed);
24072 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
24073 ZERO_STRUCTP(r->out.server_major_version);
24074 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
24075 ZERO_STRUCTP(r->out.server_minor_version);
24077 if (flags & NDR_OUT) {
24078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24080 NDR_PULL_ALLOC(ndr, r->out.info);
24082 r->out.info = NULL;
24085 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24086 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24088 struct ndr_pull *_ndr_info;
24089 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24090 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
24091 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24092 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24096 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24097 NDR_PULL_ALLOC(ndr, r->out.needed);
24099 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24100 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24101 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24103 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24104 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
24106 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
24107 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
24108 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
24109 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
24110 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24111 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
24113 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
24114 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
24115 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
24116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
24117 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24119 return NDR_ERR_SUCCESS;
24122 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
24124 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
24126 if (flags & NDR_SET_VALUES) {
24127 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24129 if (flags & NDR_IN) {
24130 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
24132 ndr_print_ptr(ndr, "handle", r->in.handle);
24134 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24136 ndr_print_ptr(ndr, "architecture", r->in.architecture);
24138 if (r->in.architecture) {
24139 ndr_print_string(ndr, "architecture", r->in.architecture);
24142 ndr_print_uint32(ndr, "level", r->in.level);
24143 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24145 if (r->in.buffer) {
24146 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24149 ndr_print_uint32(ndr, "offered", r->in.offered);
24150 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
24151 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
24154 if (flags & NDR_OUT) {
24155 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
24157 ndr_print_ptr(ndr, "info", r->out.info);
24160 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
24161 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
24164 ndr_print_ptr(ndr, "needed", r->out.needed);
24166 ndr_print_uint32(ndr, "needed", *r->out.needed);
24168 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
24170 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
24172 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
24174 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
24176 ndr_print_WERROR(ndr, "result", r->out.result);
24182 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
24184 if (flags & NDR_IN) {
24186 if (flags & NDR_OUT) {
24187 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24189 return NDR_ERR_SUCCESS;
24192 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
24194 if (flags & NDR_IN) {
24196 if (flags & NDR_OUT) {
24197 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24199 return NDR_ERR_SUCCESS;
24202 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
24204 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
24206 if (flags & NDR_SET_VALUES) {
24207 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24209 if (flags & NDR_IN) {
24210 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
24214 if (flags & NDR_OUT) {
24215 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
24217 ndr_print_WERROR(ndr, "result", r->out.result);
24223 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
24225 if (flags & NDR_IN) {
24227 if (flags & NDR_OUT) {
24228 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24230 return NDR_ERR_SUCCESS;
24233 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
24235 if (flags & NDR_IN) {
24237 if (flags & NDR_OUT) {
24238 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24240 return NDR_ERR_SUCCESS;
24243 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
24245 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
24247 if (flags & NDR_SET_VALUES) {
24248 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24250 if (flags & NDR_IN) {
24251 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
24255 if (flags & NDR_OUT) {
24256 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
24258 ndr_print_WERROR(ndr, "result", r->out.result);
24264 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
24266 if (flags & NDR_IN) {
24267 if (r->in.handle == NULL) {
24268 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24270 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24272 if (flags & NDR_OUT) {
24273 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24275 return NDR_ERR_SUCCESS;
24278 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
24280 TALLOC_CTX *_mem_save_handle_0;
24281 if (flags & NDR_IN) {
24282 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24283 NDR_PULL_ALLOC(ndr, r->in.handle);
24285 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24286 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24287 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24290 if (flags & NDR_OUT) {
24291 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24293 return NDR_ERR_SUCCESS;
24296 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
24298 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
24300 if (flags & NDR_SET_VALUES) {
24301 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24303 if (flags & NDR_IN) {
24304 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
24306 ndr_print_ptr(ndr, "handle", r->in.handle);
24308 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24312 if (flags & NDR_OUT) {
24313 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
24315 ndr_print_WERROR(ndr, "result", r->out.result);
24321 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24323 if (flags & NDR_IN) {
24325 if (flags & NDR_OUT) {
24326 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24328 return NDR_ERR_SUCCESS;
24331 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24333 if (flags & NDR_IN) {
24335 if (flags & NDR_OUT) {
24336 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24338 return NDR_ERR_SUCCESS;
24341 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24343 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24345 if (flags & NDR_SET_VALUES) {
24346 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24348 if (flags & NDR_IN) {
24349 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24353 if (flags & NDR_OUT) {
24354 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24356 ndr_print_WERROR(ndr, "result", r->out.result);
24362 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
24364 if (flags & NDR_IN) {
24365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24368 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));
24369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
24370 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
24371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24372 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24373 if (r->in.buffer) {
24374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24375 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
24378 if (flags & NDR_OUT) {
24379 if (r->out.handle == NULL) {
24380 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24382 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24383 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24385 return NDR_ERR_SUCCESS;
24388 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
24390 uint32_t _ptr_buffer;
24391 TALLOC_CTX *_mem_save_buffer_0;
24392 TALLOC_CTX *_mem_save_handle_0;
24393 if (flags & NDR_IN) {
24394 ZERO_STRUCT(r->out);
24396 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24397 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24398 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
24399 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));
24401 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
24402 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));
24403 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
24404 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
24405 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
24406 if (r->in.bufsize > 512) {
24407 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
24409 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24411 NDR_PULL_ALLOC(ndr, r->in.buffer);
24413 r->in.buffer = NULL;
24415 if (r->in.buffer) {
24416 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24417 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24418 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
24419 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
24420 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
24421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24423 NDR_PULL_ALLOC(ndr, r->out.handle);
24424 ZERO_STRUCTP(r->out.handle);
24425 if (r->in.buffer) {
24426 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
24429 if (flags & NDR_OUT) {
24430 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24431 NDR_PULL_ALLOC(ndr, r->out.handle);
24433 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24434 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24435 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24436 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24437 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24439 return NDR_ERR_SUCCESS;
24442 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
24444 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
24446 if (flags & NDR_SET_VALUES) {
24447 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24449 if (flags & NDR_IN) {
24450 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
24452 ndr_print_string(ndr, "server_name", r->in.server_name);
24453 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
24454 ndr_print_winreg_Type(ndr, "type", r->in.type);
24455 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
24456 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24458 if (r->in.buffer) {
24459 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
24464 if (flags & NDR_OUT) {
24465 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
24467 ndr_print_ptr(ndr, "handle", r->out.handle);
24469 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24471 ndr_print_WERROR(ndr, "result", r->out.result);
24477 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
24479 if (flags & NDR_IN) {
24480 if (r->in.handle == NULL) {
24481 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24483 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24484 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24486 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24487 if (r->in.buffer) {
24488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24489 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
24492 if (flags & NDR_OUT) {
24493 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24495 return NDR_ERR_SUCCESS;
24498 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
24500 uint32_t _ptr_buffer;
24501 TALLOC_CTX *_mem_save_handle_0;
24502 TALLOC_CTX *_mem_save_buffer_0;
24503 if (flags & NDR_IN) {
24504 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24505 NDR_PULL_ALLOC(ndr, r->in.handle);
24507 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24508 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24509 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24510 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24511 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24512 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
24513 if (r->in.bufsize > 512) {
24514 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
24516 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24518 NDR_PULL_ALLOC(ndr, r->in.buffer);
24520 r->in.buffer = NULL;
24522 if (r->in.buffer) {
24523 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24524 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24525 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
24526 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
24527 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
24528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24530 if (r->in.buffer) {
24531 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
24534 if (flags & NDR_OUT) {
24535 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24537 return NDR_ERR_SUCCESS;
24540 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
24542 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
24544 if (flags & NDR_SET_VALUES) {
24545 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24547 if (flags & NDR_IN) {
24548 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
24550 ndr_print_ptr(ndr, "handle", r->in.handle);
24552 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24554 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24555 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
24556 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24558 if (r->in.buffer) {
24559 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
24564 if (flags & NDR_OUT) {
24565 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
24567 ndr_print_WERROR(ndr, "result", r->out.result);
24573 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
24575 if (flags & NDR_IN) {
24576 if (r->in.handle == NULL) {
24577 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24579 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24581 if (flags & NDR_OUT) {
24582 if (r->out.handle == NULL) {
24583 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24585 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24586 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24588 return NDR_ERR_SUCCESS;
24591 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
24593 TALLOC_CTX *_mem_save_handle_0;
24594 if (flags & NDR_IN) {
24595 ZERO_STRUCT(r->out);
24597 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24598 NDR_PULL_ALLOC(ndr, r->in.handle);
24600 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24601 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24602 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24604 NDR_PULL_ALLOC(ndr, r->out.handle);
24605 *r->out.handle = *r->in.handle;
24607 if (flags & NDR_OUT) {
24608 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24609 NDR_PULL_ALLOC(ndr, r->out.handle);
24611 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24612 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24613 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24615 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24617 return NDR_ERR_SUCCESS;
24620 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
24622 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
24624 if (flags & NDR_SET_VALUES) {
24625 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24627 if (flags & NDR_IN) {
24628 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
24630 ndr_print_ptr(ndr, "handle", r->in.handle);
24632 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24636 if (flags & NDR_OUT) {
24637 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
24639 ndr_print_ptr(ndr, "handle", r->out.handle);
24641 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24643 ndr_print_WERROR(ndr, "result", r->out.result);
24649 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
24651 if (flags & NDR_IN) {
24653 if (flags & NDR_OUT) {
24654 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24656 return NDR_ERR_SUCCESS;
24659 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
24661 if (flags & NDR_IN) {
24663 if (flags & NDR_OUT) {
24664 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24666 return NDR_ERR_SUCCESS;
24669 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
24671 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
24673 if (flags & NDR_SET_VALUES) {
24674 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24676 if (flags & NDR_IN) {
24677 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
24681 if (flags & NDR_OUT) {
24682 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
24684 ndr_print_WERROR(ndr, "result", r->out.result);
24690 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24692 if (flags & NDR_IN) {
24694 if (flags & NDR_OUT) {
24695 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24697 return NDR_ERR_SUCCESS;
24700 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24702 if (flags & NDR_IN) {
24704 if (flags & NDR_OUT) {
24705 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24707 return NDR_ERR_SUCCESS;
24710 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24712 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
24714 if (flags & NDR_SET_VALUES) {
24715 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24717 if (flags & NDR_IN) {
24718 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
24722 if (flags & NDR_OUT) {
24723 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
24725 ndr_print_WERROR(ndr, "result", r->out.result);
24731 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
24733 if (flags & NDR_IN) {
24735 if (flags & NDR_OUT) {
24736 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24738 return NDR_ERR_SUCCESS;
24741 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
24743 if (flags & NDR_IN) {
24745 if (flags & NDR_OUT) {
24746 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24748 return NDR_ERR_SUCCESS;
24751 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
24753 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
24755 if (flags & NDR_SET_VALUES) {
24756 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24758 if (flags & NDR_IN) {
24759 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
24763 if (flags & NDR_OUT) {
24764 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
24766 ndr_print_WERROR(ndr, "result", r->out.result);
24772 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
24774 if (flags & NDR_IN) {
24776 if (flags & NDR_OUT) {
24777 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24779 return NDR_ERR_SUCCESS;
24782 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
24784 if (flags & NDR_IN) {
24786 if (flags & NDR_OUT) {
24787 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24789 return NDR_ERR_SUCCESS;
24792 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
24794 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
24796 if (flags & NDR_SET_VALUES) {
24797 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24799 if (flags & NDR_IN) {
24800 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
24804 if (flags & NDR_OUT) {
24805 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
24807 ndr_print_WERROR(ndr, "result", r->out.result);
24813 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24815 if (flags & NDR_IN) {
24816 if (r->in.handle == NULL) {
24817 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24819 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24820 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
24822 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
24823 if (r->in.local_machine) {
24824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
24825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
24827 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));
24829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
24830 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
24831 if (r->in.notify_options) {
24832 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
24835 if (flags & NDR_OUT) {
24836 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24838 return NDR_ERR_SUCCESS;
24841 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24843 uint32_t _ptr_local_machine;
24844 uint32_t _ptr_notify_options;
24845 TALLOC_CTX *_mem_save_handle_0;
24846 TALLOC_CTX *_mem_save_local_machine_0;
24847 TALLOC_CTX *_mem_save_notify_options_0;
24848 if (flags & NDR_IN) {
24849 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24850 NDR_PULL_ALLOC(ndr, r->in.handle);
24852 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24853 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24854 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24856 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24857 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
24858 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
24859 if (_ptr_local_machine) {
24860 NDR_PULL_ALLOC(ndr, r->in.local_machine);
24862 r->in.local_machine = NULL;
24864 if (r->in.local_machine) {
24865 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
24866 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
24867 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
24868 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
24869 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
24870 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));
24872 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
24873 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));
24874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
24876 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
24877 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
24878 if (_ptr_notify_options) {
24879 NDR_PULL_ALLOC(ndr, r->in.notify_options);
24881 r->in.notify_options = NULL;
24883 if (r->in.notify_options) {
24884 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
24885 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
24886 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
24887 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
24890 if (flags & NDR_OUT) {
24891 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24893 return NDR_ERR_SUCCESS;
24896 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24898 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24900 if (flags & NDR_SET_VALUES) {
24901 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24903 if (flags & NDR_IN) {
24904 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24906 ndr_print_ptr(ndr, "handle", r->in.handle);
24908 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24910 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24911 ndr_print_uint32(ndr, "options", r->in.options);
24912 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
24914 if (r->in.local_machine) {
24915 ndr_print_string(ndr, "local_machine", r->in.local_machine);
24918 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
24919 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
24921 if (r->in.notify_options) {
24922 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
24927 if (flags & NDR_OUT) {
24928 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24930 ndr_print_WERROR(ndr, "result", r->out.result);
24936 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
24938 if (flags & NDR_IN) {
24939 if (r->in.handle == NULL) {
24940 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24942 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24943 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
24944 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
24946 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
24947 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24949 if (flags & NDR_OUT) {
24950 if (r->out.reply_result == NULL) {
24951 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24953 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
24954 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24956 return NDR_ERR_SUCCESS;
24959 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
24961 TALLOC_CTX *_mem_save_handle_0;
24962 TALLOC_CTX *_mem_save_reply_result_0;
24963 if (flags & NDR_IN) {
24964 ZERO_STRUCT(r->out);
24966 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24967 NDR_PULL_ALLOC(ndr, r->in.handle);
24969 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24970 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24971 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24973 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
24974 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24975 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
24976 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
24977 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24978 NDR_PULL_ALLOC(ndr, r->out.reply_result);
24979 ZERO_STRUCTP(r->out.reply_result);
24981 if (flags & NDR_OUT) {
24982 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24983 NDR_PULL_ALLOC(ndr, r->out.reply_result);
24985 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
24986 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
24987 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
24988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
24989 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24991 return NDR_ERR_SUCCESS;
24994 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
24996 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
24998 if (flags & NDR_SET_VALUES) {
24999 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25001 if (flags & NDR_IN) {
25002 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
25004 ndr_print_ptr(ndr, "handle", r->in.handle);
25006 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25008 ndr_print_uint32(ndr, "color", r->in.color);
25009 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
25010 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
25011 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
25012 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
25015 if (flags & NDR_OUT) {
25016 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
25018 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
25020 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
25022 ndr_print_WERROR(ndr, "result", r->out.result);
25028 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
25030 if (flags & NDR_IN) {
25031 if (r->in.handle == NULL) {
25032 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25034 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
25036 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
25037 if (r->in.options) {
25038 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
25041 if (flags & NDR_OUT) {
25042 if (r->out.info == NULL) {
25043 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25045 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
25046 if (*r->out.info) {
25047 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
25049 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25051 return NDR_ERR_SUCCESS;
25054 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
25056 uint32_t _ptr_options;
25057 uint32_t _ptr_info;
25058 TALLOC_CTX *_mem_save_handle_0;
25059 TALLOC_CTX *_mem_save_options_0;
25060 TALLOC_CTX *_mem_save_info_0;
25061 TALLOC_CTX *_mem_save_info_1;
25062 if (flags & NDR_IN) {
25063 ZERO_STRUCT(r->out);
25065 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25066 NDR_PULL_ALLOC(ndr, r->in.handle);
25068 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25069 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25070 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25072 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
25073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
25074 if (_ptr_options) {
25075 NDR_PULL_ALLOC(ndr, r->in.options);
25077 r->in.options = NULL;
25079 if (r->in.options) {
25080 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
25081 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
25082 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
25083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
25085 NDR_PULL_ALLOC(ndr, r->out.info);
25086 ZERO_STRUCTP(r->out.info);
25088 if (flags & NDR_OUT) {
25089 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25090 NDR_PULL_ALLOC(ndr, r->out.info);
25092 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25093 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
25094 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25096 NDR_PULL_ALLOC(ndr, *r->out.info);
25098 *r->out.info = NULL;
25100 if (*r->out.info) {
25101 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
25102 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
25103 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
25104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
25106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
25107 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25109 return NDR_ERR_SUCCESS;
25112 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
25114 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
25116 if (flags & NDR_SET_VALUES) {
25117 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25119 if (flags & NDR_IN) {
25120 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
25122 ndr_print_ptr(ndr, "handle", r->in.handle);
25124 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25126 ndr_print_uint32(ndr, "change_low", r->in.change_low);
25127 ndr_print_ptr(ndr, "options", r->in.options);
25129 if (r->in.options) {
25130 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
25135 if (flags & NDR_OUT) {
25136 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
25138 ndr_print_ptr(ndr, "info", r->out.info);
25140 ndr_print_ptr(ndr, "info", *r->out.info);
25142 if (*r->out.info) {
25143 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
25147 ndr_print_WERROR(ndr, "result", r->out.result);
25153 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
25155 if (flags & NDR_IN) {
25157 if (flags & NDR_OUT) {
25158 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25160 return NDR_ERR_SUCCESS;
25163 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
25165 if (flags & NDR_IN) {
25167 if (flags & NDR_OUT) {
25168 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25170 return NDR_ERR_SUCCESS;
25173 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
25175 ndr_print_struct(ndr, name, "spoolss_44");
25177 if (flags & NDR_SET_VALUES) {
25178 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25180 if (flags & NDR_IN) {
25181 ndr_print_struct(ndr, "in", "spoolss_44");
25185 if (flags & NDR_OUT) {
25186 ndr_print_struct(ndr, "out", "spoolss_44");
25188 ndr_print_WERROR(ndr, "result", r->out.result);
25194 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
25196 if (flags & NDR_IN) {
25197 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
25198 if (r->in.printername) {
25199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
25200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
25202 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25204 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
25205 if (r->in.datatype) {
25206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
25207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
25209 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25211 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
25212 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
25213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25214 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
25215 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
25217 if (flags & NDR_OUT) {
25218 if (r->out.handle == NULL) {
25219 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25221 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25222 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25224 return NDR_ERR_SUCCESS;
25227 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
25229 uint32_t _ptr_printername;
25230 uint32_t _ptr_datatype;
25231 TALLOC_CTX *_mem_save_printername_0;
25232 TALLOC_CTX *_mem_save_datatype_0;
25233 TALLOC_CTX *_mem_save_handle_0;
25234 if (flags & NDR_IN) {
25235 ZERO_STRUCT(r->out);
25237 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
25238 if (_ptr_printername) {
25239 NDR_PULL_ALLOC(ndr, r->in.printername);
25241 r->in.printername = NULL;
25243 if (r->in.printername) {
25244 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25245 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
25246 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
25247 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
25248 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
25249 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));
25251 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
25252 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
25253 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
25255 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
25256 if (_ptr_datatype) {
25257 NDR_PULL_ALLOC(ndr, r->in.datatype);
25259 r->in.datatype = NULL;
25261 if (r->in.datatype) {
25262 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
25263 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
25264 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
25265 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
25266 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
25267 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));
25269 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
25270 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
25271 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
25273 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
25274 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
25275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25276 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
25277 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
25278 NDR_PULL_ALLOC(ndr, r->out.handle);
25279 ZERO_STRUCTP(r->out.handle);
25281 if (flags & NDR_OUT) {
25282 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25283 NDR_PULL_ALLOC(ndr, r->out.handle);
25285 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25286 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25287 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25289 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25291 return NDR_ERR_SUCCESS;
25294 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
25296 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
25298 if (flags & NDR_SET_VALUES) {
25299 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25301 if (flags & NDR_IN) {
25302 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
25304 ndr_print_ptr(ndr, "printername", r->in.printername);
25306 if (r->in.printername) {
25307 ndr_print_string(ndr, "printername", r->in.printername);
25310 ndr_print_ptr(ndr, "datatype", r->in.datatype);
25312 if (r->in.datatype) {
25313 ndr_print_string(ndr, "datatype", r->in.datatype);
25316 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
25317 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
25318 ndr_print_uint32(ndr, "level", r->in.level);
25319 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
25320 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
25323 if (flags & NDR_OUT) {
25324 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
25326 ndr_print_ptr(ndr, "handle", r->out.handle);
25328 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25330 ndr_print_WERROR(ndr, "result", r->out.result);
25336 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
25338 if (flags & NDR_IN) {
25339 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
25340 if (r->in.server) {
25341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25344 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25346 if (r->in.info_ctr == NULL) {
25347 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25349 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25350 if (r->in.devmode_ctr == NULL) {
25351 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25353 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25354 if (r->in.secdesc_ctr == NULL) {
25355 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25357 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25358 if (r->in.userlevel_ctr == NULL) {
25359 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25361 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
25363 if (flags & NDR_OUT) {
25364 if (r->out.handle == NULL) {
25365 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25367 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25368 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25370 return NDR_ERR_SUCCESS;
25373 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
25375 uint32_t _ptr_server;
25376 TALLOC_CTX *_mem_save_server_0;
25377 TALLOC_CTX *_mem_save_info_ctr_0;
25378 TALLOC_CTX *_mem_save_devmode_ctr_0;
25379 TALLOC_CTX *_mem_save_secdesc_ctr_0;
25380 TALLOC_CTX *_mem_save_userlevel_ctr_0;
25381 TALLOC_CTX *_mem_save_handle_0;
25382 if (flags & NDR_IN) {
25383 ZERO_STRUCT(r->out);
25385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
25387 NDR_PULL_ALLOC(ndr, r->in.server);
25389 r->in.server = NULL;
25391 if (r->in.server) {
25392 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
25393 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
25394 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
25395 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
25396 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
25397 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));
25399 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
25400 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
25401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
25403 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25404 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
25406 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25407 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
25408 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25410 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25411 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25413 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25414 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25415 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25417 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25418 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
25420 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25421 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
25422 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25424 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25425 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
25427 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25428 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
25429 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
25430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25431 NDR_PULL_ALLOC(ndr, r->out.handle);
25432 ZERO_STRUCTP(r->out.handle);
25434 if (flags & NDR_OUT) {
25435 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25436 NDR_PULL_ALLOC(ndr, r->out.handle);
25438 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25439 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25440 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25442 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25444 return NDR_ERR_SUCCESS;
25447 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
25449 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
25451 if (flags & NDR_SET_VALUES) {
25452 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25454 if (flags & NDR_IN) {
25455 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
25457 ndr_print_ptr(ndr, "server", r->in.server);
25459 if (r->in.server) {
25460 ndr_print_string(ndr, "server", r->in.server);
25463 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
25465 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
25467 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25469 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25471 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25473 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25475 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
25477 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
25481 if (flags & NDR_OUT) {
25482 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
25484 ndr_print_ptr(ndr, "handle", r->out.handle);
25486 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25488 ndr_print_WERROR(ndr, "result", r->out.result);
25494 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
25496 if (flags & NDR_IN) {
25498 if (flags & NDR_OUT) {
25499 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25501 return NDR_ERR_SUCCESS;
25504 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
25506 if (flags & NDR_IN) {
25508 if (flags & NDR_OUT) {
25509 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25511 return NDR_ERR_SUCCESS;
25514 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
25516 ndr_print_struct(ndr, name, "spoolss_47");
25518 if (flags & NDR_SET_VALUES) {
25519 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25521 if (flags & NDR_IN) {
25522 ndr_print_struct(ndr, "in", "spoolss_47");
25526 if (flags & NDR_OUT) {
25527 ndr_print_struct(ndr, "out", "spoolss_47");
25529 ndr_print_WERROR(ndr, "result", r->out.result);
25535 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
25537 if (flags & NDR_IN) {
25538 if (r->in.handle == NULL) {
25539 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25541 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
25543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
25544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
25546 if (flags & NDR_OUT) {
25547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
25548 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
25549 if (r->out.value_needed == NULL) {
25550 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
25553 if (r->out.printerdata_type == NULL) {
25554 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.printerdata_type));
25557 if (r->out.buffer == NULL) {
25558 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25560 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.buffer));
25561 if (r->out.data_needed == NULL) {
25562 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
25565 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25567 return NDR_ERR_SUCCESS;
25570 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
25572 TALLOC_CTX *_mem_save_handle_0;
25573 TALLOC_CTX *_mem_save_value_needed_0;
25574 TALLOC_CTX *_mem_save_printerdata_type_0;
25575 TALLOC_CTX *_mem_save_buffer_0;
25576 TALLOC_CTX *_mem_save_data_needed_0;
25577 if (flags & NDR_IN) {
25578 ZERO_STRUCT(r->out);
25580 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25581 NDR_PULL_ALLOC(ndr, r->in.handle);
25583 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25584 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25585 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25587 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
25588 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
25589 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
25590 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25591 ZERO_STRUCTP(r->out.value_needed);
25592 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
25593 ZERO_STRUCTP(r->out.printerdata_type);
25594 NDR_PULL_ALLOC(ndr, r->out.buffer);
25595 ZERO_STRUCTP(r->out.buffer);
25596 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25597 ZERO_STRUCTP(r->out.data_needed);
25599 if (flags & NDR_OUT) {
25600 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
25601 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));
25602 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25603 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25605 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25606 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
25607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
25608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
25609 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25610 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
25612 _mem_save_printerdata_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25613 NDR_PULL_SET_MEM_CTX(ndr, r->out.printerdata_type, LIBNDR_FLAG_REF_ALLOC);
25614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.printerdata_type));
25615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printerdata_type_0, LIBNDR_FLAG_REF_ALLOC);
25616 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25617 NDR_PULL_ALLOC(ndr, r->out.buffer);
25619 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25620 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
25621 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.buffer));
25622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
25623 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25624 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25626 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25627 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
25628 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
25629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
25630 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25631 if (r->out.value_name) {
25632 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
25635 return NDR_ERR_SUCCESS;
25638 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
25640 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
25642 if (flags & NDR_SET_VALUES) {
25643 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25645 if (flags & NDR_IN) {
25646 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
25648 ndr_print_ptr(ndr, "handle", r->in.handle);
25650 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25652 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
25653 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
25654 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
25657 if (flags & NDR_OUT) {
25658 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
25660 ndr_print_string(ndr, "value_name", r->out.value_name);
25661 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
25663 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
25665 ndr_print_ptr(ndr, "printerdata_type", r->out.printerdata_type);
25667 ndr_print_uint32(ndr, "printerdata_type", *r->out.printerdata_type);
25669 ndr_print_ptr(ndr, "buffer", r->out.buffer);
25671 ndr_print_DATA_BLOB(ndr, "buffer", *r->out.buffer);
25673 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
25675 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
25677 ndr_print_WERROR(ndr, "result", r->out.result);
25683 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
25685 if (flags & NDR_IN) {
25686 if (r->in.handle == NULL) {
25687 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25689 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25693 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));
25695 if (flags & NDR_OUT) {
25696 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25698 return NDR_ERR_SUCCESS;
25701 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
25703 TALLOC_CTX *_mem_save_handle_0;
25704 if (flags & NDR_IN) {
25705 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25706 NDR_PULL_ALLOC(ndr, r->in.handle);
25708 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25709 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25710 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25712 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25713 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25714 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25715 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));
25717 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25718 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));
25720 if (flags & NDR_OUT) {
25721 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25723 return NDR_ERR_SUCCESS;
25726 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
25728 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
25730 if (flags & NDR_SET_VALUES) {
25731 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25733 if (flags & NDR_IN) {
25734 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
25736 ndr_print_ptr(ndr, "handle", r->in.handle);
25738 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25740 ndr_print_string(ndr, "value_name", r->in.value_name);
25743 if (flags & NDR_OUT) {
25744 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
25746 ndr_print_WERROR(ndr, "result", r->out.result);
25752 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
25754 if (flags & NDR_IN) {
25756 if (flags & NDR_OUT) {
25757 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25759 return NDR_ERR_SUCCESS;
25762 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
25764 if (flags & NDR_IN) {
25766 if (flags & NDR_OUT) {
25767 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25769 return NDR_ERR_SUCCESS;
25772 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
25774 ndr_print_struct(ndr, name, "spoolss_4a");
25776 if (flags & NDR_SET_VALUES) {
25777 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25779 if (flags & NDR_IN) {
25780 ndr_print_struct(ndr, "in", "spoolss_4a");
25784 if (flags & NDR_OUT) {
25785 ndr_print_struct(ndr, "out", "spoolss_4a");
25787 ndr_print_WERROR(ndr, "result", r->out.result);
25793 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
25795 if (flags & NDR_IN) {
25797 if (flags & NDR_OUT) {
25798 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25800 return NDR_ERR_SUCCESS;
25803 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
25805 if (flags & NDR_IN) {
25807 if (flags & NDR_OUT) {
25808 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25810 return NDR_ERR_SUCCESS;
25813 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
25815 ndr_print_struct(ndr, name, "spoolss_4b");
25817 if (flags & NDR_SET_VALUES) {
25818 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25820 if (flags & NDR_IN) {
25821 ndr_print_struct(ndr, "in", "spoolss_4b");
25825 if (flags & NDR_OUT) {
25826 ndr_print_struct(ndr, "out", "spoolss_4b");
25828 ndr_print_WERROR(ndr, "result", r->out.result);
25834 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
25836 if (flags & NDR_IN) {
25838 if (flags & NDR_OUT) {
25839 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25841 return NDR_ERR_SUCCESS;
25844 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
25846 if (flags & NDR_IN) {
25848 if (flags & NDR_OUT) {
25849 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25851 return NDR_ERR_SUCCESS;
25854 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
25856 ndr_print_struct(ndr, name, "spoolss_4c");
25858 if (flags & NDR_SET_VALUES) {
25859 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25861 if (flags & NDR_IN) {
25862 ndr_print_struct(ndr, "in", "spoolss_4c");
25866 if (flags & NDR_OUT) {
25867 ndr_print_struct(ndr, "out", "spoolss_4c");
25869 ndr_print_WERROR(ndr, "result", r->out.result);
25875 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
25877 if (flags & NDR_IN) {
25878 if (r->in.handle == NULL) {
25879 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25881 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25883 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25885 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));
25886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25887 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25888 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25889 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));
25890 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
25891 if (r->in.buffer == NULL) {
25892 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25894 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25895 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
25896 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25898 if (flags & NDR_OUT) {
25899 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25901 return NDR_ERR_SUCCESS;
25904 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
25906 TALLOC_CTX *_mem_save_handle_0;
25907 if (flags & NDR_IN) {
25908 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25909 NDR_PULL_ALLOC(ndr, r->in.handle);
25911 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25912 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25913 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25914 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25915 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25916 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25917 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25918 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));
25920 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25921 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));
25922 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25923 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25924 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25925 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));
25927 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25928 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));
25929 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
25930 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25931 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25932 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25934 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25936 if (r->in.buffer) {
25937 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
25940 if (flags & NDR_OUT) {
25941 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25943 return NDR_ERR_SUCCESS;
25946 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
25948 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
25950 if (flags & NDR_SET_VALUES) {
25951 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25953 if (flags & NDR_IN) {
25954 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
25956 ndr_print_ptr(ndr, "handle", r->in.handle);
25958 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25960 ndr_print_string(ndr, "key_name", r->in.key_name);
25961 ndr_print_string(ndr, "value_name", r->in.value_name);
25962 ndr_print_uint32(ndr, "type", r->in.type);
25963 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25965 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
25967 ndr_print_uint32(ndr, "offered", r->in.offered);
25970 if (flags & NDR_OUT) {
25971 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
25973 ndr_print_WERROR(ndr, "result", r->out.result);
25979 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
25981 if (flags & NDR_IN) {
25982 if (r->in.handle == NULL) {
25983 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25985 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25988 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25989 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));
25990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25991 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25993 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));
25994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25996 if (flags & NDR_OUT) {
25997 if (r->out.type == NULL) {
25998 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.type));
26001 if (r->out.buffer == NULL) {
26002 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26005 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
26006 if (r->out.needed == NULL) {
26007 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26009 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26010 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26012 return NDR_ERR_SUCCESS;
26015 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
26017 TALLOC_CTX *_mem_save_handle_0;
26018 TALLOC_CTX *_mem_save_type_0;
26019 TALLOC_CTX *_mem_save_needed_0;
26020 if (flags & NDR_IN) {
26021 ZERO_STRUCT(r->out);
26023 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26024 NDR_PULL_ALLOC(ndr, r->in.handle);
26026 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26027 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26028 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26029 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26030 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26031 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26032 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26033 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));
26035 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26036 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));
26037 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26038 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26039 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26040 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));
26042 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26043 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));
26044 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26045 NDR_PULL_ALLOC(ndr, r->out.type);
26046 ZERO_STRUCTP(r->out.type);
26047 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
26048 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
26049 NDR_PULL_ALLOC(ndr, r->out.needed);
26050 ZERO_STRUCTP(r->out.needed);
26052 if (flags & NDR_OUT) {
26053 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26054 NDR_PULL_ALLOC(ndr, r->out.type);
26056 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26057 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
26058 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.type));
26059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
26060 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
26061 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26062 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
26064 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
26065 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26066 NDR_PULL_ALLOC(ndr, r->out.needed);
26068 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26069 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26070 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26072 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26073 if (r->out.buffer) {
26074 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
26077 return NDR_ERR_SUCCESS;
26080 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
26082 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
26084 if (flags & NDR_SET_VALUES) {
26085 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26087 if (flags & NDR_IN) {
26088 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
26090 ndr_print_ptr(ndr, "handle", r->in.handle);
26092 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26094 ndr_print_string(ndr, "key_name", r->in.key_name);
26095 ndr_print_string(ndr, "value_name", r->in.value_name);
26096 ndr_print_uint32(ndr, "offered", r->in.offered);
26099 if (flags & NDR_OUT) {
26100 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
26102 ndr_print_ptr(ndr, "type", r->out.type);
26104 ndr_print_uint32(ndr, "type", *r->out.type);
26106 ndr_print_ptr(ndr, "buffer", r->out.buffer);
26108 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
26110 ndr_print_ptr(ndr, "needed", r->out.needed);
26112 ndr_print_uint32(ndr, "needed", *r->out.needed);
26114 ndr_print_WERROR(ndr, "result", r->out.result);
26120 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
26122 if (flags & NDR_IN) {
26123 if (r->in.handle == NULL) {
26124 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26126 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26129 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26130 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));
26131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26133 if (flags & NDR_OUT) {
26134 if (r->out.buffer == NULL) {
26135 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26138 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
26139 if (r->out.needed == NULL) {
26140 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26143 if (r->out.count == NULL) {
26144 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
26147 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26149 return NDR_ERR_SUCCESS;
26152 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
26154 TALLOC_CTX *_mem_save_handle_0;
26155 TALLOC_CTX *_mem_save_needed_0;
26156 TALLOC_CTX *_mem_save_count_0;
26157 if (flags & NDR_IN) {
26158 ZERO_STRUCT(r->out);
26160 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26161 NDR_PULL_ALLOC(ndr, r->in.handle);
26163 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26164 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26165 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26167 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26168 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26169 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26170 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));
26172 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26173 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));
26174 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26175 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
26176 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
26177 NDR_PULL_ALLOC(ndr, r->out.needed);
26178 ZERO_STRUCTP(r->out.needed);
26179 NDR_PULL_ALLOC(ndr, r->out.count);
26180 ZERO_STRUCTP(r->out.count);
26182 if (flags & NDR_OUT) {
26183 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
26184 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26185 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
26187 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
26188 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26189 NDR_PULL_ALLOC(ndr, r->out.needed);
26191 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26192 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26193 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26194 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26195 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26196 NDR_PULL_ALLOC(ndr, r->out.count);
26198 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
26199 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
26200 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
26201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
26202 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26203 if (r->out.buffer) {
26204 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
26207 return NDR_ERR_SUCCESS;
26210 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
26212 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
26214 if (flags & NDR_SET_VALUES) {
26215 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26217 if (flags & NDR_IN) {
26218 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
26220 ndr_print_ptr(ndr, "handle", r->in.handle);
26222 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26224 ndr_print_string(ndr, "key_name", r->in.key_name);
26225 ndr_print_uint32(ndr, "offered", r->in.offered);
26228 if (flags & NDR_OUT) {
26229 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
26231 ndr_print_ptr(ndr, "buffer", r->out.buffer);
26233 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
26235 ndr_print_ptr(ndr, "needed", r->out.needed);
26237 ndr_print_uint32(ndr, "needed", *r->out.needed);
26239 ndr_print_ptr(ndr, "count", r->out.count);
26241 ndr_print_uint32(ndr, "count", *r->out.count);
26243 ndr_print_WERROR(ndr, "result", r->out.result);
26249 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
26251 uint32_t cntr_key_buffer_1;
26252 if (flags & NDR_IN) {
26253 if (r->in.handle == NULL) {
26254 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26256 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26260 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));
26261 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size));
26263 if (flags & NDR_OUT) {
26264 if (r->out.key_buffer == NULL) {
26265 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size / 2));
26268 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
26269 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
26271 if (r->out.needed == NULL) {
26272 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26275 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26277 return NDR_ERR_SUCCESS;
26280 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
26282 uint32_t cntr_key_buffer_1;
26283 TALLOC_CTX *_mem_save_handle_0;
26284 TALLOC_CTX *_mem_save_key_buffer_1;
26285 TALLOC_CTX *_mem_save_needed_0;
26286 if (flags & NDR_IN) {
26287 ZERO_STRUCT(r->out);
26289 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26290 NDR_PULL_ALLOC(ndr, r->in.handle);
26292 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26293 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26294 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26295 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26296 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26297 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26298 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26299 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));
26301 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26302 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));
26303 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.key_buffer_size));
26304 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.key_buffer_size / 2);
26305 memset(r->out.key_buffer, 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
26306 NDR_PULL_ALLOC(ndr, r->out.needed);
26307 ZERO_STRUCTP(r->out.needed);
26309 if (flags & NDR_OUT) {
26310 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
26311 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26312 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
26314 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
26315 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
26316 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
26317 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
26319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
26320 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26321 NDR_PULL_ALLOC(ndr, r->out.needed);
26323 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26324 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26327 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26328 if (r->out.key_buffer) {
26329 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.key_buffer_size / 2));
26332 return NDR_ERR_SUCCESS;
26335 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
26337 uint32_t cntr_key_buffer_1;
26338 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
26340 if (flags & NDR_SET_VALUES) {
26341 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26343 if (flags & NDR_IN) {
26344 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
26346 ndr_print_ptr(ndr, "handle", r->in.handle);
26348 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26350 ndr_print_string(ndr, "key_name", r->in.key_name);
26351 ndr_print_uint32(ndr, "key_buffer_size", r->in.key_buffer_size);
26354 if (flags & NDR_OUT) {
26355 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
26357 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
26359 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.key_buffer_size / 2);
26361 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.key_buffer_size / 2;cntr_key_buffer_1++) {
26363 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
26364 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
26370 ndr_print_ptr(ndr, "needed", r->out.needed);
26372 ndr_print_uint32(ndr, "needed", *r->out.needed);
26374 ndr_print_WERROR(ndr, "result", r->out.result);
26380 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
26382 if (flags & NDR_IN) {
26383 if (r->in.handle == NULL) {
26384 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26386 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26390 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));
26391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26394 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));
26396 if (flags & NDR_OUT) {
26397 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26399 return NDR_ERR_SUCCESS;
26402 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
26404 TALLOC_CTX *_mem_save_handle_0;
26405 if (flags & NDR_IN) {
26406 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26407 NDR_PULL_ALLOC(ndr, r->in.handle);
26409 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26410 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26411 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26412 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26413 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26414 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26415 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26416 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));
26418 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26419 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));
26420 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26421 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26422 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26423 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));
26425 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26426 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));
26428 if (flags & NDR_OUT) {
26429 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26431 return NDR_ERR_SUCCESS;
26434 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
26436 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
26438 if (flags & NDR_SET_VALUES) {
26439 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26441 if (flags & NDR_IN) {
26442 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
26444 ndr_print_ptr(ndr, "handle", r->in.handle);
26446 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26448 ndr_print_string(ndr, "key_name", r->in.key_name);
26449 ndr_print_string(ndr, "value_name", r->in.value_name);
26452 if (flags & NDR_OUT) {
26453 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
26455 ndr_print_WERROR(ndr, "result", r->out.result);
26461 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
26463 if (flags & NDR_IN) {
26464 if (r->in.handle == NULL) {
26465 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26467 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26471 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));
26473 if (flags & NDR_OUT) {
26474 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26476 return NDR_ERR_SUCCESS;
26479 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
26481 TALLOC_CTX *_mem_save_handle_0;
26482 if (flags & NDR_IN) {
26483 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26484 NDR_PULL_ALLOC(ndr, r->in.handle);
26486 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26487 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26488 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26490 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26491 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26492 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26493 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));
26495 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26496 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));
26498 if (flags & NDR_OUT) {
26499 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26501 return NDR_ERR_SUCCESS;
26504 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
26506 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
26508 if (flags & NDR_SET_VALUES) {
26509 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26511 if (flags & NDR_IN) {
26512 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
26514 ndr_print_ptr(ndr, "handle", r->in.handle);
26516 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26518 ndr_print_string(ndr, "key_name", r->in.key_name);
26521 if (flags & NDR_OUT) {
26522 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
26524 ndr_print_WERROR(ndr, "result", r->out.result);
26530 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
26532 if (flags & NDR_IN) {
26534 if (flags & NDR_OUT) {
26535 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26537 return NDR_ERR_SUCCESS;
26540 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
26542 if (flags & NDR_IN) {
26544 if (flags & NDR_OUT) {
26545 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26547 return NDR_ERR_SUCCESS;
26550 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
26552 ndr_print_struct(ndr, name, "spoolss_53");
26554 if (flags & NDR_SET_VALUES) {
26555 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26557 if (flags & NDR_IN) {
26558 ndr_print_struct(ndr, "in", "spoolss_53");
26562 if (flags & NDR_OUT) {
26563 ndr_print_struct(ndr, "out", "spoolss_53");
26565 ndr_print_WERROR(ndr, "result", r->out.result);
26571 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
26573 if (flags & NDR_IN) {
26574 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26575 if (r->in.server) {
26576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26577 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26578 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26579 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26581 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26582 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26583 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26584 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26588 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26589 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
26590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
26592 if (flags & NDR_OUT) {
26593 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26595 return NDR_ERR_SUCCESS;
26598 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
26600 uint32_t _ptr_server;
26601 TALLOC_CTX *_mem_save_server_0;
26602 if (flags & NDR_IN) {
26603 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26605 NDR_PULL_ALLOC(ndr, r->in.server);
26607 r->in.server = NULL;
26609 if (r->in.server) {
26610 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26611 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26612 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26613 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26614 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
26615 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));
26617 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
26618 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
26619 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26621 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26622 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26623 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
26624 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));
26626 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
26627 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
26628 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
26629 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
26630 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
26631 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));
26633 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
26634 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
26635 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
26636 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
26638 if (flags & NDR_OUT) {
26639 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26641 return NDR_ERR_SUCCESS;
26644 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
26646 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
26648 if (flags & NDR_SET_VALUES) {
26649 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26651 if (flags & NDR_IN) {
26652 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
26654 ndr_print_ptr(ndr, "server", r->in.server);
26656 if (r->in.server) {
26657 ndr_print_string(ndr, "server", r->in.server);
26660 ndr_print_string(ndr, "architecture", r->in.architecture);
26661 ndr_print_string(ndr, "driver", r->in.driver);
26662 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
26663 ndr_print_uint32(ndr, "version", r->in.version);
26666 if (flags & NDR_OUT) {
26667 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
26669 ndr_print_WERROR(ndr, "result", r->out.result);
26675 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
26677 if (flags & NDR_IN) {
26679 if (flags & NDR_OUT) {
26680 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26682 return NDR_ERR_SUCCESS;
26685 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
26687 if (flags & NDR_IN) {
26689 if (flags & NDR_OUT) {
26690 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26692 return NDR_ERR_SUCCESS;
26695 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
26697 ndr_print_struct(ndr, name, "spoolss_55");
26699 if (flags & NDR_SET_VALUES) {
26700 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26702 if (flags & NDR_IN) {
26703 ndr_print_struct(ndr, "in", "spoolss_55");
26707 if (flags & NDR_OUT) {
26708 ndr_print_struct(ndr, "out", "spoolss_55");
26710 ndr_print_WERROR(ndr, "result", r->out.result);
26716 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
26718 if (flags & NDR_IN) {
26720 if (flags & NDR_OUT) {
26721 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26723 return NDR_ERR_SUCCESS;
26726 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
26728 if (flags & NDR_IN) {
26730 if (flags & NDR_OUT) {
26731 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26733 return NDR_ERR_SUCCESS;
26736 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
26738 ndr_print_struct(ndr, name, "spoolss_56");
26740 if (flags & NDR_SET_VALUES) {
26741 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26743 if (flags & NDR_IN) {
26744 ndr_print_struct(ndr, "in", "spoolss_56");
26748 if (flags & NDR_OUT) {
26749 ndr_print_struct(ndr, "out", "spoolss_56");
26751 ndr_print_WERROR(ndr, "result", r->out.result);
26757 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
26759 if (flags & NDR_IN) {
26761 if (flags & NDR_OUT) {
26762 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26764 return NDR_ERR_SUCCESS;
26767 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
26769 if (flags & NDR_IN) {
26771 if (flags & NDR_OUT) {
26772 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26774 return NDR_ERR_SUCCESS;
26777 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
26779 ndr_print_struct(ndr, name, "spoolss_57");
26781 if (flags & NDR_SET_VALUES) {
26782 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26784 if (flags & NDR_IN) {
26785 ndr_print_struct(ndr, "in", "spoolss_57");
26789 if (flags & NDR_OUT) {
26790 ndr_print_struct(ndr, "out", "spoolss_57");
26792 ndr_print_WERROR(ndr, "result", r->out.result);
26798 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
26800 if (flags & NDR_IN) {
26801 if (r->in.handle == NULL) {
26802 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26804 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
26806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
26808 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));
26809 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
26810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
26811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
26812 if (r->in.status_code == NULL) {
26813 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
26817 if (flags & NDR_OUT) {
26818 if (r->out.out_data == NULL) {
26819 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
26822 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
26823 if (r->out.needed == NULL) {
26824 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26827 if (r->out.status_code == NULL) {
26828 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26830 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
26831 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26833 return NDR_ERR_SUCCESS;
26836 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
26838 TALLOC_CTX *_mem_save_handle_0;
26839 TALLOC_CTX *_mem_save_needed_0;
26840 TALLOC_CTX *_mem_save_status_code_0;
26841 if (flags & NDR_IN) {
26842 ZERO_STRUCT(r->out);
26844 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26845 NDR_PULL_ALLOC(ndr, r->in.handle);
26847 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26848 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26849 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26851 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
26852 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
26853 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
26854 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));
26856 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
26857 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));
26858 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
26859 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
26860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
26861 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26862 NDR_PULL_ALLOC(ndr, r->in.status_code);
26864 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
26865 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
26866 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
26867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
26868 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
26869 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
26870 NDR_PULL_ALLOC(ndr, r->out.needed);
26871 ZERO_STRUCTP(r->out.needed);
26872 NDR_PULL_ALLOC(ndr, r->out.status_code);
26873 *r->out.status_code = *r->in.status_code;
26875 if (flags & NDR_OUT) {
26876 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
26877 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26878 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
26880 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
26881 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26882 NDR_PULL_ALLOC(ndr, r->out.needed);
26884 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26885 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26886 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26887 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26888 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26889 NDR_PULL_ALLOC(ndr, r->out.status_code);
26891 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
26892 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
26893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
26894 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
26895 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26896 if (r->out.out_data) {
26897 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
26900 return NDR_ERR_SUCCESS;
26903 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
26905 ndr_print_struct(ndr, name, "spoolss_XcvData");
26907 if (flags & NDR_SET_VALUES) {
26908 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26910 if (flags & NDR_IN) {
26911 ndr_print_struct(ndr, "in", "spoolss_XcvData");
26913 ndr_print_ptr(ndr, "handle", r->in.handle);
26915 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26917 ndr_print_string(ndr, "function_name", r->in.function_name);
26918 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
26919 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
26920 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
26921 ndr_print_ptr(ndr, "status_code", r->in.status_code);
26923 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
26927 if (flags & NDR_OUT) {
26928 ndr_print_struct(ndr, "out", "spoolss_XcvData");
26930 ndr_print_ptr(ndr, "out_data", r->out.out_data);
26932 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
26934 ndr_print_ptr(ndr, "needed", r->out.needed);
26936 ndr_print_uint32(ndr, "needed", *r->out.needed);
26938 ndr_print_ptr(ndr, "status_code", r->out.status_code);
26940 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
26942 ndr_print_WERROR(ndr, "result", r->out.result);
26948 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
26950 if (flags & NDR_IN) {
26951 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
26952 if (r->in.servername) {
26953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26956 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26958 if (r->in.info_ctr == NULL) {
26959 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26961 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26962 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
26964 if (flags & NDR_OUT) {
26965 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26967 return NDR_ERR_SUCCESS;
26970 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
26972 uint32_t _ptr_servername;
26973 TALLOC_CTX *_mem_save_servername_0;
26974 TALLOC_CTX *_mem_save_info_ctr_0;
26975 if (flags & NDR_IN) {
26976 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
26977 if (_ptr_servername) {
26978 NDR_PULL_ALLOC(ndr, r->in.servername);
26980 r->in.servername = NULL;
26982 if (r->in.servername) {
26983 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26984 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
26985 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
26986 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
26987 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
26988 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));
26990 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
26991 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
26992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
26994 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26995 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
26997 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26998 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
26999 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27000 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27001 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
27003 if (flags & NDR_OUT) {
27004 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27006 return NDR_ERR_SUCCESS;
27009 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
27011 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
27013 if (flags & NDR_SET_VALUES) {
27014 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27016 if (flags & NDR_IN) {
27017 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
27019 ndr_print_ptr(ndr, "servername", r->in.servername);
27021 if (r->in.servername) {
27022 ndr_print_string(ndr, "servername", r->in.servername);
27025 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27027 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27029 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
27032 if (flags & NDR_OUT) {
27033 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
27035 ndr_print_WERROR(ndr, "result", r->out.result);
27041 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
27043 if (flags & NDR_IN) {
27045 if (flags & NDR_OUT) {
27046 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27048 return NDR_ERR_SUCCESS;
27051 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
27053 if (flags & NDR_IN) {
27055 if (flags & NDR_OUT) {
27056 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27058 return NDR_ERR_SUCCESS;
27061 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
27063 ndr_print_struct(ndr, name, "spoolss_5a");
27065 if (flags & NDR_SET_VALUES) {
27066 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27068 if (flags & NDR_IN) {
27069 ndr_print_struct(ndr, "in", "spoolss_5a");
27073 if (flags & NDR_OUT) {
27074 ndr_print_struct(ndr, "out", "spoolss_5a");
27076 ndr_print_WERROR(ndr, "result", r->out.result);
27082 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
27084 if (flags & NDR_IN) {
27086 if (flags & NDR_OUT) {
27087 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27089 return NDR_ERR_SUCCESS;
27092 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
27094 if (flags & NDR_IN) {
27096 if (flags & NDR_OUT) {
27097 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27099 return NDR_ERR_SUCCESS;
27102 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
27104 ndr_print_struct(ndr, name, "spoolss_5b");
27106 if (flags & NDR_SET_VALUES) {
27107 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27109 if (flags & NDR_IN) {
27110 ndr_print_struct(ndr, "in", "spoolss_5b");
27114 if (flags & NDR_OUT) {
27115 ndr_print_struct(ndr, "out", "spoolss_5b");
27117 ndr_print_WERROR(ndr, "result", r->out.result);
27123 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
27125 if (flags & NDR_IN) {
27127 if (flags & NDR_OUT) {
27128 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27130 return NDR_ERR_SUCCESS;
27133 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
27135 if (flags & NDR_IN) {
27137 if (flags & NDR_OUT) {
27138 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27140 return NDR_ERR_SUCCESS;
27143 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
27145 ndr_print_struct(ndr, name, "spoolss_5c");
27147 if (flags & NDR_SET_VALUES) {
27148 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27150 if (flags & NDR_IN) {
27151 ndr_print_struct(ndr, "in", "spoolss_5c");
27155 if (flags & NDR_OUT) {
27156 ndr_print_struct(ndr, "out", "spoolss_5c");
27158 ndr_print_WERROR(ndr, "result", r->out.result);
27164 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
27166 if (flags & NDR_IN) {
27168 if (flags & NDR_OUT) {
27169 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27171 return NDR_ERR_SUCCESS;
27174 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
27176 if (flags & NDR_IN) {
27178 if (flags & NDR_OUT) {
27179 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27181 return NDR_ERR_SUCCESS;
27184 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
27186 ndr_print_struct(ndr, name, "spoolss_5d");
27188 if (flags & NDR_SET_VALUES) {
27189 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27191 if (flags & NDR_IN) {
27192 ndr_print_struct(ndr, "in", "spoolss_5d");
27196 if (flags & NDR_OUT) {
27197 ndr_print_struct(ndr, "out", "spoolss_5d");
27199 ndr_print_WERROR(ndr, "result", r->out.result);
27205 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
27207 if (flags & NDR_IN) {
27209 if (flags & NDR_OUT) {
27210 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27212 return NDR_ERR_SUCCESS;
27215 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
27217 if (flags & NDR_IN) {
27219 if (flags & NDR_OUT) {
27220 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27222 return NDR_ERR_SUCCESS;
27225 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
27227 ndr_print_struct(ndr, name, "spoolss_5e");
27229 if (flags & NDR_SET_VALUES) {
27230 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27232 if (flags & NDR_IN) {
27233 ndr_print_struct(ndr, "in", "spoolss_5e");
27237 if (flags & NDR_OUT) {
27238 ndr_print_struct(ndr, "out", "spoolss_5e");
27240 ndr_print_WERROR(ndr, "result", r->out.result);
27246 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
27248 if (flags & NDR_IN) {
27250 if (flags & NDR_OUT) {
27251 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27253 return NDR_ERR_SUCCESS;
27256 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
27258 if (flags & NDR_IN) {
27260 if (flags & NDR_OUT) {
27261 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27263 return NDR_ERR_SUCCESS;
27266 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
27268 ndr_print_struct(ndr, name, "spoolss_5f");
27270 if (flags & NDR_SET_VALUES) {
27271 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27273 if (flags & NDR_IN) {
27274 ndr_print_struct(ndr, "in", "spoolss_5f");
27278 if (flags & NDR_OUT) {
27279 ndr_print_struct(ndr, "out", "spoolss_5f");
27281 ndr_print_WERROR(ndr, "result", r->out.result);
27287 static const struct ndr_interface_call spoolss_calls[] = {
27289 "spoolss_EnumPrinters",
27290 sizeof(struct spoolss_EnumPrinters),
27291 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
27292 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
27293 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
27297 "spoolss_OpenPrinter",
27298 sizeof(struct spoolss_OpenPrinter),
27299 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
27300 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
27301 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
27306 sizeof(struct spoolss_SetJob),
27307 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
27308 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
27309 (ndr_print_function_t) ndr_print_spoolss_SetJob,
27314 sizeof(struct spoolss_GetJob),
27315 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
27316 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
27317 (ndr_print_function_t) ndr_print_spoolss_GetJob,
27321 "spoolss_EnumJobs",
27322 sizeof(struct spoolss_EnumJobs),
27323 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
27324 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
27325 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
27329 "spoolss_AddPrinter",
27330 sizeof(struct spoolss_AddPrinter),
27331 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
27332 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
27333 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
27337 "spoolss_DeletePrinter",
27338 sizeof(struct spoolss_DeletePrinter),
27339 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
27340 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
27341 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
27345 "spoolss_SetPrinter",
27346 sizeof(struct spoolss_SetPrinter),
27347 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
27348 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
27349 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
27353 "spoolss_GetPrinter",
27354 sizeof(struct spoolss_GetPrinter),
27355 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
27356 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
27357 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
27361 "spoolss_AddPrinterDriver",
27362 sizeof(struct spoolss_AddPrinterDriver),
27363 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
27364 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
27365 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
27369 "spoolss_EnumPrinterDrivers",
27370 sizeof(struct spoolss_EnumPrinterDrivers),
27371 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
27372 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
27373 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
27377 "spoolss_GetPrinterDriver",
27378 sizeof(struct spoolss_GetPrinterDriver),
27379 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
27380 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
27381 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
27385 "spoolss_GetPrinterDriverDirectory",
27386 sizeof(struct spoolss_GetPrinterDriverDirectory),
27387 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
27388 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
27389 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
27393 "spoolss_DeletePrinterDriver",
27394 sizeof(struct spoolss_DeletePrinterDriver),
27395 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
27396 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
27397 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
27401 "spoolss_AddPrintProcessor",
27402 sizeof(struct spoolss_AddPrintProcessor),
27403 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
27404 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
27405 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
27409 "spoolss_EnumPrintProcessors",
27410 sizeof(struct spoolss_EnumPrintProcessors),
27411 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
27412 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
27413 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
27417 "spoolss_GetPrintProcessorDirectory",
27418 sizeof(struct spoolss_GetPrintProcessorDirectory),
27419 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
27420 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
27421 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
27425 "spoolss_StartDocPrinter",
27426 sizeof(struct spoolss_StartDocPrinter),
27427 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
27428 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
27429 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
27433 "spoolss_StartPagePrinter",
27434 sizeof(struct spoolss_StartPagePrinter),
27435 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
27436 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
27437 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
27441 "spoolss_WritePrinter",
27442 sizeof(struct spoolss_WritePrinter),
27443 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
27444 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
27445 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
27449 "spoolss_EndPagePrinter",
27450 sizeof(struct spoolss_EndPagePrinter),
27451 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
27452 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
27453 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
27457 "spoolss_AbortPrinter",
27458 sizeof(struct spoolss_AbortPrinter),
27459 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
27460 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
27461 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
27465 "spoolss_ReadPrinter",
27466 sizeof(struct spoolss_ReadPrinter),
27467 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
27468 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
27469 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
27473 "spoolss_EndDocPrinter",
27474 sizeof(struct spoolss_EndDocPrinter),
27475 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
27476 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
27477 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
27482 sizeof(struct spoolss_AddJob),
27483 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
27484 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
27485 (ndr_print_function_t) ndr_print_spoolss_AddJob,
27489 "spoolss_ScheduleJob",
27490 sizeof(struct spoolss_ScheduleJob),
27491 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
27492 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
27493 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
27497 "spoolss_GetPrinterData",
27498 sizeof(struct spoolss_GetPrinterData),
27499 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
27500 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
27501 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
27505 "spoolss_SetPrinterData",
27506 sizeof(struct spoolss_SetPrinterData),
27507 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
27508 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
27509 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
27513 "spoolss_WaitForPrinterChange",
27514 sizeof(struct spoolss_WaitForPrinterChange),
27515 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
27516 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
27517 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
27521 "spoolss_ClosePrinter",
27522 sizeof(struct spoolss_ClosePrinter),
27523 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
27524 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
27525 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
27530 sizeof(struct spoolss_AddForm),
27531 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
27532 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
27533 (ndr_print_function_t) ndr_print_spoolss_AddForm,
27537 "spoolss_DeleteForm",
27538 sizeof(struct spoolss_DeleteForm),
27539 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
27540 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
27541 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
27546 sizeof(struct spoolss_GetForm),
27547 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
27548 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
27549 (ndr_print_function_t) ndr_print_spoolss_GetForm,
27554 sizeof(struct spoolss_SetForm),
27555 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
27556 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
27557 (ndr_print_function_t) ndr_print_spoolss_SetForm,
27561 "spoolss_EnumForms",
27562 sizeof(struct spoolss_EnumForms),
27563 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
27564 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
27565 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
27569 "spoolss_EnumPorts",
27570 sizeof(struct spoolss_EnumPorts),
27571 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
27572 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
27573 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
27577 "spoolss_EnumMonitors",
27578 sizeof(struct spoolss_EnumMonitors),
27579 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
27580 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
27581 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
27586 sizeof(struct spoolss_AddPort),
27587 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
27588 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
27589 (ndr_print_function_t) ndr_print_spoolss_AddPort,
27593 "spoolss_ConfigurePort",
27594 sizeof(struct spoolss_ConfigurePort),
27595 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
27596 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
27597 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
27601 "spoolss_DeletePort",
27602 sizeof(struct spoolss_DeletePort),
27603 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
27604 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
27605 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
27609 "spoolss_CreatePrinterIC",
27610 sizeof(struct spoolss_CreatePrinterIC),
27611 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
27612 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
27613 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
27617 "spoolss_PlayGDIScriptOnPrinterIC",
27618 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
27619 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
27620 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
27621 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
27625 "spoolss_DeletePrinterIC",
27626 sizeof(struct spoolss_DeletePrinterIC),
27627 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
27628 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
27629 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
27633 "spoolss_AddPrinterConnection",
27634 sizeof(struct spoolss_AddPrinterConnection),
27635 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
27636 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
27637 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
27641 "spoolss_DeletePrinterConnection",
27642 sizeof(struct spoolss_DeletePrinterConnection),
27643 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
27644 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
27645 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
27649 "spoolss_PrinterMessageBox",
27650 sizeof(struct spoolss_PrinterMessageBox),
27651 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
27652 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
27653 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
27657 "spoolss_AddMonitor",
27658 sizeof(struct spoolss_AddMonitor),
27659 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
27660 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
27661 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
27665 "spoolss_DeleteMonitor",
27666 sizeof(struct spoolss_DeleteMonitor),
27667 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
27668 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
27669 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
27673 "spoolss_DeletePrintProcessor",
27674 sizeof(struct spoolss_DeletePrintProcessor),
27675 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
27676 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
27677 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
27681 "spoolss_AddPrintProvidor",
27682 sizeof(struct spoolss_AddPrintProvidor),
27683 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
27684 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
27685 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
27689 "spoolss_DeletePrintProvidor",
27690 sizeof(struct spoolss_DeletePrintProvidor),
27691 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
27692 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
27693 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
27697 "spoolss_EnumPrintProcDataTypes",
27698 sizeof(struct spoolss_EnumPrintProcDataTypes),
27699 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
27700 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
27701 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
27705 "spoolss_ResetPrinter",
27706 sizeof(struct spoolss_ResetPrinter),
27707 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
27708 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
27709 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
27713 "spoolss_GetPrinterDriver2",
27714 sizeof(struct spoolss_GetPrinterDriver2),
27715 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
27716 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
27717 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
27721 "spoolss_FindFirstPrinterChangeNotification",
27722 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
27723 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
27724 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
27725 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
27729 "spoolss_FindNextPrinterChangeNotification",
27730 sizeof(struct spoolss_FindNextPrinterChangeNotification),
27731 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
27732 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
27733 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
27737 "spoolss_FindClosePrinterNotify",
27738 sizeof(struct spoolss_FindClosePrinterNotify),
27739 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
27740 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
27741 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
27745 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
27746 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
27747 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27748 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27749 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27753 "spoolss_ReplyOpenPrinter",
27754 sizeof(struct spoolss_ReplyOpenPrinter),
27755 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
27756 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
27757 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
27761 "spoolss_RouterReplyPrinter",
27762 sizeof(struct spoolss_RouterReplyPrinter),
27763 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
27764 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
27765 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
27769 "spoolss_ReplyClosePrinter",
27770 sizeof(struct spoolss_ReplyClosePrinter),
27771 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
27772 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
27773 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
27777 "spoolss_AddPortEx",
27778 sizeof(struct spoolss_AddPortEx),
27779 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
27780 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
27781 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
27785 "spoolss_RouterFindFirstPrinterChangeNotification",
27786 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
27787 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
27788 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
27789 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
27793 "spoolss_SpoolerInit",
27794 sizeof(struct spoolss_SpoolerInit),
27795 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
27796 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
27797 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
27801 "spoolss_ResetPrinterEx",
27802 sizeof(struct spoolss_ResetPrinterEx),
27803 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
27804 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
27805 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
27809 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
27810 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
27811 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27812 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27813 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27817 "spoolss_RouterReplyPrinterEx",
27818 sizeof(struct spoolss_RouterReplyPrinterEx),
27819 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
27820 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
27821 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
27825 "spoolss_RouterRefreshPrinterChangeNotify",
27826 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
27827 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
27828 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
27829 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
27834 sizeof(struct spoolss_44),
27835 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
27836 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
27837 (ndr_print_function_t) ndr_print_spoolss_44,
27841 "spoolss_OpenPrinterEx",
27842 sizeof(struct spoolss_OpenPrinterEx),
27843 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
27844 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
27845 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
27849 "spoolss_AddPrinterEx",
27850 sizeof(struct spoolss_AddPrinterEx),
27851 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
27852 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
27853 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
27858 sizeof(struct spoolss_47),
27859 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
27860 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
27861 (ndr_print_function_t) ndr_print_spoolss_47,
27865 "spoolss_EnumPrinterData",
27866 sizeof(struct spoolss_EnumPrinterData),
27867 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
27868 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
27869 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
27873 "spoolss_DeletePrinterData",
27874 sizeof(struct spoolss_DeletePrinterData),
27875 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
27876 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
27877 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
27882 sizeof(struct spoolss_4a),
27883 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
27884 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
27885 (ndr_print_function_t) ndr_print_spoolss_4a,
27890 sizeof(struct spoolss_4b),
27891 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
27892 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
27893 (ndr_print_function_t) ndr_print_spoolss_4b,
27898 sizeof(struct spoolss_4c),
27899 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
27900 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
27901 (ndr_print_function_t) ndr_print_spoolss_4c,
27905 "spoolss_SetPrinterDataEx",
27906 sizeof(struct spoolss_SetPrinterDataEx),
27907 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
27908 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
27909 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
27913 "spoolss_GetPrinterDataEx",
27914 sizeof(struct spoolss_GetPrinterDataEx),
27915 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
27916 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
27917 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
27921 "spoolss_EnumPrinterDataEx",
27922 sizeof(struct spoolss_EnumPrinterDataEx),
27923 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
27924 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
27925 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
27929 "spoolss_EnumPrinterKey",
27930 sizeof(struct spoolss_EnumPrinterKey),
27931 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
27932 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
27933 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
27937 "spoolss_DeletePrinterDataEx",
27938 sizeof(struct spoolss_DeletePrinterDataEx),
27939 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
27940 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
27941 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
27945 "spoolss_DeletePrinterKey",
27946 sizeof(struct spoolss_DeletePrinterKey),
27947 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
27948 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
27949 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
27954 sizeof(struct spoolss_53),
27955 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
27956 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
27957 (ndr_print_function_t) ndr_print_spoolss_53,
27961 "spoolss_DeletePrinterDriverEx",
27962 sizeof(struct spoolss_DeletePrinterDriverEx),
27963 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
27964 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
27965 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
27970 sizeof(struct spoolss_55),
27971 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
27972 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
27973 (ndr_print_function_t) ndr_print_spoolss_55,
27978 sizeof(struct spoolss_56),
27979 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
27980 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
27981 (ndr_print_function_t) ndr_print_spoolss_56,
27986 sizeof(struct spoolss_57),
27987 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
27988 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
27989 (ndr_print_function_t) ndr_print_spoolss_57,
27994 sizeof(struct spoolss_XcvData),
27995 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
27996 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
27997 (ndr_print_function_t) ndr_print_spoolss_XcvData,
28001 "spoolss_AddPrinterDriverEx",
28002 sizeof(struct spoolss_AddPrinterDriverEx),
28003 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
28004 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
28005 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
28010 sizeof(struct spoolss_5a),
28011 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
28012 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
28013 (ndr_print_function_t) ndr_print_spoolss_5a,
28018 sizeof(struct spoolss_5b),
28019 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
28020 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
28021 (ndr_print_function_t) ndr_print_spoolss_5b,
28026 sizeof(struct spoolss_5c),
28027 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
28028 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
28029 (ndr_print_function_t) ndr_print_spoolss_5c,
28034 sizeof(struct spoolss_5d),
28035 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
28036 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
28037 (ndr_print_function_t) ndr_print_spoolss_5d,
28042 sizeof(struct spoolss_5e),
28043 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
28044 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
28045 (ndr_print_function_t) ndr_print_spoolss_5e,
28050 sizeof(struct spoolss_5f),
28051 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
28052 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
28053 (ndr_print_function_t) ndr_print_spoolss_5f,
28056 { NULL, 0, NULL, NULL, NULL, false }
28059 static const char * const spoolss_endpoint_strings[] = {
28060 "ncacn_np:[\\pipe\\spoolss]",
28063 static const struct ndr_interface_string_array spoolss_endpoints = {
28065 .names = spoolss_endpoint_strings
28068 static const char * const spoolss_authservice_strings[] = {
28072 static const struct ndr_interface_string_array spoolss_authservices = {
28074 .names = spoolss_authservice_strings
28078 const struct ndr_interface_table ndr_table_spoolss = {
28081 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
28082 NDR_SPOOLSS_VERSION
28084 .helpstring = NDR_SPOOLSS_HELPSTRING,
28086 .calls = spoolss_calls,
28087 .endpoints = &spoolss_endpoints,
28088 .authservices = &spoolss_authservices