spoolss: trivial fix for spoolss_FormInfo2 IDL.
[Samba/bb.git] / librpc / gen_ndr / ndr_spoolss.c
blob009c9f43d15ff3c8d9dc775f4c39b91693be37f2
1 /* parser auto-generated by pidl */
3 #include "includes.h"
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));
21 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
23 if (ndr_flags & NDR_BUFFERS) {
25 return NDR_ERR_SUCCESS;
28 static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Time *r)
30 if (ndr_flags & NDR_SCALARS) {
31 NDR_CHECK(ndr_pull_align(ndr, 2));
32 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->year));
33 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->month));
34 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day_of_week));
35 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day));
36 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hour));
37 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->minute));
38 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->second));
39 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->millisecond));
40 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
42 if (ndr_flags & NDR_BUFFERS) {
44 return NDR_ERR_SUCCESS;
47 _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r)
49 ndr_print_struct(ndr, name, "spoolss_Time");
50 ndr->depth++;
51 ndr_print_uint16(ndr, "year", r->year);
52 ndr_print_uint16(ndr, "month", r->month);
53 ndr_print_uint16(ndr, "day_of_week", r->day_of_week);
54 ndr_print_uint16(ndr, "day", r->day);
55 ndr_print_uint16(ndr, "hour", r->hour);
56 ndr_print_uint16(ndr, "minute", r->minute);
57 ndr_print_uint16(ndr, "second", r->second);
58 ndr_print_uint16(ndr, "millisecond", r->millisecond);
59 ndr->depth--;
62 static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, struct smb_iconv_convenience *ic, int flags)
64 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time, ic);
67 static enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_TimeCtr *r)
69 if (ndr_flags & NDR_SCALARS) {
70 NDR_CHECK(ndr_push_align(ndr, 5));
71 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags)));
72 NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
73 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
75 if (ndr_flags & NDR_BUFFERS) {
76 if (r->time) {
77 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
80 return NDR_ERR_SUCCESS;
83 static enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_TimeCtr *r)
85 uint32_t _ptr_time;
86 TALLOC_CTX *_mem_save_time_0;
87 if (ndr_flags & NDR_SCALARS) {
88 NDR_CHECK(ndr_pull_align(ndr, 5));
89 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
90 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
91 if (_ptr_time) {
92 NDR_PULL_ALLOC(ndr, r->time);
93 } else {
94 r->time = NULL;
96 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
98 if (ndr_flags & NDR_BUFFERS) {
99 if (r->time) {
100 _mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
101 NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
102 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
106 return NDR_ERR_SUCCESS;
109 _PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
111 ndr_print_struct(ndr, name, "spoolss_TimeCtr");
112 ndr->depth++;
113 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags):r->size);
114 ndr_print_ptr(ndr, "time", r->time);
115 ndr->depth++;
116 if (r->time) {
117 ndr_print_spoolss_Time(ndr, "time", r->time);
119 ndr->depth--;
120 ndr->depth--;
123 static enum ndr_err_code ndr_push_spoolss_ProcessorArchitecture(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture r)
125 NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
126 return NDR_ERR_SUCCESS;
129 static enum ndr_err_code ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture *r)
131 uint16_t v;
132 NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
133 *r = v;
134 return NDR_ERR_SUCCESS;
137 _PUBLIC_ void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorArchitecture r)
139 const char *val = NULL;
141 switch (r) {
142 case PROCESSOR_ARCHITECTURE_INTEL: val = "PROCESSOR_ARCHITECTURE_INTEL"; break;
143 case PROCESSOR_ARCHITECTURE_IA64: val = "PROCESSOR_ARCHITECTURE_IA64"; break;
144 case PROCESSOR_ARCHITECTURE_AMD64: val = "PROCESSOR_ARCHITECTURE_AMD64"; break;
146 ndr_print_enum(ndr, name, "ENUM", val, r);
149 static enum ndr_err_code ndr_push_spoolss_ProcessorType(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorType r)
151 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
152 return NDR_ERR_SUCCESS;
155 static enum ndr_err_code ndr_pull_spoolss_ProcessorType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorType *r)
157 uint32_t v;
158 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
159 *r = v;
160 return NDR_ERR_SUCCESS;
163 _PUBLIC_ void ndr_print_spoolss_ProcessorType(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorType r)
165 const char *val = NULL;
167 switch (r) {
168 case PROCESSOR_INTEL_386: val = "PROCESSOR_INTEL_386"; break;
169 case PROCESSOR_INTEL_486: val = "PROCESSOR_INTEL_486"; break;
170 case PROCESSOR_INTEL_PENTIUM: val = "PROCESSOR_INTEL_PENTIUM"; break;
171 case PROCESSOR_INTEL_IA64: val = "PROCESSOR_INTEL_IA64"; break;
172 case PROCESSOR_AMD_X8664: val = "PROCESSOR_AMD_X8664"; break;
174 ndr_print_enum(ndr, name, "ENUM", val, r);
177 static enum ndr_err_code ndr_push_spoolss_MajorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MajorVersion r)
179 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
180 return NDR_ERR_SUCCESS;
183 static enum ndr_err_code ndr_pull_spoolss_MajorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MajorVersion *r)
185 uint32_t v;
186 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
187 *r = v;
188 return NDR_ERR_SUCCESS;
191 _PUBLIC_ void ndr_print_spoolss_MajorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MajorVersion r)
193 const char *val = NULL;
195 switch (r) {
196 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME: val = "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
197 case SPOOLSS_MAJOR_VERSION_2000_2003_XP: val = "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
198 case SPOOLSS_MAJOR_VERSION_2008_VISTA: val = "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
200 ndr_print_enum(ndr, name, "ENUM", val, r);
203 static enum ndr_err_code ndr_push_spoolss_MinorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MinorVersion r)
205 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
206 return NDR_ERR_SUCCESS;
209 static enum ndr_err_code ndr_pull_spoolss_MinorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MinorVersion *r)
211 uint32_t v;
212 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
213 *r = v;
214 return NDR_ERR_SUCCESS;
217 _PUBLIC_ void ndr_print_spoolss_MinorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MinorVersion r)
219 const char *val = NULL;
221 switch (r) {
222 case SPOOLSS_MINOR_VERSION_0: val = "SPOOLSS_MINOR_VERSION_0"; break;
223 case SPOOLSS_MINOR_VERSION_XP: val = "SPOOLSS_MINOR_VERSION_XP"; break;
224 case SPOOLSS_MINOR_VERSION_2003_XP64: val = "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
225 case SPOOLSS_MINOR_VERSION_98: val = "SPOOLSS_MINOR_VERSION_98"; break;
226 case SPOOLSS_MINOR_VERSION_ME: val = "SPOOLSS_MINOR_VERSION_ME"; break;
228 ndr_print_enum(ndr, name, "ENUM", val, r);
231 static enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
234 return NDR_ERR_SUCCESS;
237 static enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
239 uint32_t v;
240 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
241 *r = v;
242 return NDR_ERR_SUCCESS;
245 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
247 ndr_print_uint32(ndr, name, r);
248 ndr->depth++;
249 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
250 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
259 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
260 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
272 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
273 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
274 ndr->depth--;
277 static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
280 return NDR_ERR_SUCCESS;
283 static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
285 uint32_t v;
286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
287 *r = v;
288 return NDR_ERR_SUCCESS;
291 _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
293 ndr_print_uint32(ndr, name, r);
294 ndr->depth++;
295 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
296 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
297 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
298 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
299 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
300 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
301 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
302 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
303 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
304 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
305 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
306 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
307 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
308 ndr->depth--;
311 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
313 if (ndr_flags & NDR_SCALARS) {
314 NDR_CHECK(ndr_push_align(ndr, 5));
316 uint32_t _flags_save_string = ndr->flags;
317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
318 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
319 ndr->flags = _flags_save_string;
322 uint32_t _flags_save_string = ndr->flags;
323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
324 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
325 ndr->flags = _flags_save_string;
327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
330 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
340 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
342 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
345 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
346 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
349 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
350 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
354 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
356 if (ndr_flags & NDR_BUFFERS) {
358 uint32_t _flags_save_string = ndr->flags;
359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
360 if (r->printername) {
361 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
362 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
364 ndr->flags = _flags_save_string;
367 uint32_t _flags_save_string = ndr->flags;
368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
369 if (r->servername) {
370 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
371 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
373 ndr->flags = _flags_save_string;
376 return NDR_ERR_SUCCESS;
379 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
381 uint32_t _ptr_printername;
382 TALLOC_CTX *_mem_save_printername_0;
383 uint32_t _ptr_servername;
384 TALLOC_CTX *_mem_save_servername_0;
385 if (ndr_flags & NDR_SCALARS) {
386 NDR_CHECK(ndr_pull_align(ndr, 5));
388 uint32_t _flags_save_string = ndr->flags;
389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
390 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
391 if (_ptr_printername) {
392 NDR_PULL_ALLOC(ndr, r->printername);
393 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
394 } else {
395 r->printername = NULL;
397 ndr->flags = _flags_save_string;
400 uint32_t _flags_save_string = ndr->flags;
401 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
402 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
403 if (_ptr_servername) {
404 NDR_PULL_ALLOC(ndr, r->servername);
405 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
406 } else {
407 r->servername = NULL;
409 ndr->flags = _flags_save_string;
411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
414 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
424 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
426 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
429 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
430 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
433 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
434 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
435 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
436 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
438 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
440 if (ndr_flags & NDR_BUFFERS) {
442 uint32_t _flags_save_string = ndr->flags;
443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
444 if (r->printername) {
445 uint32_t _relative_save_offset;
446 _relative_save_offset = ndr->offset;
447 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
448 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
449 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
450 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
452 ndr->offset = _relative_save_offset;
454 ndr->flags = _flags_save_string;
457 uint32_t _flags_save_string = ndr->flags;
458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
459 if (r->servername) {
460 uint32_t _relative_save_offset;
461 _relative_save_offset = ndr->offset;
462 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
463 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
464 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
465 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
467 ndr->offset = _relative_save_offset;
469 ndr->flags = _flags_save_string;
472 return NDR_ERR_SUCCESS;
475 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
477 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
478 ndr->depth++;
479 ndr_print_ptr(ndr, "printername", r->printername);
480 ndr->depth++;
481 if (r->printername) {
482 ndr_print_string(ndr, "printername", r->printername);
484 ndr->depth--;
485 ndr_print_ptr(ndr, "servername", r->servername);
486 ndr->depth++;
487 if (r->servername) {
488 ndr_print_string(ndr, "servername", r->servername);
490 ndr->depth--;
491 ndr_print_uint32(ndr, "cjobs", r->cjobs);
492 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
493 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
494 ndr_print_spoolss_Time(ndr, "time", &r->time);
495 ndr_print_uint32(ndr, "global_counter", r->global_counter);
496 ndr_print_uint32(ndr, "total_pages", r->total_pages);
497 ndr_print_uint32(ndr, "version", r->version);
498 ndr_print_uint32(ndr, "free_build", r->free_build);
499 ndr_print_uint32(ndr, "spooling", r->spooling);
500 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
501 ndr_print_uint32(ndr, "session_counter", r->session_counter);
502 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
503 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
504 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
505 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
506 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
507 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
508 ndr_print_uint32(ndr, "change_id", r->change_id);
509 ndr_print_WERROR(ndr, "last_error", r->last_error);
510 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
511 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
512 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
513 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
514 ndr_print_uint16(ndr, "processor_level", r->processor_level);
515 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
516 ndr_print_uint32(ndr, "reserved2", r->reserved2);
517 ndr_print_uint32(ndr, "reserved3", r->reserved3);
518 ndr->depth--;
521 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, struct smb_iconv_convenience *ic, int flags)
523 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0, ic);
526 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
529 return NDR_ERR_SUCCESS;
532 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
534 uint32_t v;
535 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
536 *r = v;
537 return NDR_ERR_SUCCESS;
540 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
542 ndr_print_uint32(ndr, name, r);
543 ndr->depth++;
544 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
545 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
546 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
547 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
548 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
549 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
561 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
562 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
563 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
564 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
565 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
566 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
567 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
568 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
569 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
570 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
571 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
572 ndr->depth--;
575 static enum ndr_err_code ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion r)
577 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
578 return NDR_ERR_SUCCESS;
581 static enum ndr_err_code ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion *r)
583 uint16_t v;
584 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
585 *r = v;
586 return NDR_ERR_SUCCESS;
589 _PUBLIC_ void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeSpecVersion r)
591 const char *val = NULL;
593 switch (r) {
594 case DMSPEC_NT3: val = "DMSPEC_NT3"; break;
595 case DMSPEC_WIN95_98_ME: val = "DMSPEC_WIN95_98_ME"; break;
596 case DMSPEC_NT4_AND_ABOVE: val = "DMSPEC_NT4_AND_ABOVE"; break;
598 ndr_print_enum(ndr, name, "ENUM", val, r);
601 static enum ndr_err_code ndr_push_spoolss_DeviceModeOrientation(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation r)
603 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
604 return NDR_ERR_SUCCESS;
607 static enum ndr_err_code ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation *r)
609 uint16_t v;
610 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
611 *r = v;
612 return NDR_ERR_SUCCESS;
615 _PUBLIC_ void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeOrientation r)
617 const char *val = NULL;
619 switch (r) {
620 case DMORIENT_PORTRAIT: val = "DMORIENT_PORTRAIT"; break;
621 case DMORIENT_LANDSCAPE: val = "DMORIENT_LANDSCAPE"; break;
623 ndr_print_enum(ndr, name, "ENUM", val, r);
626 static enum ndr_err_code ndr_push_spoolss_DeviceModePaperSize(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize r)
628 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
629 return NDR_ERR_SUCCESS;
632 static enum ndr_err_code ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize *r)
634 uint16_t v;
635 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
636 *r = v;
637 return NDR_ERR_SUCCESS;
640 _PUBLIC_ void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePaperSize r)
642 const char *val = NULL;
644 switch (r) {
645 case DMPAPER_LETTER: val = "DMPAPER_LETTER"; break;
646 case DMPAPER_LETTERSMALL: val = "DMPAPER_LETTERSMALL"; break;
647 case DMPAPER_TABLOID: val = "DMPAPER_TABLOID"; break;
648 case DMPAPER_LEDGER: val = "DMPAPER_LEDGER"; break;
649 case DMPAPER_LEGAL: val = "DMPAPER_LEGAL"; break;
650 case DMPAPER_STATEMENT: val = "DMPAPER_STATEMENT"; break;
651 case DMPAPER_EXECUTIVE: val = "DMPAPER_EXECUTIVE"; break;
652 case DMPAPER_A3: val = "DMPAPER_A3"; break;
653 case DMPAPER_A4: val = "DMPAPER_A4"; break;
654 case DMPAPER_A4SMALL: val = "DMPAPER_A4SMALL"; break;
655 case DMPAPER_A5: val = "DMPAPER_A5"; break;
656 case DMPAPER_B4: val = "DMPAPER_B4"; break;
657 case DMPAPER_B5: val = "DMPAPER_B5"; break;
658 case DMPAPER_FOLIO: val = "DMPAPER_FOLIO"; break;
659 case DMPAPER_QUARTO: val = "DMPAPER_QUARTO"; break;
660 case DMPAPER_10X14: val = "DMPAPER_10X14"; break;
661 case DMPAPER_11X17: val = "DMPAPER_11X17"; break;
662 case DMPAPER_NOTE: val = "DMPAPER_NOTE"; break;
663 case DMPAPER_ENV_9: val = "DMPAPER_ENV_9"; break;
664 case DMPAPER_ENV_10: val = "DMPAPER_ENV_10"; break;
665 case DMPAPER_ENV_11: val = "DMPAPER_ENV_11"; break;
666 case DMPAPER_ENV_12: val = "DMPAPER_ENV_12"; break;
667 case DMPAPER_ENV_14: val = "DMPAPER_ENV_14"; break;
668 case DMPAPER_CSHEET: val = "DMPAPER_CSHEET"; break;
669 case DMPAPER_DSHEET: val = "DMPAPER_DSHEET"; break;
670 case DMPAPER_ESHEET: val = "DMPAPER_ESHEET"; break;
671 case DMPAPER_ENV_DL: val = "DMPAPER_ENV_DL"; break;
672 case DMPAPER_ENV_C5: val = "DMPAPER_ENV_C5"; break;
673 case DMPAPER_ENV_C3: val = "DMPAPER_ENV_C3"; break;
674 case DMPAPER_ENV_C4: val = "DMPAPER_ENV_C4"; break;
675 case DMPAPER_ENV_C6: val = "DMPAPER_ENV_C6"; break;
676 case DMPAPER_ENV_C65: val = "DMPAPER_ENV_C65"; break;
677 case DMPAPER_ENV_B4: val = "DMPAPER_ENV_B4"; break;
678 case DMPAPER_ENV_B5: val = "DMPAPER_ENV_B5"; break;
679 case DMPAPER_ENV_B6: val = "DMPAPER_ENV_B6"; break;
680 case DMPAPER_ENV_ITALY: val = "DMPAPER_ENV_ITALY"; break;
681 case DMPAPER_ENV_MONARCH: val = "DMPAPER_ENV_MONARCH"; break;
682 case DMPAPER_ENV_PERSONAL: val = "DMPAPER_ENV_PERSONAL"; break;
683 case DMPAPER_FANFOLD_US: val = "DMPAPER_FANFOLD_US"; break;
684 case DMPAPER_FANFOLD_STD_GERMAN: val = "DMPAPER_FANFOLD_STD_GERMAN"; break;
685 case DMPAPER_FANFOLD_LGL_GERMAN: val = "DMPAPER_FANFOLD_LGL_GERMAN"; break;
686 case DMPAPER_DBL_JAPANESE_POSTCARD: val = "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
687 case DMPAPER_A6: val = "DMPAPER_A6"; break;
688 case DMPAPER_JENV_KAKU2: val = "DMPAPER_JENV_KAKU2"; break;
689 case DMPAPER_JENV_KAKU3: val = "DMPAPER_JENV_KAKU3"; break;
690 case DMPAPER_JENV_CHOU3: val = "DMPAPER_JENV_CHOU3"; break;
691 case DMPAPER_JENV_CHOU4: val = "DMPAPER_JENV_CHOU4"; break;
692 case DMPAPER_LETTER_ROTATED: val = "DMPAPER_LETTER_ROTATED"; break;
693 case DMPAPER_A3_ROTATED: val = "DMPAPER_A3_ROTATED"; break;
694 case DMPAPER_A4_ROTATED: val = "DMPAPER_A4_ROTATED"; break;
695 case DMPAPER_A5_ROTATED: val = "DMPAPER_A5_ROTATED"; break;
696 case DMPAPER_B4_JIS_ROTATED: val = "DMPAPER_B4_JIS_ROTATED"; break;
697 case DMPAPER_B5_JIS_ROTATED: val = "DMPAPER_B5_JIS_ROTATED"; break;
698 case DMPAPER_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
699 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
700 case DMPAPER_A6_ROTATED: val = "DMPAPER_A6_ROTATED"; break;
701 case DMPAPER_JENV_KAKU2_ROTATED: val = "DMPAPER_JENV_KAKU2_ROTATED"; break;
702 case DMPAPER_JENV_KAKU3_ROTATED: val = "DMPAPER_JENV_KAKU3_ROTATED"; break;
703 case DMPAPER_JENV_CHOU3_ROTATED: val = "DMPAPER_JENV_CHOU3_ROTATED"; break;
704 case DMPAPER_JENV_CHOU4_ROTATED: val = "DMPAPER_JENV_CHOU4_ROTATED"; break;
705 case DMPAPER_B6_JIS: val = "DMPAPER_B6_JIS"; break;
706 case DMPAPER_B6_JIS_ROTATED: val = "DMPAPER_B6_JIS_ROTATED"; break;
707 case DMPAPER_12X11: val = "DMPAPER_12X11"; break;
708 case DMPAPER_JENV_YOU4: val = "DMPAPER_JENV_YOU4"; break;
709 case DMPAPER_JENV_YOU4_ROTATED: val = "DMPAPER_JENV_YOU4_ROTATED"; break;
710 case DMPAPER_P16K: val = "DMPAPER_P16K"; break;
711 case DMPAPER_P32K: val = "DMPAPER_P32K"; break;
712 case DMPAPER_P32KBIG: val = "DMPAPER_P32KBIG"; break;
713 case DMPAPER_PENV_1: val = "DMPAPER_PENV_1"; break;
714 case DMPAPER_PENV_2: val = "DMPAPER_PENV_2"; break;
715 case DMPAPER_PENV_3: val = "DMPAPER_PENV_3"; break;
716 case DMPAPER_PENV_4: val = "DMPAPER_PENV_4"; break;
717 case DMPAPER_PENV_5: val = "DMPAPER_PENV_5"; break;
718 case DMPAPER_PENV_6: val = "DMPAPER_PENV_6"; break;
719 case DMPAPER_PENV_7: val = "DMPAPER_PENV_7"; break;
720 case DMPAPER_PENV_8: val = "DMPAPER_PENV_8"; break;
721 case DMPAPER_PENV_9: val = "DMPAPER_PENV_9"; break;
722 case DMPAPER_PENV_10: val = "DMPAPER_PENV_10"; break;
723 case DMPAPER_P16K_ROTATED: val = "DMPAPER_P16K_ROTATED"; break;
724 case DMPAPER_P32K_ROTATED: val = "DMPAPER_P32K_ROTATED"; break;
725 case DMPAPER_P32KBIG_ROTATED: val = "DMPAPER_P32KBIG_ROTATED"; break;
726 case DMPAPER_PENV_1_ROTATED: val = "DMPAPER_PENV_1_ROTATED"; break;
727 case DMPAPER_PENV_2_ROTATED: val = "DMPAPER_PENV_2_ROTATED"; break;
728 case DMPAPER_PENV_3_ROTATED: val = "DMPAPER_PENV_3_ROTATED"; break;
729 case DMPAPER_PENV_4_ROTATED: val = "DMPAPER_PENV_4_ROTATED"; break;
730 case DMPAPER_PENV_5_ROTATED: val = "DMPAPER_PENV_5_ROTATED"; break;
731 case DMPAPER_PENV_6_ROTATED: val = "DMPAPER_PENV_6_ROTATED"; break;
732 case DMPAPER_PENV_7_ROTATED: val = "DMPAPER_PENV_7_ROTATED"; break;
733 case DMPAPER_PENV_8_ROTATED: val = "DMPAPER_PENV_8_ROTATED"; break;
734 case DMPAPER_PENV_9_ROTATED: val = "DMPAPER_PENV_9_ROTATED"; break;
735 case DMPAPER_PENV_10_ROTATED: val = "DMPAPER_PENV_10_ROTATED"; break;
737 ndr_print_enum(ndr, name, "ENUM", val, r);
740 static enum ndr_err_code ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource r)
742 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
743 return NDR_ERR_SUCCESS;
746 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource *r)
748 uint16_t v;
749 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
750 *r = v;
751 return NDR_ERR_SUCCESS;
754 _PUBLIC_ void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDefaultSource r)
756 const char *val = NULL;
758 switch (r) {
759 case DMBIN_UPPER: val = "DMBIN_UPPER"; break;
760 case DMBIN_LOWER: val = "DMBIN_LOWER"; break;
761 case DMBIN_MIDDLE: val = "DMBIN_MIDDLE"; break;
762 case DMBIN_MANUAL: val = "DMBIN_MANUAL"; break;
763 case DMBIN_ENVELOPE: val = "DMBIN_ENVELOPE"; break;
764 case DMBIN_ENVMANUAL: val = "DMBIN_ENVMANUAL"; break;
765 case DMBIN_AUTO: val = "DMBIN_AUTO"; break;
766 case DMBIN_TRACTOR: val = "DMBIN_TRACTOR"; break;
767 case DMBIN_SMALLFMT: val = "DMBIN_SMALLFMT"; break;
768 case DMBIN_LARGEFMT: val = "DMBIN_LARGEFMT"; break;
769 case DMBIN_LARGECAPACITY: val = "DMBIN_LARGECAPACITY"; break;
770 case DMBIN_CASSETTE: val = "DMBIN_CASSETTE"; break;
771 case DMBIN_FORMSOURCE: val = "DMBIN_FORMSOURCE"; break;
773 ndr_print_enum(ndr, name, "ENUM", val, r);
776 static enum ndr_err_code ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality r)
778 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
779 return NDR_ERR_SUCCESS;
782 static enum ndr_err_code ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality *r)
784 uint16_t v;
785 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
786 *r = v;
787 return NDR_ERR_SUCCESS;
790 _PUBLIC_ void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePrintQuality r)
792 const char *val = NULL;
794 switch (r) {
795 case DMRES_HIGH: val = "DMRES_HIGH"; break;
796 case DMRES_MEDIUM: val = "DMRES_MEDIUM"; break;
797 case DMRES_LOW: val = "DMRES_LOW"; break;
798 case DMRES_DRAFT: val = "DMRES_DRAFT"; break;
800 ndr_print_enum(ndr, name, "ENUM", val, r);
803 static enum ndr_err_code ndr_push_spoolss_DeviceModeColor(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeColor r)
805 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
806 return NDR_ERR_SUCCESS;
809 static enum ndr_err_code ndr_pull_spoolss_DeviceModeColor(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeColor *r)
811 uint16_t v;
812 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
813 *r = v;
814 return NDR_ERR_SUCCESS;
817 _PUBLIC_ void ndr_print_spoolss_DeviceModeColor(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeColor r)
819 const char *val = NULL;
821 switch (r) {
822 case DMRES_MONOCHROME: val = "DMRES_MONOCHROME"; break;
823 case DMRES_COLOR: val = "DMRES_COLOR"; break;
825 ndr_print_enum(ndr, name, "ENUM", val, r);
828 static enum ndr_err_code ndr_push_spoolss_DeviceModeDuplex(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex r)
830 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
831 return NDR_ERR_SUCCESS;
834 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex *r)
836 uint16_t v;
837 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
838 *r = v;
839 return NDR_ERR_SUCCESS;
842 _PUBLIC_ void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDuplex r)
844 const char *val = NULL;
846 switch (r) {
847 case DMDUP_SIMPLEX: val = "DMDUP_SIMPLEX"; break;
848 case DMDUP_VERTICAL: val = "DMDUP_VERTICAL"; break;
849 case DMDUP_HORIZONTAL: val = "DMDUP_HORIZONTAL"; break;
851 ndr_print_enum(ndr, name, "ENUM", val, r);
854 static enum ndr_err_code ndr_push_spoolss_DeviceModeTTOption(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption r)
856 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
857 return NDR_ERR_SUCCESS;
860 static enum ndr_err_code ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption *r)
862 uint16_t v;
863 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
864 *r = v;
865 return NDR_ERR_SUCCESS;
868 _PUBLIC_ void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeTTOption r)
870 const char *val = NULL;
872 switch (r) {
873 case DMTT_BITMAP: val = "DMTT_BITMAP"; break;
874 case DMTT_DOWNLOAD: val = "DMTT_DOWNLOAD"; break;
875 case DMTT_SUBDEV: val = "DMTT_SUBDEV"; break;
876 case DMTT_DOWNLOAD_OUTLINE: val = "DMTT_DOWNLOAD_OUTLINE"; break;
878 ndr_print_enum(ndr, name, "ENUM", val, r);
881 static enum ndr_err_code ndr_push_spoolss_DeviceModeCollate(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeCollate r)
883 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
884 return NDR_ERR_SUCCESS;
887 static enum ndr_err_code ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeCollate *r)
889 uint16_t v;
890 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
891 *r = v;
892 return NDR_ERR_SUCCESS;
895 _PUBLIC_ void ndr_print_spoolss_DeviceModeCollate(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeCollate r)
897 const char *val = NULL;
899 switch (r) {
900 case DMCOLLATE_FALSE: val = "DMCOLLATE_FALSE"; break;
901 case DMCOLLATE_TRUE: val = "DMCOLLATE_TRUE"; break;
903 ndr_print_enum(ndr, name, "ENUM", val, r);
906 static enum ndr_err_code ndr_push_spoolss_DeviceModeNUp(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeNUp r)
908 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
909 return NDR_ERR_SUCCESS;
912 static enum ndr_err_code ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeNUp *r)
914 uint32_t v;
915 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
916 *r = v;
917 return NDR_ERR_SUCCESS;
920 _PUBLIC_ void ndr_print_spoolss_DeviceModeNUp(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeNUp r)
922 const char *val = NULL;
924 switch (r) {
925 case DMNUP_SYSTEM: val = "DMNUP_SYSTEM"; break;
926 case DMNUP_ONEUP: val = "DMNUP_ONEUP"; break;
928 ndr_print_enum(ndr, name, "ENUM", val, r);
931 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod r)
933 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
934 return NDR_ERR_SUCCESS;
937 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod *r)
939 uint32_t v;
940 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
941 *r = v;
942 return NDR_ERR_SUCCESS;
945 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMMethod r)
947 const char *val = NULL;
949 switch (r) {
950 case DMICMMETHOD_NONE: val = "DMICMMETHOD_NONE"; break;
951 case DMICMMETHOD_SYSTEM: val = "DMICMMETHOD_SYSTEM"; break;
952 case DMICMMETHOD_DRIVER: val = "DMICMMETHOD_DRIVER"; break;
953 case DMICMMETHOD_DEVICE: val = "DMICMMETHOD_DEVICE"; break;
955 ndr_print_enum(ndr, name, "ENUM", val, r);
958 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent r)
960 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
961 return NDR_ERR_SUCCESS;
964 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent *r)
966 uint32_t v;
967 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
968 *r = v;
969 return NDR_ERR_SUCCESS;
972 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMIntent r)
974 const char *val = NULL;
976 switch (r) {
977 case DMICM_SATURATE: val = "DMICM_SATURATE"; break;
978 case DMICM_CONTRAST: val = "DMICM_CONTRAST"; break;
979 case DMICM_COLORIMETRIC: val = "DMICM_COLORIMETRIC"; break;
980 case DMICM_ABS_COLORIMETRIC: val = "DMICM_ABS_COLORIMETRIC"; break;
982 ndr_print_enum(ndr, name, "ENUM", val, r);
985 static enum ndr_err_code ndr_push_spoolss_DeviceModeMediaType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType r)
987 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
988 return NDR_ERR_SUCCESS;
991 static enum ndr_err_code ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType *r)
993 uint32_t v;
994 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
995 *r = v;
996 return NDR_ERR_SUCCESS;
999 _PUBLIC_ void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeMediaType r)
1001 const char *val = NULL;
1003 switch (r) {
1004 case DMMEDIA_STANDARD: val = "DMMEDIA_STANDARD"; break;
1005 case DMMEDIA_TRANSPARENCY: val = "DMMEDIA_TRANSPARENCY"; break;
1006 case DMMEDIA_GLOSSY: val = "DMMEDIA_GLOSSY"; break;
1008 ndr_print_enum(ndr, name, "ENUM", val, r);
1011 static enum ndr_err_code ndr_push_spoolss_DeviceModeDitherType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType r)
1013 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1014 return NDR_ERR_SUCCESS;
1017 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType *r)
1019 uint32_t v;
1020 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1021 *r = v;
1022 return NDR_ERR_SUCCESS;
1025 _PUBLIC_ void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDitherType r)
1027 const char *val = NULL;
1029 switch (r) {
1030 case DMDITHER_NONE: val = "DMDITHER_NONE"; break;
1031 case DMDITHER_COARSE: val = "DMDITHER_COARSE"; break;
1032 case DMDITHER_FINE: val = "DMDITHER_FINE"; break;
1033 case DMDITHER_LINEART: val = "DMDITHER_LINEART"; break;
1034 case DMDITHER_ERRORDIFFUSION: val = "DMDITHER_ERRORDIFFUSION"; break;
1035 case DMDITHER_RESERVED6: val = "DMDITHER_RESERVED6"; break;
1036 case DMDITHER_RESERVED7: val = "DMDITHER_RESERVED7"; break;
1037 case DMDITHER_RESERVED8: val = "DMDITHER_RESERVED8"; break;
1038 case DMDITHER_RESERVED9: val = "DMDITHER_RESERVED9"; break;
1039 case DMDITHER_GRAYSCALE: val = "DMDITHER_GRAYSCALE"; break;
1041 ndr_print_enum(ndr, name, "ENUM", val, r);
1044 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
1046 if (ndr_flags & NDR_SCALARS) {
1047 NDR_CHECK(ndr_push_align(ndr, 4));
1048 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1049 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, r->specversion));
1050 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
1051 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
1052 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
1053 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
1054 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, r->orientation));
1055 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, r->papersize));
1056 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
1057 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
1058 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
1059 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
1060 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, r->defaultsource));
1061 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, r->printquality));
1062 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr, NDR_SCALARS, r->color));
1063 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, r->duplex));
1064 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
1065 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, r->ttoption));
1066 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, r->collate));
1067 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1068 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
1069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
1070 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
1071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
1072 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, r->displayflags));
1073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
1074 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, r->icmmethod));
1075 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, r->icmintent));
1076 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, r->mediatype));
1077 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, r->dithertype));
1078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
1079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
1080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
1081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
1083 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1084 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1086 struct ndr_push *_ndr_driverextra_data;
1087 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
1088 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
1089 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
1091 ndr->flags = _flags_save_DATA_BLOB;
1093 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1095 if (ndr_flags & NDR_BUFFERS) {
1097 return NDR_ERR_SUCCESS;
1100 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
1102 if (ndr_flags & NDR_SCALARS) {
1103 NDR_CHECK(ndr_pull_align(ndr, 4));
1104 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1105 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, &r->specversion));
1106 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
1107 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1108 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
1109 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
1110 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, &r->orientation));
1111 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, &r->papersize));
1112 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
1113 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
1114 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
1115 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
1116 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, &r->defaultsource));
1117 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, &r->printquality));
1118 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr, NDR_SCALARS, &r->color));
1119 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, &r->duplex));
1120 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
1121 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, &r->ttoption));
1122 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, &r->collate));
1123 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1124 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
1125 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
1126 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
1127 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
1128 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, &r->displayflags));
1129 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
1130 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, &r->icmmethod));
1131 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, &r->icmintent));
1132 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, &r->mediatype));
1133 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, &r->dithertype));
1134 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
1137 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
1139 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1140 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1142 struct ndr_pull *_ndr_driverextra_data;
1143 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
1144 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
1145 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
1147 ndr->flags = _flags_save_DATA_BLOB;
1149 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1151 if (ndr_flags & NDR_BUFFERS) {
1153 return NDR_ERR_SUCCESS;
1156 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
1158 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
1159 ndr->depth++;
1160 ndr_print_string(ndr, "devicename", r->devicename);
1161 ndr_print_spoolss_DeviceModeSpecVersion(ndr, "specversion", r->specversion);
1162 ndr_print_uint16(ndr, "driverversion", r->driverversion);
1163 ndr_print_uint16(ndr, "size", r->size);
1164 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
1165 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
1166 ndr_print_spoolss_DeviceModeOrientation(ndr, "orientation", r->orientation);
1167 ndr_print_spoolss_DeviceModePaperSize(ndr, "papersize", r->papersize);
1168 ndr_print_uint16(ndr, "paperlength", r->paperlength);
1169 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
1170 ndr_print_uint16(ndr, "scale", r->scale);
1171 ndr_print_uint16(ndr, "copies", r->copies);
1172 ndr_print_spoolss_DeviceModeDefaultSource(ndr, "defaultsource", r->defaultsource);
1173 ndr_print_spoolss_DeviceModePrintQuality(ndr, "printquality", r->printquality);
1174 ndr_print_spoolss_DeviceModeColor(ndr, "color", r->color);
1175 ndr_print_spoolss_DeviceModeDuplex(ndr, "duplex", r->duplex);
1176 ndr_print_uint16(ndr, "yresolution", r->yresolution);
1177 ndr_print_spoolss_DeviceModeTTOption(ndr, "ttoption", r->ttoption);
1178 ndr_print_spoolss_DeviceModeCollate(ndr, "collate", r->collate);
1179 ndr_print_string(ndr, "formname", r->formname);
1180 ndr_print_uint16(ndr, "logpixels", r->logpixels);
1181 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
1182 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
1183 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
1184 ndr_print_spoolss_DeviceModeNUp(ndr, "displayflags", r->displayflags);
1185 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
1186 ndr_print_spoolss_DeviceModeICMMethod(ndr, "icmmethod", r->icmmethod);
1187 ndr_print_spoolss_DeviceModeICMIntent(ndr, "icmintent", r->icmintent);
1188 ndr_print_spoolss_DeviceModeMediaType(ndr, "mediatype", r->mediatype);
1189 ndr_print_spoolss_DeviceModeDitherType(ndr, "dithertype", r->dithertype);
1190 ndr_print_uint32(ndr, "reserved1", r->reserved1);
1191 ndr_print_uint32(ndr, "reserved2", r->reserved2);
1192 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
1193 ndr_print_uint32(ndr, "panningheight", r->panningheight);
1194 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
1195 ndr->depth--;
1198 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
1200 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
1203 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1206 return NDR_ERR_SUCCESS;
1209 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1211 uint32_t v;
1212 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1213 *r = v;
1214 return NDR_ERR_SUCCESS;
1217 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1219 ndr_print_uint32(ndr, name, r);
1220 ndr->depth++;
1221 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
1222 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
1223 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
1224 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
1225 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
1226 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
1227 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
1228 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
1229 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
1230 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
1231 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
1232 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
1233 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
1234 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
1235 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
1236 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
1237 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
1238 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
1239 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
1240 ndr->depth--;
1243 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1246 return NDR_ERR_SUCCESS;
1249 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1251 uint32_t v;
1252 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1253 *r = v;
1254 return NDR_ERR_SUCCESS;
1257 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
1259 ndr_print_uint32(ndr, name, r);
1260 ndr->depth++;
1261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
1262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
1263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
1264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
1265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
1266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
1267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
1268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
1269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
1270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
1271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
1272 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
1273 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
1274 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
1275 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
1276 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
1277 ndr->depth--;
1280 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
1282 if (ndr_flags & NDR_SCALARS) {
1283 NDR_CHECK(ndr_push_align(ndr, 5));
1284 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
1286 uint32_t _flags_save_string = ndr->flags;
1287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1288 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
1289 ndr->flags = _flags_save_string;
1292 uint32_t _flags_save_string = ndr->flags;
1293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1294 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
1295 ndr->flags = _flags_save_string;
1298 uint32_t _flags_save_string = ndr->flags;
1299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1300 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1301 ndr->flags = _flags_save_string;
1303 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1305 if (ndr_flags & NDR_BUFFERS) {
1307 uint32_t _flags_save_string = ndr->flags;
1308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1309 if (r->description) {
1310 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
1311 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
1313 ndr->flags = _flags_save_string;
1316 uint32_t _flags_save_string = ndr->flags;
1317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1318 if (r->name) {
1319 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
1320 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
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 if (r->comment) {
1328 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1329 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1331 ndr->flags = _flags_save_string;
1334 return NDR_ERR_SUCCESS;
1337 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
1339 uint32_t _ptr_description;
1340 TALLOC_CTX *_mem_save_description_0;
1341 uint32_t _ptr_name;
1342 TALLOC_CTX *_mem_save_name_0;
1343 uint32_t _ptr_comment;
1344 TALLOC_CTX *_mem_save_comment_0;
1345 if (ndr_flags & NDR_SCALARS) {
1346 NDR_CHECK(ndr_pull_align(ndr, 5));
1347 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
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_description));
1352 if (_ptr_description) {
1353 NDR_PULL_ALLOC(ndr, r->description);
1354 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
1355 } else {
1356 r->description = NULL;
1358 ndr->flags = _flags_save_string;
1361 uint32_t _flags_save_string = ndr->flags;
1362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
1364 if (_ptr_name) {
1365 NDR_PULL_ALLOC(ndr, r->name);
1366 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
1367 } else {
1368 r->name = NULL;
1370 ndr->flags = _flags_save_string;
1373 uint32_t _flags_save_string = ndr->flags;
1374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1376 if (_ptr_comment) {
1377 NDR_PULL_ALLOC(ndr, r->comment);
1378 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1379 } else {
1380 r->comment = NULL;
1382 ndr->flags = _flags_save_string;
1384 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1386 if (ndr_flags & NDR_BUFFERS) {
1388 uint32_t _flags_save_string = ndr->flags;
1389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1390 if (r->description) {
1391 uint32_t _relative_save_offset;
1392 _relative_save_offset = ndr->offset;
1393 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
1394 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
1395 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
1396 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
1397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
1398 ndr->offset = _relative_save_offset;
1400 ndr->flags = _flags_save_string;
1403 uint32_t _flags_save_string = ndr->flags;
1404 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1405 if (r->name) {
1406 uint32_t _relative_save_offset;
1407 _relative_save_offset = ndr->offset;
1408 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
1409 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1410 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
1411 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
1412 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
1413 ndr->offset = _relative_save_offset;
1415 ndr->flags = _flags_save_string;
1418 uint32_t _flags_save_string = ndr->flags;
1419 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1420 if (r->comment) {
1421 uint32_t _relative_save_offset;
1422 _relative_save_offset = ndr->offset;
1423 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1424 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1425 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1426 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1428 ndr->offset = _relative_save_offset;
1430 ndr->flags = _flags_save_string;
1433 return NDR_ERR_SUCCESS;
1436 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
1438 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
1439 ndr->depth++;
1440 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
1441 ndr_print_ptr(ndr, "description", r->description);
1442 ndr->depth++;
1443 if (r->description) {
1444 ndr_print_string(ndr, "description", r->description);
1446 ndr->depth--;
1447 ndr_print_ptr(ndr, "name", r->name);
1448 ndr->depth++;
1449 if (r->name) {
1450 ndr_print_string(ndr, "name", r->name);
1452 ndr->depth--;
1453 ndr_print_ptr(ndr, "comment", r->comment);
1454 ndr->depth++;
1455 if (r->comment) {
1456 ndr_print_string(ndr, "comment", r->comment);
1458 ndr->depth--;
1459 ndr->depth--;
1462 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
1464 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
1467 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
1469 if (ndr_flags & NDR_SCALARS) {
1470 NDR_CHECK(ndr_push_align(ndr, 5));
1472 uint32_t _flags_save_string = ndr->flags;
1473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1474 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1475 ndr->flags = _flags_save_string;
1478 uint32_t _flags_save_string = ndr->flags;
1479 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1480 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1481 ndr->flags = _flags_save_string;
1484 uint32_t _flags_save_string = ndr->flags;
1485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1486 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
1487 ndr->flags = _flags_save_string;
1490 uint32_t _flags_save_string = ndr->flags;
1491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1492 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1493 ndr->flags = _flags_save_string;
1496 uint32_t _flags_save_string = ndr->flags;
1497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1498 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
1499 ndr->flags = _flags_save_string;
1502 uint32_t _flags_save_string = ndr->flags;
1503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1504 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1505 ndr->flags = _flags_save_string;
1508 uint32_t _flags_save_string = ndr->flags;
1509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1510 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
1511 ndr->flags = _flags_save_string;
1513 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
1515 uint32_t _flags_save_string = ndr->flags;
1516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1517 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
1518 ndr->flags = _flags_save_string;
1521 uint32_t _flags_save_string = ndr->flags;
1522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1523 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1524 ndr->flags = _flags_save_string;
1527 uint32_t _flags_save_string = ndr->flags;
1528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1529 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1530 ndr->flags = _flags_save_string;
1533 uint32_t _flags_save_string = ndr->flags;
1534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1535 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1536 ndr->flags = _flags_save_string;
1538 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1539 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1544 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1547 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1549 if (ndr_flags & NDR_BUFFERS) {
1551 uint32_t _flags_save_string = ndr->flags;
1552 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1553 if (r->servername) {
1554 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1555 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1557 ndr->flags = _flags_save_string;
1560 uint32_t _flags_save_string = ndr->flags;
1561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1562 if (r->printername) {
1563 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1564 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1566 ndr->flags = _flags_save_string;
1569 uint32_t _flags_save_string = ndr->flags;
1570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1571 if (r->sharename) {
1572 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1573 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1575 ndr->flags = _flags_save_string;
1578 uint32_t _flags_save_string = ndr->flags;
1579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1580 if (r->portname) {
1581 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1582 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1584 ndr->flags = _flags_save_string;
1587 uint32_t _flags_save_string = ndr->flags;
1588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1589 if (r->drivername) {
1590 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1591 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1593 ndr->flags = _flags_save_string;
1596 uint32_t _flags_save_string = ndr->flags;
1597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1598 if (r->comment) {
1599 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1600 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1602 ndr->flags = _flags_save_string;
1605 uint32_t _flags_save_string = ndr->flags;
1606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1607 if (r->location) {
1608 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1609 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1611 ndr->flags = _flags_save_string;
1613 if (r->devmode) {
1614 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1616 struct ndr_push *_ndr_devmode;
1617 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1618 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1619 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1623 uint32_t _flags_save_string = ndr->flags;
1624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1625 if (r->sepfile) {
1626 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1627 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1629 ndr->flags = _flags_save_string;
1632 uint32_t _flags_save_string = ndr->flags;
1633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1634 if (r->printprocessor) {
1635 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1636 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1638 ndr->flags = _flags_save_string;
1641 uint32_t _flags_save_string = ndr->flags;
1642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1643 if (r->datatype) {
1644 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1645 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1647 ndr->flags = _flags_save_string;
1650 uint32_t _flags_save_string = ndr->flags;
1651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1652 if (r->parameters) {
1653 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1654 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1656 ndr->flags = _flags_save_string;
1658 if (r->secdesc) {
1659 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1661 struct ndr_push *_ndr_secdesc;
1662 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1663 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1664 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1668 return NDR_ERR_SUCCESS;
1671 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1673 uint32_t _ptr_servername;
1674 TALLOC_CTX *_mem_save_servername_0;
1675 uint32_t _ptr_printername;
1676 TALLOC_CTX *_mem_save_printername_0;
1677 uint32_t _ptr_sharename;
1678 TALLOC_CTX *_mem_save_sharename_0;
1679 uint32_t _ptr_portname;
1680 TALLOC_CTX *_mem_save_portname_0;
1681 uint32_t _ptr_drivername;
1682 TALLOC_CTX *_mem_save_drivername_0;
1683 uint32_t _ptr_comment;
1684 TALLOC_CTX *_mem_save_comment_0;
1685 uint32_t _ptr_location;
1686 TALLOC_CTX *_mem_save_location_0;
1687 uint32_t _ptr_devmode;
1688 TALLOC_CTX *_mem_save_devmode_0;
1689 uint32_t _ptr_sepfile;
1690 TALLOC_CTX *_mem_save_sepfile_0;
1691 uint32_t _ptr_printprocessor;
1692 TALLOC_CTX *_mem_save_printprocessor_0;
1693 uint32_t _ptr_datatype;
1694 TALLOC_CTX *_mem_save_datatype_0;
1695 uint32_t _ptr_parameters;
1696 TALLOC_CTX *_mem_save_parameters_0;
1697 uint32_t _ptr_secdesc;
1698 TALLOC_CTX *_mem_save_secdesc_0;
1699 if (ndr_flags & NDR_SCALARS) {
1700 NDR_CHECK(ndr_pull_align(ndr, 5));
1702 uint32_t _flags_save_string = ndr->flags;
1703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1705 if (_ptr_servername) {
1706 NDR_PULL_ALLOC(ndr, r->servername);
1707 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1708 } else {
1709 r->servername = NULL;
1711 ndr->flags = _flags_save_string;
1714 uint32_t _flags_save_string = ndr->flags;
1715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1716 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1717 if (_ptr_printername) {
1718 NDR_PULL_ALLOC(ndr, r->printername);
1719 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1720 } else {
1721 r->printername = NULL;
1723 ndr->flags = _flags_save_string;
1726 uint32_t _flags_save_string = ndr->flags;
1727 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1728 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1729 if (_ptr_sharename) {
1730 NDR_PULL_ALLOC(ndr, r->sharename);
1731 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1732 } else {
1733 r->sharename = NULL;
1735 ndr->flags = _flags_save_string;
1738 uint32_t _flags_save_string = ndr->flags;
1739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1740 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1741 if (_ptr_portname) {
1742 NDR_PULL_ALLOC(ndr, r->portname);
1743 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1744 } else {
1745 r->portname = NULL;
1747 ndr->flags = _flags_save_string;
1750 uint32_t _flags_save_string = ndr->flags;
1751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1752 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1753 if (_ptr_drivername) {
1754 NDR_PULL_ALLOC(ndr, r->drivername);
1755 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1756 } else {
1757 r->drivername = NULL;
1759 ndr->flags = _flags_save_string;
1762 uint32_t _flags_save_string = ndr->flags;
1763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1764 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1765 if (_ptr_comment) {
1766 NDR_PULL_ALLOC(ndr, r->comment);
1767 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1768 } else {
1769 r->comment = NULL;
1771 ndr->flags = _flags_save_string;
1774 uint32_t _flags_save_string = ndr->flags;
1775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1777 if (_ptr_location) {
1778 NDR_PULL_ALLOC(ndr, r->location);
1779 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1780 } else {
1781 r->location = NULL;
1783 ndr->flags = _flags_save_string;
1785 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1786 if (_ptr_devmode) {
1787 NDR_PULL_ALLOC(ndr, r->devmode);
1788 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1789 } else {
1790 r->devmode = NULL;
1793 uint32_t _flags_save_string = ndr->flags;
1794 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1796 if (_ptr_sepfile) {
1797 NDR_PULL_ALLOC(ndr, r->sepfile);
1798 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1799 } else {
1800 r->sepfile = NULL;
1802 ndr->flags = _flags_save_string;
1805 uint32_t _flags_save_string = ndr->flags;
1806 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1807 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1808 if (_ptr_printprocessor) {
1809 NDR_PULL_ALLOC(ndr, r->printprocessor);
1810 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1811 } else {
1812 r->printprocessor = NULL;
1814 ndr->flags = _flags_save_string;
1817 uint32_t _flags_save_string = ndr->flags;
1818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1820 if (_ptr_datatype) {
1821 NDR_PULL_ALLOC(ndr, r->datatype);
1822 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1823 } else {
1824 r->datatype = NULL;
1826 ndr->flags = _flags_save_string;
1829 uint32_t _flags_save_string = ndr->flags;
1830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1832 if (_ptr_parameters) {
1833 NDR_PULL_ALLOC(ndr, r->parameters);
1834 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1835 } else {
1836 r->parameters = NULL;
1838 ndr->flags = _flags_save_string;
1840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1841 if (_ptr_secdesc) {
1842 NDR_PULL_ALLOC(ndr, r->secdesc);
1843 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1844 } else {
1845 r->secdesc = NULL;
1847 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1848 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1849 if (r->priority > 99) {
1850 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1852 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1853 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1854 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1855 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1856 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1857 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1858 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1860 if (ndr_flags & NDR_BUFFERS) {
1862 uint32_t _flags_save_string = ndr->flags;
1863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1864 if (r->servername) {
1865 uint32_t _relative_save_offset;
1866 _relative_save_offset = ndr->offset;
1867 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1868 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1869 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1870 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1871 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1872 ndr->offset = _relative_save_offset;
1874 ndr->flags = _flags_save_string;
1877 uint32_t _flags_save_string = ndr->flags;
1878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1879 if (r->printername) {
1880 uint32_t _relative_save_offset;
1881 _relative_save_offset = ndr->offset;
1882 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1883 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1884 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1885 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1887 ndr->offset = _relative_save_offset;
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 if (r->sharename) {
1895 uint32_t _relative_save_offset;
1896 _relative_save_offset = ndr->offset;
1897 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1898 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1899 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1900 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1901 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1902 ndr->offset = _relative_save_offset;
1904 ndr->flags = _flags_save_string;
1907 uint32_t _flags_save_string = ndr->flags;
1908 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1909 if (r->portname) {
1910 uint32_t _relative_save_offset;
1911 _relative_save_offset = ndr->offset;
1912 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1913 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1914 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1915 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1917 ndr->offset = _relative_save_offset;
1919 ndr->flags = _flags_save_string;
1922 uint32_t _flags_save_string = ndr->flags;
1923 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1924 if (r->drivername) {
1925 uint32_t _relative_save_offset;
1926 _relative_save_offset = ndr->offset;
1927 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1928 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1929 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1930 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1932 ndr->offset = _relative_save_offset;
1934 ndr->flags = _flags_save_string;
1937 uint32_t _flags_save_string = ndr->flags;
1938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1939 if (r->comment) {
1940 uint32_t _relative_save_offset;
1941 _relative_save_offset = ndr->offset;
1942 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1943 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1944 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1945 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1947 ndr->offset = _relative_save_offset;
1949 ndr->flags = _flags_save_string;
1952 uint32_t _flags_save_string = ndr->flags;
1953 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1954 if (r->location) {
1955 uint32_t _relative_save_offset;
1956 _relative_save_offset = ndr->offset;
1957 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1958 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1959 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1960 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1962 ndr->offset = _relative_save_offset;
1964 ndr->flags = _flags_save_string;
1966 if (r->devmode) {
1967 uint32_t _relative_save_offset;
1968 _relative_save_offset = ndr->offset;
1969 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1970 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1971 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1973 struct ndr_pull *_ndr_devmode;
1974 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1975 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1976 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1979 ndr->offset = _relative_save_offset;
1982 uint32_t _flags_save_string = ndr->flags;
1983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1984 if (r->sepfile) {
1985 uint32_t _relative_save_offset;
1986 _relative_save_offset = ndr->offset;
1987 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1988 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1989 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1990 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1992 ndr->offset = _relative_save_offset;
1994 ndr->flags = _flags_save_string;
1997 uint32_t _flags_save_string = ndr->flags;
1998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1999 if (r->printprocessor) {
2000 uint32_t _relative_save_offset;
2001 _relative_save_offset = ndr->offset;
2002 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
2003 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
2004 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
2005 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
2006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
2007 ndr->offset = _relative_save_offset;
2009 ndr->flags = _flags_save_string;
2012 uint32_t _flags_save_string = ndr->flags;
2013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2014 if (r->datatype) {
2015 uint32_t _relative_save_offset;
2016 _relative_save_offset = ndr->offset;
2017 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
2018 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
2019 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
2020 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
2021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
2022 ndr->offset = _relative_save_offset;
2024 ndr->flags = _flags_save_string;
2027 uint32_t _flags_save_string = ndr->flags;
2028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2029 if (r->parameters) {
2030 uint32_t _relative_save_offset;
2031 _relative_save_offset = ndr->offset;
2032 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
2033 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
2034 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
2035 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
2036 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
2037 ndr->offset = _relative_save_offset;
2039 ndr->flags = _flags_save_string;
2041 if (r->secdesc) {
2042 uint32_t _relative_save_offset;
2043 _relative_save_offset = ndr->offset;
2044 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2045 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2046 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2048 struct ndr_pull *_ndr_secdesc;
2049 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2050 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2051 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2053 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2054 ndr->offset = _relative_save_offset;
2057 return NDR_ERR_SUCCESS;
2060 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
2062 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
2063 ndr->depth++;
2064 ndr_print_ptr(ndr, "servername", r->servername);
2065 ndr->depth++;
2066 if (r->servername) {
2067 ndr_print_string(ndr, "servername", r->servername);
2069 ndr->depth--;
2070 ndr_print_ptr(ndr, "printername", r->printername);
2071 ndr->depth++;
2072 if (r->printername) {
2073 ndr_print_string(ndr, "printername", r->printername);
2075 ndr->depth--;
2076 ndr_print_ptr(ndr, "sharename", r->sharename);
2077 ndr->depth++;
2078 if (r->sharename) {
2079 ndr_print_string(ndr, "sharename", r->sharename);
2081 ndr->depth--;
2082 ndr_print_ptr(ndr, "portname", r->portname);
2083 ndr->depth++;
2084 if (r->portname) {
2085 ndr_print_string(ndr, "portname", r->portname);
2087 ndr->depth--;
2088 ndr_print_ptr(ndr, "drivername", r->drivername);
2089 ndr->depth++;
2090 if (r->drivername) {
2091 ndr_print_string(ndr, "drivername", r->drivername);
2093 ndr->depth--;
2094 ndr_print_ptr(ndr, "comment", r->comment);
2095 ndr->depth++;
2096 if (r->comment) {
2097 ndr_print_string(ndr, "comment", r->comment);
2099 ndr->depth--;
2100 ndr_print_ptr(ndr, "location", r->location);
2101 ndr->depth++;
2102 if (r->location) {
2103 ndr_print_string(ndr, "location", r->location);
2105 ndr->depth--;
2106 ndr_print_ptr(ndr, "devmode", r->devmode);
2107 ndr->depth++;
2108 if (r->devmode) {
2109 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2111 ndr->depth--;
2112 ndr_print_ptr(ndr, "sepfile", r->sepfile);
2113 ndr->depth++;
2114 if (r->sepfile) {
2115 ndr_print_string(ndr, "sepfile", r->sepfile);
2117 ndr->depth--;
2118 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
2119 ndr->depth++;
2120 if (r->printprocessor) {
2121 ndr_print_string(ndr, "printprocessor", r->printprocessor);
2123 ndr->depth--;
2124 ndr_print_ptr(ndr, "datatype", r->datatype);
2125 ndr->depth++;
2126 if (r->datatype) {
2127 ndr_print_string(ndr, "datatype", r->datatype);
2129 ndr->depth--;
2130 ndr_print_ptr(ndr, "parameters", r->parameters);
2131 ndr->depth++;
2132 if (r->parameters) {
2133 ndr_print_string(ndr, "parameters", r->parameters);
2135 ndr->depth--;
2136 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2137 ndr->depth++;
2138 if (r->secdesc) {
2139 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2141 ndr->depth--;
2142 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2143 ndr_print_uint32(ndr, "priority", r->priority);
2144 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
2145 ndr_print_uint32(ndr, "starttime", r->starttime);
2146 ndr_print_uint32(ndr, "untiltime", r->untiltime);
2147 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2148 ndr_print_uint32(ndr, "cjobs", r->cjobs);
2149 ndr_print_uint32(ndr, "averageppm", r->averageppm);
2150 ndr->depth--;
2153 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
2155 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
2158 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
2160 if (ndr_flags & NDR_SCALARS) {
2161 NDR_CHECK(ndr_push_align(ndr, 5));
2162 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2163 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2165 if (ndr_flags & NDR_BUFFERS) {
2166 if (r->secdesc) {
2167 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
2169 struct ndr_push *_ndr_secdesc;
2170 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2171 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2172 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2176 return NDR_ERR_SUCCESS;
2179 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
2181 uint32_t _ptr_secdesc;
2182 TALLOC_CTX *_mem_save_secdesc_0;
2183 if (ndr_flags & NDR_SCALARS) {
2184 NDR_CHECK(ndr_pull_align(ndr, 5));
2185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
2186 if (_ptr_secdesc) {
2187 NDR_PULL_ALLOC(ndr, r->secdesc);
2188 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
2189 } else {
2190 r->secdesc = NULL;
2192 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2194 if (ndr_flags & NDR_BUFFERS) {
2195 if (r->secdesc) {
2196 uint32_t _relative_save_offset;
2197 _relative_save_offset = ndr->offset;
2198 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2199 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2200 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2202 struct ndr_pull *_ndr_secdesc;
2203 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2204 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2205 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2208 ndr->offset = _relative_save_offset;
2211 return NDR_ERR_SUCCESS;
2214 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
2216 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
2217 ndr->depth++;
2218 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2219 ndr->depth++;
2220 if (r->secdesc) {
2221 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2223 ndr->depth--;
2224 ndr->depth--;
2227 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
2229 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
2232 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
2234 if (ndr_flags & NDR_SCALARS) {
2235 NDR_CHECK(ndr_push_align(ndr, 5));
2237 uint32_t _flags_save_string = ndr->flags;
2238 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2239 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2240 ndr->flags = _flags_save_string;
2243 uint32_t _flags_save_string = ndr->flags;
2244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2245 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
2246 ndr->flags = _flags_save_string;
2248 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2249 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2251 if (ndr_flags & NDR_BUFFERS) {
2253 uint32_t _flags_save_string = ndr->flags;
2254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2255 if (r->printername) {
2256 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
2257 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2259 ndr->flags = _flags_save_string;
2262 uint32_t _flags_save_string = ndr->flags;
2263 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2264 if (r->servername) {
2265 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
2266 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
2268 ndr->flags = _flags_save_string;
2271 return NDR_ERR_SUCCESS;
2274 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
2276 uint32_t _ptr_printername;
2277 TALLOC_CTX *_mem_save_printername_0;
2278 uint32_t _ptr_servername;
2279 TALLOC_CTX *_mem_save_servername_0;
2280 if (ndr_flags & NDR_SCALARS) {
2281 NDR_CHECK(ndr_pull_align(ndr, 5));
2283 uint32_t _flags_save_string = ndr->flags;
2284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2285 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2286 if (_ptr_printername) {
2287 NDR_PULL_ALLOC(ndr, r->printername);
2288 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2289 } else {
2290 r->printername = NULL;
2292 ndr->flags = _flags_save_string;
2295 uint32_t _flags_save_string = ndr->flags;
2296 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
2298 if (_ptr_servername) {
2299 NDR_PULL_ALLOC(ndr, r->servername);
2300 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
2301 } else {
2302 r->servername = NULL;
2304 ndr->flags = _flags_save_string;
2306 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2307 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2309 if (ndr_flags & NDR_BUFFERS) {
2311 uint32_t _flags_save_string = ndr->flags;
2312 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2313 if (r->printername) {
2314 uint32_t _relative_save_offset;
2315 _relative_save_offset = ndr->offset;
2316 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2317 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2318 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2319 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2321 ndr->offset = _relative_save_offset;
2323 ndr->flags = _flags_save_string;
2326 uint32_t _flags_save_string = ndr->flags;
2327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2328 if (r->servername) {
2329 uint32_t _relative_save_offset;
2330 _relative_save_offset = ndr->offset;
2331 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2332 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2333 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2334 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2336 ndr->offset = _relative_save_offset;
2338 ndr->flags = _flags_save_string;
2341 return NDR_ERR_SUCCESS;
2344 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
2346 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
2347 ndr->depth++;
2348 ndr_print_ptr(ndr, "printername", r->printername);
2349 ndr->depth++;
2350 if (r->printername) {
2351 ndr_print_string(ndr, "printername", r->printername);
2353 ndr->depth--;
2354 ndr_print_ptr(ndr, "servername", r->servername);
2355 ndr->depth++;
2356 if (r->servername) {
2357 ndr_print_string(ndr, "servername", r->servername);
2359 ndr->depth--;
2360 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2361 ndr->depth--;
2364 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
2366 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
2369 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
2371 if (ndr_flags & NDR_SCALARS) {
2372 NDR_CHECK(ndr_push_align(ndr, 5));
2374 uint32_t _flags_save_string = ndr->flags;
2375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2376 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2377 ndr->flags = _flags_save_string;
2380 uint32_t _flags_save_string = ndr->flags;
2381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2382 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
2383 ndr->flags = _flags_save_string;
2385 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
2387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
2388 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2390 if (ndr_flags & NDR_BUFFERS) {
2392 uint32_t _flags_save_string = ndr->flags;
2393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2394 if (r->printername) {
2395 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
2396 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2398 ndr->flags = _flags_save_string;
2401 uint32_t _flags_save_string = ndr->flags;
2402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2403 if (r->portname) {
2404 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
2405 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
2407 ndr->flags = _flags_save_string;
2410 return NDR_ERR_SUCCESS;
2413 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
2415 uint32_t _ptr_printername;
2416 TALLOC_CTX *_mem_save_printername_0;
2417 uint32_t _ptr_portname;
2418 TALLOC_CTX *_mem_save_portname_0;
2419 if (ndr_flags & NDR_SCALARS) {
2420 NDR_CHECK(ndr_pull_align(ndr, 5));
2422 uint32_t _flags_save_string = ndr->flags;
2423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2424 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2425 if (_ptr_printername) {
2426 NDR_PULL_ALLOC(ndr, r->printername);
2427 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2428 } else {
2429 r->printername = NULL;
2431 ndr->flags = _flags_save_string;
2434 uint32_t _flags_save_string = ndr->flags;
2435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2436 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
2437 if (_ptr_portname) {
2438 NDR_PULL_ALLOC(ndr, r->portname);
2439 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
2440 } else {
2441 r->portname = NULL;
2443 ndr->flags = _flags_save_string;
2445 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2446 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
2447 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
2448 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2450 if (ndr_flags & NDR_BUFFERS) {
2452 uint32_t _flags_save_string = ndr->flags;
2453 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2454 if (r->printername) {
2455 uint32_t _relative_save_offset;
2456 _relative_save_offset = ndr->offset;
2457 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2458 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2459 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2460 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2462 ndr->offset = _relative_save_offset;
2464 ndr->flags = _flags_save_string;
2467 uint32_t _flags_save_string = ndr->flags;
2468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2469 if (r->portname) {
2470 uint32_t _relative_save_offset;
2471 _relative_save_offset = ndr->offset;
2472 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2473 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2474 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2475 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2477 ndr->offset = _relative_save_offset;
2479 ndr->flags = _flags_save_string;
2482 return NDR_ERR_SUCCESS;
2485 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
2487 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
2488 ndr->depth++;
2489 ndr_print_ptr(ndr, "printername", r->printername);
2490 ndr->depth++;
2491 if (r->printername) {
2492 ndr_print_string(ndr, "printername", r->printername);
2494 ndr->depth--;
2495 ndr_print_ptr(ndr, "portname", r->portname);
2496 ndr->depth++;
2497 if (r->portname) {
2498 ndr_print_string(ndr, "portname", r->portname);
2500 ndr->depth--;
2501 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2502 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2503 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2504 ndr->depth--;
2507 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
2509 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
2512 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2514 if (ndr_flags & NDR_SCALARS) {
2515 NDR_CHECK(ndr_push_align(ndr, 4));
2516 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2517 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2519 if (ndr_flags & NDR_BUFFERS) {
2521 return NDR_ERR_SUCCESS;
2524 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2526 if (ndr_flags & NDR_SCALARS) {
2527 NDR_CHECK(ndr_pull_align(ndr, 4));
2528 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2529 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2531 if (ndr_flags & NDR_BUFFERS) {
2533 return NDR_ERR_SUCCESS;
2536 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2538 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2539 ndr->depth++;
2540 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2541 ndr->depth--;
2544 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
2546 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
2549 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2552 return NDR_ERR_SUCCESS;
2555 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2557 uint32_t v;
2558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2559 *r = v;
2560 return NDR_ERR_SUCCESS;
2563 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2565 ndr_print_uint32(ndr, name, r);
2566 ndr->depth++;
2567 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2568 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2569 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2570 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2571 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2572 ndr->depth--;
2575 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2577 if (ndr_flags & NDR_SCALARS) {
2578 NDR_CHECK(ndr_push_align(ndr, 5));
2580 uint32_t _flags_save_string = ndr->flags;
2581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2582 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2583 ndr->flags = _flags_save_string;
2585 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2586 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2588 if (ndr_flags & NDR_BUFFERS) {
2590 uint32_t _flags_save_string = ndr->flags;
2591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2592 if (r->guid) {
2593 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2594 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2596 ndr->flags = _flags_save_string;
2599 return NDR_ERR_SUCCESS;
2602 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2604 uint32_t _ptr_guid;
2605 TALLOC_CTX *_mem_save_guid_0;
2606 if (ndr_flags & NDR_SCALARS) {
2607 NDR_CHECK(ndr_pull_align(ndr, 5));
2609 uint32_t _flags_save_string = ndr->flags;
2610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2611 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2612 if (_ptr_guid) {
2613 NDR_PULL_ALLOC(ndr, r->guid);
2614 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2615 } else {
2616 r->guid = NULL;
2618 ndr->flags = _flags_save_string;
2620 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2621 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2623 if (ndr_flags & NDR_BUFFERS) {
2625 uint32_t _flags_save_string = ndr->flags;
2626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2627 if (r->guid) {
2628 uint32_t _relative_save_offset;
2629 _relative_save_offset = ndr->offset;
2630 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2631 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2632 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2633 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2635 ndr->offset = _relative_save_offset;
2637 ndr->flags = _flags_save_string;
2640 return NDR_ERR_SUCCESS;
2643 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2645 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2646 ndr->depth++;
2647 ndr_print_ptr(ndr, "guid", r->guid);
2648 ndr->depth++;
2649 if (r->guid) {
2650 ndr_print_string(ndr, "guid", r->guid);
2652 ndr->depth--;
2653 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2654 ndr->depth--;
2657 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2659 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2662 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2664 if (ndr_flags & NDR_SCALARS) {
2665 NDR_CHECK(ndr_push_align(ndr, 5));
2666 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2667 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2669 if (ndr_flags & NDR_BUFFERS) {
2670 if (r->devmode) {
2671 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2673 struct ndr_push *_ndr_devmode;
2674 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2675 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2676 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2680 return NDR_ERR_SUCCESS;
2683 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2685 uint32_t _ptr_devmode;
2686 TALLOC_CTX *_mem_save_devmode_0;
2687 if (ndr_flags & NDR_SCALARS) {
2688 NDR_CHECK(ndr_pull_align(ndr, 5));
2689 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2690 if (_ptr_devmode) {
2691 NDR_PULL_ALLOC(ndr, r->devmode);
2692 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2693 } else {
2694 r->devmode = NULL;
2696 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2698 if (ndr_flags & NDR_BUFFERS) {
2699 if (r->devmode) {
2700 uint32_t _relative_save_offset;
2701 _relative_save_offset = ndr->offset;
2702 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2703 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2704 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2706 struct ndr_pull *_ndr_devmode;
2707 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2708 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2709 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2712 ndr->offset = _relative_save_offset;
2715 return NDR_ERR_SUCCESS;
2718 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2720 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2721 ndr->depth++;
2722 ndr_print_ptr(ndr, "devmode", r->devmode);
2723 ndr->depth++;
2724 if (r->devmode) {
2725 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2727 ndr->depth--;
2728 ndr->depth--;
2731 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2733 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2734 if (ndr_flags & NDR_SCALARS) {
2735 int level = ndr_push_get_switch_value(ndr, r);
2736 NDR_CHECK(ndr_push_union_align(ndr, 5));
2737 switch (level) {
2738 case 0: {
2739 NDR_CHECK(ndr_push_align(ndr, 5));
2740 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2741 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2742 break; }
2744 case 1: {
2745 NDR_CHECK(ndr_push_align(ndr, 5));
2746 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2747 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2748 break; }
2750 case 2: {
2751 NDR_CHECK(ndr_push_align(ndr, 5));
2752 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2753 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2754 break; }
2756 case 3: {
2757 NDR_CHECK(ndr_push_align(ndr, 5));
2758 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2759 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2760 break; }
2762 case 4: {
2763 NDR_CHECK(ndr_push_align(ndr, 5));
2764 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2765 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2766 break; }
2768 case 5: {
2769 NDR_CHECK(ndr_push_align(ndr, 5));
2770 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2771 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2772 break; }
2774 case 6: {
2775 NDR_CHECK(ndr_push_align(ndr, 4));
2776 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2777 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2778 break; }
2780 case 7: {
2781 NDR_CHECK(ndr_push_align(ndr, 5));
2782 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2783 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2784 break; }
2786 case 8: {
2787 NDR_CHECK(ndr_push_align(ndr, 5));
2788 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2789 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2790 break; }
2792 case 9: {
2793 NDR_CHECK(ndr_push_align(ndr, 5));
2794 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2795 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2796 break; }
2798 default: {
2799 break; }
2803 if (ndr_flags & NDR_BUFFERS) {
2804 int level = ndr_push_get_switch_value(ndr, r);
2805 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2806 switch (level) {
2807 case 0:
2808 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2809 break;
2811 case 1:
2812 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2813 break;
2815 case 2:
2816 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2817 break;
2819 case 3:
2820 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2821 break;
2823 case 4:
2824 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2825 break;
2827 case 5:
2828 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2829 break;
2831 case 6:
2832 break;
2834 case 7:
2835 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2836 break;
2838 case 8:
2839 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2840 break;
2842 case 9:
2843 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2844 break;
2846 default:
2847 break;
2851 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2852 return NDR_ERR_SUCCESS;
2855 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2857 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2858 int level;
2859 level = ndr_pull_get_switch_value(ndr, r);
2860 if (ndr_flags & NDR_SCALARS) {
2861 NDR_CHECK(ndr_pull_union_align(ndr, 5));
2862 switch (level) {
2863 case 0: {
2864 NDR_CHECK(ndr_pull_align(ndr, 5));
2865 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2866 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2867 break; }
2869 case 1: {
2870 NDR_CHECK(ndr_pull_align(ndr, 5));
2871 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2872 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2873 break; }
2875 case 2: {
2876 NDR_CHECK(ndr_pull_align(ndr, 5));
2877 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2878 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2879 break; }
2881 case 3: {
2882 NDR_CHECK(ndr_pull_align(ndr, 5));
2883 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2884 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2885 break; }
2887 case 4: {
2888 NDR_CHECK(ndr_pull_align(ndr, 5));
2889 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2890 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2891 break; }
2893 case 5: {
2894 NDR_CHECK(ndr_pull_align(ndr, 5));
2895 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2896 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2897 break; }
2899 case 6: {
2900 NDR_CHECK(ndr_pull_align(ndr, 4));
2901 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2902 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2903 break; }
2905 case 7: {
2906 NDR_CHECK(ndr_pull_align(ndr, 5));
2907 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2908 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2909 break; }
2911 case 8: {
2912 NDR_CHECK(ndr_pull_align(ndr, 5));
2913 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2914 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2915 break; }
2917 case 9: {
2918 NDR_CHECK(ndr_pull_align(ndr, 5));
2919 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2920 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2921 break; }
2923 default: {
2924 break; }
2928 if (ndr_flags & NDR_BUFFERS) {
2929 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2930 switch (level) {
2931 case 0:
2932 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2933 break;
2935 case 1:
2936 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2937 break;
2939 case 2:
2940 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2941 break;
2943 case 3:
2944 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2945 break;
2947 case 4:
2948 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2949 break;
2951 case 5:
2952 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2953 break;
2955 case 6:
2956 break;
2958 case 7:
2959 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2960 break;
2962 case 8:
2963 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2964 break;
2966 case 9:
2967 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2968 break;
2970 default:
2971 break;
2975 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2976 return NDR_ERR_SUCCESS;
2979 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2981 int level;
2982 level = ndr_print_get_switch_value(ndr, r);
2983 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2984 switch (level) {
2985 case 0:
2986 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2987 break;
2989 case 1:
2990 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2991 break;
2993 case 2:
2994 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2995 break;
2997 case 3:
2998 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2999 break;
3001 case 4:
3002 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
3003 break;
3005 case 5:
3006 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
3007 break;
3009 case 6:
3010 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
3011 break;
3013 case 7:
3014 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
3015 break;
3017 case 8:
3018 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
3019 break;
3021 case 9:
3022 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
3023 break;
3025 default:
3026 break;
3031 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
3033 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
3036 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
3038 if (ndr_flags & NDR_SCALARS) {
3039 NDR_CHECK(ndr_push_align(ndr, 5));
3040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3041 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3042 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3044 if (ndr_flags & NDR_BUFFERS) {
3045 if (r->devmode) {
3047 struct ndr_push *_ndr_devmode;
3048 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3049 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3050 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3054 return NDR_ERR_SUCCESS;
3057 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
3059 uint32_t _ptr_devmode;
3060 TALLOC_CTX *_mem_save_devmode_0;
3061 if (ndr_flags & NDR_SCALARS) {
3062 NDR_CHECK(ndr_pull_align(ndr, 5));
3063 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
3064 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3065 if (_ptr_devmode) {
3066 NDR_PULL_ALLOC(ndr, r->devmode);
3067 } else {
3068 r->devmode = NULL;
3070 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3072 if (ndr_flags & NDR_BUFFERS) {
3073 if (r->devmode) {
3074 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3075 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3077 struct ndr_pull *_ndr_devmode;
3078 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
3079 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3080 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
3082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3085 return NDR_ERR_SUCCESS;
3088 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
3090 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
3091 ndr->depth++;
3092 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);
3093 ndr_print_ptr(ndr, "devmode", r->devmode);
3094 ndr->depth++;
3095 if (r->devmode) {
3096 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3098 ndr->depth--;
3099 ndr->depth--;
3102 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
3104 if (ndr_flags & NDR_SCALARS) {
3105 NDR_CHECK(ndr_push_align(ndr, 5));
3106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3108 uint32_t _flags_save_string = ndr->flags;
3109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3110 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3111 ndr->flags = _flags_save_string;
3114 uint32_t _flags_save_string = ndr->flags;
3115 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3116 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3117 ndr->flags = _flags_save_string;
3120 uint32_t _flags_save_string = ndr->flags;
3121 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3122 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3123 ndr->flags = _flags_save_string;
3126 uint32_t _flags_save_string = ndr->flags;
3127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3128 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3129 ndr->flags = _flags_save_string;
3132 uint32_t _flags_save_string = ndr->flags;
3133 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3134 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3135 ndr->flags = _flags_save_string;
3138 uint32_t _flags_save_string = ndr->flags;
3139 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3140 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3141 ndr->flags = _flags_save_string;
3143 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3148 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3149 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3151 if (ndr_flags & NDR_BUFFERS) {
3153 uint32_t _flags_save_string = ndr->flags;
3154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3155 if (r->printer_name) {
3156 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3157 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3159 ndr->flags = _flags_save_string;
3162 uint32_t _flags_save_string = ndr->flags;
3163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3164 if (r->server_name) {
3165 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3166 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3168 ndr->flags = _flags_save_string;
3171 uint32_t _flags_save_string = ndr->flags;
3172 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3173 if (r->user_name) {
3174 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3175 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3177 ndr->flags = _flags_save_string;
3180 uint32_t _flags_save_string = ndr->flags;
3181 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3182 if (r->document_name) {
3183 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3184 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3186 ndr->flags = _flags_save_string;
3189 uint32_t _flags_save_string = ndr->flags;
3190 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3191 if (r->data_type) {
3192 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3193 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3195 ndr->flags = _flags_save_string;
3198 uint32_t _flags_save_string = ndr->flags;
3199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3200 if (r->text_status) {
3201 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3202 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3204 ndr->flags = _flags_save_string;
3207 return NDR_ERR_SUCCESS;
3210 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
3212 uint32_t _ptr_printer_name;
3213 TALLOC_CTX *_mem_save_printer_name_0;
3214 uint32_t _ptr_server_name;
3215 TALLOC_CTX *_mem_save_server_name_0;
3216 uint32_t _ptr_user_name;
3217 TALLOC_CTX *_mem_save_user_name_0;
3218 uint32_t _ptr_document_name;
3219 TALLOC_CTX *_mem_save_document_name_0;
3220 uint32_t _ptr_data_type;
3221 TALLOC_CTX *_mem_save_data_type_0;
3222 uint32_t _ptr_text_status;
3223 TALLOC_CTX *_mem_save_text_status_0;
3224 if (ndr_flags & NDR_SCALARS) {
3225 NDR_CHECK(ndr_pull_align(ndr, 5));
3226 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3228 uint32_t _flags_save_string = ndr->flags;
3229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3230 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3231 if (_ptr_printer_name) {
3232 NDR_PULL_ALLOC(ndr, r->printer_name);
3233 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3234 } else {
3235 r->printer_name = NULL;
3237 ndr->flags = _flags_save_string;
3240 uint32_t _flags_save_string = ndr->flags;
3241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3242 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3243 if (_ptr_server_name) {
3244 NDR_PULL_ALLOC(ndr, r->server_name);
3245 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3246 } else {
3247 r->server_name = NULL;
3249 ndr->flags = _flags_save_string;
3252 uint32_t _flags_save_string = ndr->flags;
3253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3254 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3255 if (_ptr_user_name) {
3256 NDR_PULL_ALLOC(ndr, r->user_name);
3257 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3258 } else {
3259 r->user_name = NULL;
3261 ndr->flags = _flags_save_string;
3264 uint32_t _flags_save_string = ndr->flags;
3265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3266 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3267 if (_ptr_document_name) {
3268 NDR_PULL_ALLOC(ndr, r->document_name);
3269 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3270 } else {
3271 r->document_name = NULL;
3273 ndr->flags = _flags_save_string;
3276 uint32_t _flags_save_string = ndr->flags;
3277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3278 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3279 if (_ptr_data_type) {
3280 NDR_PULL_ALLOC(ndr, r->data_type);
3281 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3282 } else {
3283 r->data_type = NULL;
3285 ndr->flags = _flags_save_string;
3288 uint32_t _flags_save_string = ndr->flags;
3289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3290 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3291 if (_ptr_text_status) {
3292 NDR_PULL_ALLOC(ndr, r->text_status);
3293 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3294 } else {
3295 r->text_status = NULL;
3297 ndr->flags = _flags_save_string;
3299 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3300 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3301 if (r->priority > 99) {
3302 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3304 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3306 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3307 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3308 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
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);
3344 if (r->user_name) {
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->data_type) {
3375 uint32_t _relative_save_offset;
3376 _relative_save_offset = ndr->offset;
3377 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3378 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3379 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3380 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_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);
3389 if (r->text_status) {
3390 uint32_t _relative_save_offset;
3391 _relative_save_offset = ndr->offset;
3392 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3393 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3394 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3395 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3397 ndr->offset = _relative_save_offset;
3399 ndr->flags = _flags_save_string;
3402 return NDR_ERR_SUCCESS;
3405 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
3407 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
3408 ndr->depth++;
3409 ndr_print_uint32(ndr, "job_id", r->job_id);
3410 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3411 ndr->depth++;
3412 if (r->printer_name) {
3413 ndr_print_string(ndr, "printer_name", r->printer_name);
3415 ndr->depth--;
3416 ndr_print_ptr(ndr, "server_name", r->server_name);
3417 ndr->depth++;
3418 if (r->server_name) {
3419 ndr_print_string(ndr, "server_name", r->server_name);
3421 ndr->depth--;
3422 ndr_print_ptr(ndr, "user_name", r->user_name);
3423 ndr->depth++;
3424 if (r->user_name) {
3425 ndr_print_string(ndr, "user_name", r->user_name);
3427 ndr->depth--;
3428 ndr_print_ptr(ndr, "document_name", r->document_name);
3429 ndr->depth++;
3430 if (r->document_name) {
3431 ndr_print_string(ndr, "document_name", r->document_name);
3433 ndr->depth--;
3434 ndr_print_ptr(ndr, "data_type", r->data_type);
3435 ndr->depth++;
3436 if (r->data_type) {
3437 ndr_print_string(ndr, "data_type", r->data_type);
3439 ndr->depth--;
3440 ndr_print_ptr(ndr, "text_status", r->text_status);
3441 ndr->depth++;
3442 if (r->text_status) {
3443 ndr_print_string(ndr, "text_status", r->text_status);
3445 ndr->depth--;
3446 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3447 ndr_print_uint32(ndr, "priority", r->priority);
3448 ndr_print_uint32(ndr, "position", r->position);
3449 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3450 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3451 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3452 ndr->depth--;
3455 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
3457 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
3460 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
3462 if (ndr_flags & NDR_SCALARS) {
3463 NDR_CHECK(ndr_push_align(ndr, 5));
3464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3466 uint32_t _flags_save_string = ndr->flags;
3467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3468 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3469 ndr->flags = _flags_save_string;
3472 uint32_t _flags_save_string = ndr->flags;
3473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3474 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3475 ndr->flags = _flags_save_string;
3478 uint32_t _flags_save_string = ndr->flags;
3479 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3480 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3481 ndr->flags = _flags_save_string;
3484 uint32_t _flags_save_string = ndr->flags;
3485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3486 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3487 ndr->flags = _flags_save_string;
3490 uint32_t _flags_save_string = ndr->flags;
3491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3492 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3493 ndr->flags = _flags_save_string;
3496 uint32_t _flags_save_string = ndr->flags;
3497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3498 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3499 ndr->flags = _flags_save_string;
3502 uint32_t _flags_save_string = ndr->flags;
3503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3504 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3505 ndr->flags = _flags_save_string;
3508 uint32_t _flags_save_string = ndr->flags;
3509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3510 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3511 ndr->flags = _flags_save_string;
3514 uint32_t _flags_save_string = ndr->flags;
3515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3516 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3517 ndr->flags = _flags_save_string;
3519 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3521 uint32_t _flags_save_string = ndr->flags;
3522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3523 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3524 ndr->flags = _flags_save_string;
3526 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3527 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3534 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3537 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3539 if (ndr_flags & NDR_BUFFERS) {
3541 uint32_t _flags_save_string = ndr->flags;
3542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3543 if (r->printer_name) {
3544 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3545 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3547 ndr->flags = _flags_save_string;
3550 uint32_t _flags_save_string = ndr->flags;
3551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3552 if (r->server_name) {
3553 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3554 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3556 ndr->flags = _flags_save_string;
3559 uint32_t _flags_save_string = ndr->flags;
3560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3561 if (r->user_name) {
3562 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3563 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3565 ndr->flags = _flags_save_string;
3568 uint32_t _flags_save_string = ndr->flags;
3569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3570 if (r->document_name) {
3571 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3572 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3574 ndr->flags = _flags_save_string;
3577 uint32_t _flags_save_string = ndr->flags;
3578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3579 if (r->notify_name) {
3580 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3581 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3583 ndr->flags = _flags_save_string;
3586 uint32_t _flags_save_string = ndr->flags;
3587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3588 if (r->data_type) {
3589 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3590 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3592 ndr->flags = _flags_save_string;
3595 uint32_t _flags_save_string = ndr->flags;
3596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3597 if (r->print_processor) {
3598 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3599 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3601 ndr->flags = _flags_save_string;
3604 uint32_t _flags_save_string = ndr->flags;
3605 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3606 if (r->parameters) {
3607 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3608 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3610 ndr->flags = _flags_save_string;
3613 uint32_t _flags_save_string = ndr->flags;
3614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3615 if (r->driver_name) {
3616 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3617 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3619 ndr->flags = _flags_save_string;
3621 if (r->devmode) {
3622 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3623 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3626 uint32_t _flags_save_string = ndr->flags;
3627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3628 if (r->text_status) {
3629 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3630 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3632 ndr->flags = _flags_save_string;
3634 if (r->secdesc) {
3635 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3636 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3639 return NDR_ERR_SUCCESS;
3642 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3644 uint32_t _ptr_printer_name;
3645 TALLOC_CTX *_mem_save_printer_name_0;
3646 uint32_t _ptr_server_name;
3647 TALLOC_CTX *_mem_save_server_name_0;
3648 uint32_t _ptr_user_name;
3649 TALLOC_CTX *_mem_save_user_name_0;
3650 uint32_t _ptr_document_name;
3651 TALLOC_CTX *_mem_save_document_name_0;
3652 uint32_t _ptr_notify_name;
3653 TALLOC_CTX *_mem_save_notify_name_0;
3654 uint32_t _ptr_data_type;
3655 TALLOC_CTX *_mem_save_data_type_0;
3656 uint32_t _ptr_print_processor;
3657 TALLOC_CTX *_mem_save_print_processor_0;
3658 uint32_t _ptr_parameters;
3659 TALLOC_CTX *_mem_save_parameters_0;
3660 uint32_t _ptr_driver_name;
3661 TALLOC_CTX *_mem_save_driver_name_0;
3662 uint32_t _ptr_devmode;
3663 TALLOC_CTX *_mem_save_devmode_0;
3664 uint32_t _ptr_text_status;
3665 TALLOC_CTX *_mem_save_text_status_0;
3666 uint32_t _ptr_secdesc;
3667 TALLOC_CTX *_mem_save_secdesc_0;
3668 if (ndr_flags & NDR_SCALARS) {
3669 NDR_CHECK(ndr_pull_align(ndr, 5));
3670 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3672 uint32_t _flags_save_string = ndr->flags;
3673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3674 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3675 if (_ptr_printer_name) {
3676 NDR_PULL_ALLOC(ndr, r->printer_name);
3677 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3678 } else {
3679 r->printer_name = NULL;
3681 ndr->flags = _flags_save_string;
3684 uint32_t _flags_save_string = ndr->flags;
3685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3687 if (_ptr_server_name) {
3688 NDR_PULL_ALLOC(ndr, r->server_name);
3689 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3690 } else {
3691 r->server_name = NULL;
3693 ndr->flags = _flags_save_string;
3696 uint32_t _flags_save_string = ndr->flags;
3697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3699 if (_ptr_user_name) {
3700 NDR_PULL_ALLOC(ndr, r->user_name);
3701 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3702 } else {
3703 r->user_name = NULL;
3705 ndr->flags = _flags_save_string;
3708 uint32_t _flags_save_string = ndr->flags;
3709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3710 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3711 if (_ptr_document_name) {
3712 NDR_PULL_ALLOC(ndr, r->document_name);
3713 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3714 } else {
3715 r->document_name = NULL;
3717 ndr->flags = _flags_save_string;
3720 uint32_t _flags_save_string = ndr->flags;
3721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3722 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3723 if (_ptr_notify_name) {
3724 NDR_PULL_ALLOC(ndr, r->notify_name);
3725 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3726 } else {
3727 r->notify_name = NULL;
3729 ndr->flags = _flags_save_string;
3732 uint32_t _flags_save_string = ndr->flags;
3733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3734 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3735 if (_ptr_data_type) {
3736 NDR_PULL_ALLOC(ndr, r->data_type);
3737 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3738 } else {
3739 r->data_type = NULL;
3741 ndr->flags = _flags_save_string;
3744 uint32_t _flags_save_string = ndr->flags;
3745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3746 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3747 if (_ptr_print_processor) {
3748 NDR_PULL_ALLOC(ndr, r->print_processor);
3749 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3750 } else {
3751 r->print_processor = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3759 if (_ptr_parameters) {
3760 NDR_PULL_ALLOC(ndr, r->parameters);
3761 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3762 } else {
3763 r->parameters = NULL;
3765 ndr->flags = _flags_save_string;
3768 uint32_t _flags_save_string = ndr->flags;
3769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3770 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3771 if (_ptr_driver_name) {
3772 NDR_PULL_ALLOC(ndr, r->driver_name);
3773 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3774 } else {
3775 r->driver_name = NULL;
3777 ndr->flags = _flags_save_string;
3779 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3780 if (_ptr_devmode) {
3781 NDR_PULL_ALLOC(ndr, r->devmode);
3782 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3783 } else {
3784 r->devmode = NULL;
3787 uint32_t _flags_save_string = ndr->flags;
3788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3790 if (_ptr_text_status) {
3791 NDR_PULL_ALLOC(ndr, r->text_status);
3792 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3793 } else {
3794 r->text_status = NULL;
3796 ndr->flags = _flags_save_string;
3798 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3799 if (_ptr_secdesc) {
3800 NDR_PULL_ALLOC(ndr, r->secdesc);
3801 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3802 } else {
3803 r->secdesc = NULL;
3805 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3806 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3807 if (r->priority > 99) {
3808 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3810 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3811 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3813 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3814 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3815 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3816 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3817 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3818 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3820 if (ndr_flags & NDR_BUFFERS) {
3822 uint32_t _flags_save_string = ndr->flags;
3823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3824 if (r->printer_name) {
3825 uint32_t _relative_save_offset;
3826 _relative_save_offset = ndr->offset;
3827 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3828 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3829 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3830 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3832 ndr->offset = _relative_save_offset;
3834 ndr->flags = _flags_save_string;
3837 uint32_t _flags_save_string = ndr->flags;
3838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3839 if (r->server_name) {
3840 uint32_t _relative_save_offset;
3841 _relative_save_offset = ndr->offset;
3842 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3843 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3844 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3845 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3847 ndr->offset = _relative_save_offset;
3849 ndr->flags = _flags_save_string;
3852 uint32_t _flags_save_string = ndr->flags;
3853 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3854 if (r->user_name) {
3855 uint32_t _relative_save_offset;
3856 _relative_save_offset = ndr->offset;
3857 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3858 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3859 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3860 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3862 ndr->offset = _relative_save_offset;
3864 ndr->flags = _flags_save_string;
3867 uint32_t _flags_save_string = ndr->flags;
3868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3869 if (r->document_name) {
3870 uint32_t _relative_save_offset;
3871 _relative_save_offset = ndr->offset;
3872 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3873 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3874 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3875 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3877 ndr->offset = _relative_save_offset;
3879 ndr->flags = _flags_save_string;
3882 uint32_t _flags_save_string = ndr->flags;
3883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3884 if (r->notify_name) {
3885 uint32_t _relative_save_offset;
3886 _relative_save_offset = ndr->offset;
3887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3888 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3889 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3892 ndr->offset = _relative_save_offset;
3894 ndr->flags = _flags_save_string;
3897 uint32_t _flags_save_string = ndr->flags;
3898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3899 if (r->data_type) {
3900 uint32_t _relative_save_offset;
3901 _relative_save_offset = ndr->offset;
3902 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3903 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3904 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3905 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3907 ndr->offset = _relative_save_offset;
3909 ndr->flags = _flags_save_string;
3912 uint32_t _flags_save_string = ndr->flags;
3913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3914 if (r->print_processor) {
3915 uint32_t _relative_save_offset;
3916 _relative_save_offset = ndr->offset;
3917 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
3918 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3919 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
3920 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
3921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
3922 ndr->offset = _relative_save_offset;
3924 ndr->flags = _flags_save_string;
3927 uint32_t _flags_save_string = ndr->flags;
3928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3929 if (r->parameters) {
3930 uint32_t _relative_save_offset;
3931 _relative_save_offset = ndr->offset;
3932 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
3933 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3934 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3935 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
3936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3937 ndr->offset = _relative_save_offset;
3939 ndr->flags = _flags_save_string;
3942 uint32_t _flags_save_string = ndr->flags;
3943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3944 if (r->driver_name) {
3945 uint32_t _relative_save_offset;
3946 _relative_save_offset = ndr->offset;
3947 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
3948 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3949 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
3950 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
3951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
3952 ndr->offset = _relative_save_offset;
3954 ndr->flags = _flags_save_string;
3956 if (r->devmode) {
3957 uint32_t _relative_save_offset;
3958 _relative_save_offset = ndr->offset;
3959 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
3960 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3961 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3962 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3964 ndr->offset = _relative_save_offset;
3967 uint32_t _flags_save_string = ndr->flags;
3968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3969 if (r->text_status) {
3970 uint32_t _relative_save_offset;
3971 _relative_save_offset = ndr->offset;
3972 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3973 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3974 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3975 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3977 ndr->offset = _relative_save_offset;
3979 ndr->flags = _flags_save_string;
3981 if (r->secdesc) {
3982 uint32_t _relative_save_offset;
3983 _relative_save_offset = ndr->offset;
3984 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
3985 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3986 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3987 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3989 ndr->offset = _relative_save_offset;
3992 return NDR_ERR_SUCCESS;
3995 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
3997 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
3998 ndr->depth++;
3999 ndr_print_uint32(ndr, "job_id", r->job_id);
4000 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4001 ndr->depth++;
4002 if (r->printer_name) {
4003 ndr_print_string(ndr, "printer_name", r->printer_name);
4005 ndr->depth--;
4006 ndr_print_ptr(ndr, "server_name", r->server_name);
4007 ndr->depth++;
4008 if (r->server_name) {
4009 ndr_print_string(ndr, "server_name", r->server_name);
4011 ndr->depth--;
4012 ndr_print_ptr(ndr, "user_name", r->user_name);
4013 ndr->depth++;
4014 if (r->user_name) {
4015 ndr_print_string(ndr, "user_name", r->user_name);
4017 ndr->depth--;
4018 ndr_print_ptr(ndr, "document_name", r->document_name);
4019 ndr->depth++;
4020 if (r->document_name) {
4021 ndr_print_string(ndr, "document_name", r->document_name);
4023 ndr->depth--;
4024 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4025 ndr->depth++;
4026 if (r->notify_name) {
4027 ndr_print_string(ndr, "notify_name", r->notify_name);
4029 ndr->depth--;
4030 ndr_print_ptr(ndr, "data_type", r->data_type);
4031 ndr->depth++;
4032 if (r->data_type) {
4033 ndr_print_string(ndr, "data_type", r->data_type);
4035 ndr->depth--;
4036 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4037 ndr->depth++;
4038 if (r->print_processor) {
4039 ndr_print_string(ndr, "print_processor", r->print_processor);
4041 ndr->depth--;
4042 ndr_print_ptr(ndr, "parameters", r->parameters);
4043 ndr->depth++;
4044 if (r->parameters) {
4045 ndr_print_string(ndr, "parameters", r->parameters);
4047 ndr->depth--;
4048 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4049 ndr->depth++;
4050 if (r->driver_name) {
4051 ndr_print_string(ndr, "driver_name", r->driver_name);
4053 ndr->depth--;
4054 ndr_print_ptr(ndr, "devmode", r->devmode);
4055 ndr->depth++;
4056 if (r->devmode) {
4057 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4059 ndr->depth--;
4060 ndr_print_ptr(ndr, "text_status", r->text_status);
4061 ndr->depth++;
4062 if (r->text_status) {
4063 ndr_print_string(ndr, "text_status", r->text_status);
4065 ndr->depth--;
4066 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4067 ndr->depth++;
4068 if (r->secdesc) {
4069 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4071 ndr->depth--;
4072 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4073 ndr_print_uint32(ndr, "priority", r->priority);
4074 ndr_print_uint32(ndr, "position", r->position);
4075 ndr_print_uint32(ndr, "start_time", r->start_time);
4076 ndr_print_uint32(ndr, "until_time", r->until_time);
4077 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4078 ndr_print_uint32(ndr, "size", r->size);
4079 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4080 ndr_print_uint32(ndr, "time", r->time);
4081 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4082 ndr->depth--;
4085 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
4087 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
4090 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
4092 if (ndr_flags & NDR_SCALARS) {
4093 NDR_CHECK(ndr_push_align(ndr, 4));
4094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
4096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
4097 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
4099 if (ndr_flags & NDR_BUFFERS) {
4101 return NDR_ERR_SUCCESS;
4104 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
4106 if (ndr_flags & NDR_SCALARS) {
4107 NDR_CHECK(ndr_pull_align(ndr, 4));
4108 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4109 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
4110 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
4111 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
4113 if (ndr_flags & NDR_BUFFERS) {
4115 return NDR_ERR_SUCCESS;
4118 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
4120 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
4121 ndr->depth++;
4122 ndr_print_uint32(ndr, "job_id", r->job_id);
4123 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
4124 ndr_print_uint32(ndr, "reserved", r->reserved);
4125 ndr->depth--;
4128 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
4130 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
4133 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
4135 if (ndr_flags & NDR_SCALARS) {
4136 NDR_CHECK(ndr_push_align(ndr, 5));
4137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4139 uint32_t _flags_save_string = ndr->flags;
4140 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4141 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
4142 ndr->flags = _flags_save_string;
4145 uint32_t _flags_save_string = ndr->flags;
4146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4147 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
4148 ndr->flags = _flags_save_string;
4151 uint32_t _flags_save_string = ndr->flags;
4152 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4153 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
4154 ndr->flags = _flags_save_string;
4157 uint32_t _flags_save_string = ndr->flags;
4158 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4159 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
4160 ndr->flags = _flags_save_string;
4163 uint32_t _flags_save_string = ndr->flags;
4164 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4165 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
4166 ndr->flags = _flags_save_string;
4169 uint32_t _flags_save_string = ndr->flags;
4170 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4171 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
4172 ndr->flags = _flags_save_string;
4175 uint32_t _flags_save_string = ndr->flags;
4176 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4177 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
4178 ndr->flags = _flags_save_string;
4181 uint32_t _flags_save_string = ndr->flags;
4182 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4183 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
4184 ndr->flags = _flags_save_string;
4187 uint32_t _flags_save_string = ndr->flags;
4188 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4189 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4190 ndr->flags = _flags_save_string;
4192 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
4194 uint32_t _flags_save_string = ndr->flags;
4195 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4196 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
4197 ndr->flags = _flags_save_string;
4199 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
4200 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4202 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4207 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
4211 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4213 if (ndr_flags & NDR_BUFFERS) {
4215 uint32_t _flags_save_string = ndr->flags;
4216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4217 if (r->printer_name) {
4218 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
4219 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
4221 ndr->flags = _flags_save_string;
4224 uint32_t _flags_save_string = ndr->flags;
4225 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4226 if (r->server_name) {
4227 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
4228 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
4230 ndr->flags = _flags_save_string;
4233 uint32_t _flags_save_string = ndr->flags;
4234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4235 if (r->user_name) {
4236 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
4237 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
4239 ndr->flags = _flags_save_string;
4242 uint32_t _flags_save_string = ndr->flags;
4243 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4244 if (r->document_name) {
4245 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
4246 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
4248 ndr->flags = _flags_save_string;
4251 uint32_t _flags_save_string = ndr->flags;
4252 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4253 if (r->notify_name) {
4254 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
4255 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
4257 ndr->flags = _flags_save_string;
4260 uint32_t _flags_save_string = ndr->flags;
4261 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4262 if (r->data_type) {
4263 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
4264 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
4266 ndr->flags = _flags_save_string;
4269 uint32_t _flags_save_string = ndr->flags;
4270 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4271 if (r->print_processor) {
4272 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
4273 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
4275 ndr->flags = _flags_save_string;
4278 uint32_t _flags_save_string = ndr->flags;
4279 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4280 if (r->parameters) {
4281 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
4282 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
4284 ndr->flags = _flags_save_string;
4287 uint32_t _flags_save_string = ndr->flags;
4288 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4289 if (r->driver_name) {
4290 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
4291 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4293 ndr->flags = _flags_save_string;
4295 if (r->devmode) {
4296 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
4297 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4300 uint32_t _flags_save_string = ndr->flags;
4301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4302 if (r->text_status) {
4303 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
4304 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
4306 ndr->flags = _flags_save_string;
4308 if (r->secdesc) {
4309 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
4310 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4313 return NDR_ERR_SUCCESS;
4316 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
4318 uint32_t _ptr_printer_name;
4319 TALLOC_CTX *_mem_save_printer_name_0;
4320 uint32_t _ptr_server_name;
4321 TALLOC_CTX *_mem_save_server_name_0;
4322 uint32_t _ptr_user_name;
4323 TALLOC_CTX *_mem_save_user_name_0;
4324 uint32_t _ptr_document_name;
4325 TALLOC_CTX *_mem_save_document_name_0;
4326 uint32_t _ptr_notify_name;
4327 TALLOC_CTX *_mem_save_notify_name_0;
4328 uint32_t _ptr_data_type;
4329 TALLOC_CTX *_mem_save_data_type_0;
4330 uint32_t _ptr_print_processor;
4331 TALLOC_CTX *_mem_save_print_processor_0;
4332 uint32_t _ptr_parameters;
4333 TALLOC_CTX *_mem_save_parameters_0;
4334 uint32_t _ptr_driver_name;
4335 TALLOC_CTX *_mem_save_driver_name_0;
4336 uint32_t _ptr_devmode;
4337 TALLOC_CTX *_mem_save_devmode_0;
4338 uint32_t _ptr_text_status;
4339 TALLOC_CTX *_mem_save_text_status_0;
4340 uint32_t _ptr_secdesc;
4341 TALLOC_CTX *_mem_save_secdesc_0;
4342 if (ndr_flags & NDR_SCALARS) {
4343 NDR_CHECK(ndr_pull_align(ndr, 5));
4344 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4346 uint32_t _flags_save_string = ndr->flags;
4347 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4348 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4349 if (_ptr_printer_name) {
4350 NDR_PULL_ALLOC(ndr, r->printer_name);
4351 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4352 } else {
4353 r->printer_name = NULL;
4355 ndr->flags = _flags_save_string;
4358 uint32_t _flags_save_string = ndr->flags;
4359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4361 if (_ptr_server_name) {
4362 NDR_PULL_ALLOC(ndr, r->server_name);
4363 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4364 } else {
4365 r->server_name = NULL;
4367 ndr->flags = _flags_save_string;
4370 uint32_t _flags_save_string = ndr->flags;
4371 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4373 if (_ptr_user_name) {
4374 NDR_PULL_ALLOC(ndr, r->user_name);
4375 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4376 } else {
4377 r->user_name = NULL;
4379 ndr->flags = _flags_save_string;
4382 uint32_t _flags_save_string = ndr->flags;
4383 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4384 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4385 if (_ptr_document_name) {
4386 NDR_PULL_ALLOC(ndr, r->document_name);
4387 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4388 } else {
4389 r->document_name = NULL;
4391 ndr->flags = _flags_save_string;
4394 uint32_t _flags_save_string = ndr->flags;
4395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4396 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4397 if (_ptr_notify_name) {
4398 NDR_PULL_ALLOC(ndr, r->notify_name);
4399 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4400 } else {
4401 r->notify_name = NULL;
4403 ndr->flags = _flags_save_string;
4406 uint32_t _flags_save_string = ndr->flags;
4407 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4408 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4409 if (_ptr_data_type) {
4410 NDR_PULL_ALLOC(ndr, r->data_type);
4411 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4412 } else {
4413 r->data_type = NULL;
4415 ndr->flags = _flags_save_string;
4418 uint32_t _flags_save_string = ndr->flags;
4419 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4420 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4421 if (_ptr_print_processor) {
4422 NDR_PULL_ALLOC(ndr, r->print_processor);
4423 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4424 } else {
4425 r->print_processor = NULL;
4427 ndr->flags = _flags_save_string;
4430 uint32_t _flags_save_string = ndr->flags;
4431 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4432 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4433 if (_ptr_parameters) {
4434 NDR_PULL_ALLOC(ndr, r->parameters);
4435 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4436 } else {
4437 r->parameters = NULL;
4439 ndr->flags = _flags_save_string;
4442 uint32_t _flags_save_string = ndr->flags;
4443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4445 if (_ptr_driver_name) {
4446 NDR_PULL_ALLOC(ndr, r->driver_name);
4447 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4448 } else {
4449 r->driver_name = NULL;
4451 ndr->flags = _flags_save_string;
4453 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4454 if (_ptr_devmode) {
4455 NDR_PULL_ALLOC(ndr, r->devmode);
4456 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4457 } else {
4458 r->devmode = NULL;
4461 uint32_t _flags_save_string = ndr->flags;
4462 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4463 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4464 if (_ptr_text_status) {
4465 NDR_PULL_ALLOC(ndr, r->text_status);
4466 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4467 } else {
4468 r->text_status = NULL;
4470 ndr->flags = _flags_save_string;
4472 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4473 if (_ptr_secdesc) {
4474 NDR_PULL_ALLOC(ndr, r->secdesc);
4475 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4476 } else {
4477 r->secdesc = NULL;
4479 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4480 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4481 if (r->priority > 99) {
4482 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4484 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4488 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4489 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4491 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
4493 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4495 if (ndr_flags & NDR_BUFFERS) {
4497 uint32_t _flags_save_string = ndr->flags;
4498 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4499 if (r->printer_name) {
4500 uint32_t _relative_save_offset;
4501 _relative_save_offset = ndr->offset;
4502 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4503 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4504 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4505 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4507 ndr->offset = _relative_save_offset;
4509 ndr->flags = _flags_save_string;
4512 uint32_t _flags_save_string = ndr->flags;
4513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4514 if (r->server_name) {
4515 uint32_t _relative_save_offset;
4516 _relative_save_offset = ndr->offset;
4517 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4518 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4519 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4520 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4522 ndr->offset = _relative_save_offset;
4524 ndr->flags = _flags_save_string;
4527 uint32_t _flags_save_string = ndr->flags;
4528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4529 if (r->user_name) {
4530 uint32_t _relative_save_offset;
4531 _relative_save_offset = ndr->offset;
4532 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4533 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4534 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4535 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4537 ndr->offset = _relative_save_offset;
4539 ndr->flags = _flags_save_string;
4542 uint32_t _flags_save_string = ndr->flags;
4543 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4544 if (r->document_name) {
4545 uint32_t _relative_save_offset;
4546 _relative_save_offset = ndr->offset;
4547 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4548 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4549 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4550 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4551 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4552 ndr->offset = _relative_save_offset;
4554 ndr->flags = _flags_save_string;
4557 uint32_t _flags_save_string = ndr->flags;
4558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4559 if (r->notify_name) {
4560 uint32_t _relative_save_offset;
4561 _relative_save_offset = ndr->offset;
4562 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4563 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4564 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4565 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4566 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4567 ndr->offset = _relative_save_offset;
4569 ndr->flags = _flags_save_string;
4572 uint32_t _flags_save_string = ndr->flags;
4573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4574 if (r->data_type) {
4575 uint32_t _relative_save_offset;
4576 _relative_save_offset = ndr->offset;
4577 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4578 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4579 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4580 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4582 ndr->offset = _relative_save_offset;
4584 ndr->flags = _flags_save_string;
4587 uint32_t _flags_save_string = ndr->flags;
4588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4589 if (r->print_processor) {
4590 uint32_t _relative_save_offset;
4591 _relative_save_offset = ndr->offset;
4592 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4593 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4594 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4595 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4597 ndr->offset = _relative_save_offset;
4599 ndr->flags = _flags_save_string;
4602 uint32_t _flags_save_string = ndr->flags;
4603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4604 if (r->parameters) {
4605 uint32_t _relative_save_offset;
4606 _relative_save_offset = ndr->offset;
4607 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4608 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4609 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4610 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4612 ndr->offset = _relative_save_offset;
4614 ndr->flags = _flags_save_string;
4617 uint32_t _flags_save_string = ndr->flags;
4618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4619 if (r->driver_name) {
4620 uint32_t _relative_save_offset;
4621 _relative_save_offset = ndr->offset;
4622 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4623 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4624 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4625 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4627 ndr->offset = _relative_save_offset;
4629 ndr->flags = _flags_save_string;
4631 if (r->devmode) {
4632 uint32_t _relative_save_offset;
4633 _relative_save_offset = ndr->offset;
4634 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4635 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4636 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4637 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4639 ndr->offset = _relative_save_offset;
4642 uint32_t _flags_save_string = ndr->flags;
4643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4644 if (r->text_status) {
4645 uint32_t _relative_save_offset;
4646 _relative_save_offset = ndr->offset;
4647 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4648 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4649 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4650 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4652 ndr->offset = _relative_save_offset;
4654 ndr->flags = _flags_save_string;
4656 if (r->secdesc) {
4657 uint32_t _relative_save_offset;
4658 _relative_save_offset = ndr->offset;
4659 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4660 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4661 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4662 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4664 ndr->offset = _relative_save_offset;
4667 return NDR_ERR_SUCCESS;
4670 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4672 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4673 ndr->depth++;
4674 ndr_print_uint32(ndr, "job_id", r->job_id);
4675 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4676 ndr->depth++;
4677 if (r->printer_name) {
4678 ndr_print_string(ndr, "printer_name", r->printer_name);
4680 ndr->depth--;
4681 ndr_print_ptr(ndr, "server_name", r->server_name);
4682 ndr->depth++;
4683 if (r->server_name) {
4684 ndr_print_string(ndr, "server_name", r->server_name);
4686 ndr->depth--;
4687 ndr_print_ptr(ndr, "user_name", r->user_name);
4688 ndr->depth++;
4689 if (r->user_name) {
4690 ndr_print_string(ndr, "user_name", r->user_name);
4692 ndr->depth--;
4693 ndr_print_ptr(ndr, "document_name", r->document_name);
4694 ndr->depth++;
4695 if (r->document_name) {
4696 ndr_print_string(ndr, "document_name", r->document_name);
4698 ndr->depth--;
4699 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4700 ndr->depth++;
4701 if (r->notify_name) {
4702 ndr_print_string(ndr, "notify_name", r->notify_name);
4704 ndr->depth--;
4705 ndr_print_ptr(ndr, "data_type", r->data_type);
4706 ndr->depth++;
4707 if (r->data_type) {
4708 ndr_print_string(ndr, "data_type", r->data_type);
4710 ndr->depth--;
4711 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4712 ndr->depth++;
4713 if (r->print_processor) {
4714 ndr_print_string(ndr, "print_processor", r->print_processor);
4716 ndr->depth--;
4717 ndr_print_ptr(ndr, "parameters", r->parameters);
4718 ndr->depth++;
4719 if (r->parameters) {
4720 ndr_print_string(ndr, "parameters", r->parameters);
4722 ndr->depth--;
4723 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4724 ndr->depth++;
4725 if (r->driver_name) {
4726 ndr_print_string(ndr, "driver_name", r->driver_name);
4728 ndr->depth--;
4729 ndr_print_ptr(ndr, "devmode", r->devmode);
4730 ndr->depth++;
4731 if (r->devmode) {
4732 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4734 ndr->depth--;
4735 ndr_print_ptr(ndr, "text_status", r->text_status);
4736 ndr->depth++;
4737 if (r->text_status) {
4738 ndr_print_string(ndr, "text_status", r->text_status);
4740 ndr->depth--;
4741 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4742 ndr->depth++;
4743 if (r->secdesc) {
4744 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4746 ndr->depth--;
4747 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4748 ndr_print_uint32(ndr, "priority", r->priority);
4749 ndr_print_uint32(ndr, "position", r->position);
4750 ndr_print_uint32(ndr, "start_time", r->start_time);
4751 ndr_print_uint32(ndr, "until_time", r->until_time);
4752 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4753 ndr_print_uint32(ndr, "size", r->size);
4754 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4755 ndr_print_uint32(ndr, "time", r->time);
4756 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4757 ndr_print_uint32(ndr, "size_high", r->size_high);
4758 ndr->depth--;
4761 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
4763 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
4766 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4768 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4769 if (ndr_flags & NDR_SCALARS) {
4770 int level = ndr_push_get_switch_value(ndr, r);
4771 NDR_CHECK(ndr_push_union_align(ndr, 5));
4772 switch (level) {
4773 case 1: {
4774 NDR_CHECK(ndr_push_align(ndr, 5));
4775 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4776 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4777 break; }
4779 case 2: {
4780 NDR_CHECK(ndr_push_align(ndr, 5));
4781 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4782 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4783 break; }
4785 case 3: {
4786 NDR_CHECK(ndr_push_align(ndr, 4));
4787 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4788 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4789 break; }
4791 case 4: {
4792 NDR_CHECK(ndr_push_align(ndr, 5));
4793 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4794 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4795 break; }
4797 default: {
4798 break; }
4802 if (ndr_flags & NDR_BUFFERS) {
4803 int level = ndr_push_get_switch_value(ndr, r);
4804 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
4805 switch (level) {
4806 case 1:
4807 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4808 break;
4810 case 2:
4811 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4812 break;
4814 case 3:
4815 break;
4817 case 4:
4818 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4819 break;
4821 default:
4822 break;
4826 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
4827 return NDR_ERR_SUCCESS;
4830 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
4832 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
4833 int level;
4834 level = ndr_pull_get_switch_value(ndr, r);
4835 if (ndr_flags & NDR_SCALARS) {
4836 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4837 switch (level) {
4838 case 1: {
4839 NDR_CHECK(ndr_pull_align(ndr, 5));
4840 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4841 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4842 break; }
4844 case 2: {
4845 NDR_CHECK(ndr_pull_align(ndr, 5));
4846 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4847 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4848 break; }
4850 case 3: {
4851 NDR_CHECK(ndr_pull_align(ndr, 4));
4852 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4853 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4854 break; }
4856 case 4: {
4857 NDR_CHECK(ndr_pull_align(ndr, 5));
4858 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4859 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4860 break; }
4862 default: {
4863 break; }
4867 if (ndr_flags & NDR_BUFFERS) {
4868 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
4869 switch (level) {
4870 case 1:
4871 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4872 break;
4874 case 2:
4875 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4876 break;
4878 case 3:
4879 break;
4881 case 4:
4882 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4883 break;
4885 default:
4886 break;
4890 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
4891 return NDR_ERR_SUCCESS;
4894 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
4896 int level;
4897 level = ndr_print_get_switch_value(ndr, r);
4898 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
4899 switch (level) {
4900 case 1:
4901 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
4902 break;
4904 case 2:
4905 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
4906 break;
4908 case 3:
4909 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
4910 break;
4912 case 4:
4913 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
4914 break;
4916 default:
4917 break;
4922 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
4924 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
4927 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
4929 if (ndr_flags & NDR_SCALARS) {
4930 NDR_CHECK(ndr_push_align(ndr, 5));
4931 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4932 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4933 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4934 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4935 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4936 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4937 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4938 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4939 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4940 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4941 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4942 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4943 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4944 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4946 if (ndr_flags & NDR_BUFFERS) {
4947 if (r->printer_name) {
4948 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4949 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4950 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4951 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4953 if (r->server_name) {
4954 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4955 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4956 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4957 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4959 if (r->user_name) {
4960 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4961 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4962 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4963 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4965 if (r->document_name) {
4966 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4967 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4968 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4969 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4971 if (r->data_type) {
4972 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4973 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4974 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4975 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4977 if (r->text_status) {
4978 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4979 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4980 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4981 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4984 return NDR_ERR_SUCCESS;
4987 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
4989 uint32_t _ptr_printer_name;
4990 TALLOC_CTX *_mem_save_printer_name_0;
4991 uint32_t _ptr_server_name;
4992 TALLOC_CTX *_mem_save_server_name_0;
4993 uint32_t _ptr_user_name;
4994 TALLOC_CTX *_mem_save_user_name_0;
4995 uint32_t _ptr_document_name;
4996 TALLOC_CTX *_mem_save_document_name_0;
4997 uint32_t _ptr_data_type;
4998 TALLOC_CTX *_mem_save_data_type_0;
4999 uint32_t _ptr_text_status;
5000 TALLOC_CTX *_mem_save_text_status_0;
5001 if (ndr_flags & NDR_SCALARS) {
5002 NDR_CHECK(ndr_pull_align(ndr, 5));
5003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5004 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5005 if (_ptr_printer_name) {
5006 NDR_PULL_ALLOC(ndr, r->printer_name);
5007 } else {
5008 r->printer_name = NULL;
5010 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5011 if (_ptr_server_name) {
5012 NDR_PULL_ALLOC(ndr, r->server_name);
5013 } else {
5014 r->server_name = NULL;
5016 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5017 if (_ptr_user_name) {
5018 NDR_PULL_ALLOC(ndr, r->user_name);
5019 } else {
5020 r->user_name = NULL;
5022 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5023 if (_ptr_document_name) {
5024 NDR_PULL_ALLOC(ndr, r->document_name);
5025 } else {
5026 r->document_name = NULL;
5028 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5029 if (_ptr_data_type) {
5030 NDR_PULL_ALLOC(ndr, r->data_type);
5031 } else {
5032 r->data_type = NULL;
5034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5035 if (_ptr_text_status) {
5036 NDR_PULL_ALLOC(ndr, r->text_status);
5037 } else {
5038 r->text_status = NULL;
5040 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5041 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5042 if (r->priority > 99) {
5043 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5045 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5046 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5047 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5048 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5049 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5051 if (ndr_flags & NDR_BUFFERS) {
5052 if (r->printer_name) {
5053 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5054 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5055 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5056 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5057 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5058 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));
5060 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5061 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5064 if (r->server_name) {
5065 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5066 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5067 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5068 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5069 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5070 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));
5072 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5073 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5076 if (r->user_name) {
5077 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5078 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5079 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5080 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5081 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5082 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));
5084 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5085 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5088 if (r->document_name) {
5089 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5090 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5091 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5092 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5093 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5094 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));
5096 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5097 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5100 if (r->data_type) {
5101 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5102 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5103 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5104 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5105 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5106 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));
5108 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5109 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5112 if (r->text_status) {
5113 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5114 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5115 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5116 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5117 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5118 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));
5120 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5121 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5122 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5125 return NDR_ERR_SUCCESS;
5128 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
5130 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
5131 ndr->depth++;
5132 ndr_print_uint32(ndr, "job_id", r->job_id);
5133 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5134 ndr->depth++;
5135 if (r->printer_name) {
5136 ndr_print_string(ndr, "printer_name", r->printer_name);
5138 ndr->depth--;
5139 ndr_print_ptr(ndr, "server_name", r->server_name);
5140 ndr->depth++;
5141 if (r->server_name) {
5142 ndr_print_string(ndr, "server_name", r->server_name);
5144 ndr->depth--;
5145 ndr_print_ptr(ndr, "user_name", r->user_name);
5146 ndr->depth++;
5147 if (r->user_name) {
5148 ndr_print_string(ndr, "user_name", r->user_name);
5150 ndr->depth--;
5151 ndr_print_ptr(ndr, "document_name", r->document_name);
5152 ndr->depth++;
5153 if (r->document_name) {
5154 ndr_print_string(ndr, "document_name", r->document_name);
5156 ndr->depth--;
5157 ndr_print_ptr(ndr, "data_type", r->data_type);
5158 ndr->depth++;
5159 if (r->data_type) {
5160 ndr_print_string(ndr, "data_type", r->data_type);
5162 ndr->depth--;
5163 ndr_print_ptr(ndr, "text_status", r->text_status);
5164 ndr->depth++;
5165 if (r->text_status) {
5166 ndr_print_string(ndr, "text_status", r->text_status);
5168 ndr->depth--;
5169 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5170 ndr_print_uint32(ndr, "priority", r->priority);
5171 ndr_print_uint32(ndr, "position", r->position);
5172 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5173 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5174 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5175 ndr->depth--;
5178 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
5180 if (ndr_flags & NDR_SCALARS) {
5181 NDR_CHECK(ndr_push_align(ndr, 5));
5182 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5183 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5184 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5185 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5188 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5189 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5190 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5191 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5193 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5195 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5202 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5205 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5207 if (ndr_flags & NDR_BUFFERS) {
5208 if (r->printer_name) {
5209 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5210 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5211 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5212 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5214 if (r->server_name) {
5215 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5216 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5217 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5218 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5220 if (r->user_name) {
5221 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5222 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5223 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5224 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5226 if (r->document_name) {
5227 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5228 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5229 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5230 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5232 if (r->notify_name) {
5233 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5234 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5235 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5236 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5238 if (r->data_type) {
5239 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5240 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5241 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5242 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5244 if (r->print_processor) {
5245 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5246 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5247 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5248 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5250 if (r->parameters) {
5251 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5252 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5253 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5254 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5256 if (r->driver_name) {
5257 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5258 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5259 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5260 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5262 if (r->text_status) {
5263 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5264 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5265 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5266 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5269 return NDR_ERR_SUCCESS;
5272 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
5274 uint32_t _ptr_printer_name;
5275 TALLOC_CTX *_mem_save_printer_name_0;
5276 uint32_t _ptr_server_name;
5277 TALLOC_CTX *_mem_save_server_name_0;
5278 uint32_t _ptr_user_name;
5279 TALLOC_CTX *_mem_save_user_name_0;
5280 uint32_t _ptr_document_name;
5281 TALLOC_CTX *_mem_save_document_name_0;
5282 uint32_t _ptr_notify_name;
5283 TALLOC_CTX *_mem_save_notify_name_0;
5284 uint32_t _ptr_data_type;
5285 TALLOC_CTX *_mem_save_data_type_0;
5286 uint32_t _ptr_print_processor;
5287 TALLOC_CTX *_mem_save_print_processor_0;
5288 uint32_t _ptr_parameters;
5289 TALLOC_CTX *_mem_save_parameters_0;
5290 uint32_t _ptr_driver_name;
5291 TALLOC_CTX *_mem_save_driver_name_0;
5292 uint32_t _ptr_text_status;
5293 TALLOC_CTX *_mem_save_text_status_0;
5294 if (ndr_flags & NDR_SCALARS) {
5295 NDR_CHECK(ndr_pull_align(ndr, 5));
5296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5298 if (_ptr_printer_name) {
5299 NDR_PULL_ALLOC(ndr, r->printer_name);
5300 } else {
5301 r->printer_name = NULL;
5303 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5304 if (_ptr_server_name) {
5305 NDR_PULL_ALLOC(ndr, r->server_name);
5306 } else {
5307 r->server_name = NULL;
5309 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5310 if (_ptr_user_name) {
5311 NDR_PULL_ALLOC(ndr, r->user_name);
5312 } else {
5313 r->user_name = NULL;
5315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5316 if (_ptr_document_name) {
5317 NDR_PULL_ALLOC(ndr, r->document_name);
5318 } else {
5319 r->document_name = NULL;
5321 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5322 if (_ptr_notify_name) {
5323 NDR_PULL_ALLOC(ndr, r->notify_name);
5324 } else {
5325 r->notify_name = NULL;
5327 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5328 if (_ptr_data_type) {
5329 NDR_PULL_ALLOC(ndr, r->data_type);
5330 } else {
5331 r->data_type = NULL;
5333 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5334 if (_ptr_print_processor) {
5335 NDR_PULL_ALLOC(ndr, r->print_processor);
5336 } else {
5337 r->print_processor = NULL;
5339 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5340 if (_ptr_parameters) {
5341 NDR_PULL_ALLOC(ndr, r->parameters);
5342 } else {
5343 r->parameters = NULL;
5345 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5346 if (_ptr_driver_name) {
5347 NDR_PULL_ALLOC(ndr, r->driver_name);
5348 } else {
5349 r->driver_name = NULL;
5351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5352 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5353 if (_ptr_text_status) {
5354 NDR_PULL_ALLOC(ndr, r->text_status);
5355 } else {
5356 r->text_status = NULL;
5358 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5359 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5360 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5361 if (r->priority > 99) {
5362 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5365 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5366 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5367 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5368 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5369 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5370 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5371 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5372 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5374 if (ndr_flags & NDR_BUFFERS) {
5375 if (r->printer_name) {
5376 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5377 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5378 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5379 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5380 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5381 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));
5383 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5384 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5387 if (r->server_name) {
5388 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5389 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5390 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5391 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5392 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5393 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));
5395 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5396 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5399 if (r->user_name) {
5400 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5401 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5402 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5403 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5404 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5405 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));
5407 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5408 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5411 if (r->document_name) {
5412 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5413 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5414 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5415 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5416 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5417 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));
5419 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5420 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5423 if (r->notify_name) {
5424 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5425 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5426 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5427 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5428 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5429 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));
5431 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5432 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5433 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5435 if (r->data_type) {
5436 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5437 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5438 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5439 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5440 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5441 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));
5443 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5444 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5447 if (r->print_processor) {
5448 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5449 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5450 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5451 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5452 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5453 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));
5455 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5456 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5459 if (r->parameters) {
5460 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5461 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5462 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5463 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5464 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5465 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));
5467 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5468 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5471 if (r->driver_name) {
5472 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5473 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5474 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5475 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5476 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5477 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));
5479 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5480 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5483 if (r->text_status) {
5484 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5485 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5486 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5487 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5488 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5489 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));
5491 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5492 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5496 return NDR_ERR_SUCCESS;
5499 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
5501 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
5502 ndr->depth++;
5503 ndr_print_uint32(ndr, "job_id", r->job_id);
5504 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5505 ndr->depth++;
5506 if (r->printer_name) {
5507 ndr_print_string(ndr, "printer_name", r->printer_name);
5509 ndr->depth--;
5510 ndr_print_ptr(ndr, "server_name", r->server_name);
5511 ndr->depth++;
5512 if (r->server_name) {
5513 ndr_print_string(ndr, "server_name", r->server_name);
5515 ndr->depth--;
5516 ndr_print_ptr(ndr, "user_name", r->user_name);
5517 ndr->depth++;
5518 if (r->user_name) {
5519 ndr_print_string(ndr, "user_name", r->user_name);
5521 ndr->depth--;
5522 ndr_print_ptr(ndr, "document_name", r->document_name);
5523 ndr->depth++;
5524 if (r->document_name) {
5525 ndr_print_string(ndr, "document_name", r->document_name);
5527 ndr->depth--;
5528 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5529 ndr->depth++;
5530 if (r->notify_name) {
5531 ndr_print_string(ndr, "notify_name", r->notify_name);
5533 ndr->depth--;
5534 ndr_print_ptr(ndr, "data_type", r->data_type);
5535 ndr->depth++;
5536 if (r->data_type) {
5537 ndr_print_string(ndr, "data_type", r->data_type);
5539 ndr->depth--;
5540 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5541 ndr->depth++;
5542 if (r->print_processor) {
5543 ndr_print_string(ndr, "print_processor", r->print_processor);
5545 ndr->depth--;
5546 ndr_print_ptr(ndr, "parameters", r->parameters);
5547 ndr->depth++;
5548 if (r->parameters) {
5549 ndr_print_string(ndr, "parameters", r->parameters);
5551 ndr->depth--;
5552 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5553 ndr->depth++;
5554 if (r->driver_name) {
5555 ndr_print_string(ndr, "driver_name", r->driver_name);
5557 ndr->depth--;
5558 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5559 ndr_print_ptr(ndr, "text_status", r->text_status);
5560 ndr->depth++;
5561 if (r->text_status) {
5562 ndr_print_string(ndr, "text_status", r->text_status);
5564 ndr->depth--;
5565 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5566 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5567 ndr_print_uint32(ndr, "priority", r->priority);
5568 ndr_print_uint32(ndr, "position", r->position);
5569 ndr_print_uint32(ndr, "start_time", r->start_time);
5570 ndr_print_uint32(ndr, "until_time", r->until_time);
5571 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5572 ndr_print_uint32(ndr, "size", r->size);
5573 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5574 ndr_print_uint32(ndr, "time", r->time);
5575 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5576 ndr->depth--;
5579 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
5581 if (ndr_flags & NDR_SCALARS) {
5582 NDR_CHECK(ndr_push_align(ndr, 5));
5583 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5584 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5585 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5586 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5587 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5588 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5589 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5590 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5591 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5592 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5594 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5596 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5603 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5607 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5609 if (ndr_flags & NDR_BUFFERS) {
5610 if (r->printer_name) {
5611 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5612 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5613 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5614 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5616 if (r->server_name) {
5617 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5618 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5619 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5620 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5622 if (r->user_name) {
5623 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5624 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5625 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5626 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5628 if (r->document_name) {
5629 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5630 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5631 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5632 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5634 if (r->notify_name) {
5635 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5636 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5637 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5638 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5640 if (r->data_type) {
5641 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5642 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5643 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5644 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5646 if (r->print_processor) {
5647 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5648 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5649 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5650 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5652 if (r->parameters) {
5653 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5654 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5655 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5656 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5658 if (r->driver_name) {
5659 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5660 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5661 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5662 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5664 if (r->text_status) {
5665 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5666 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5668 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5671 return NDR_ERR_SUCCESS;
5674 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5676 uint32_t _ptr_printer_name;
5677 TALLOC_CTX *_mem_save_printer_name_0;
5678 uint32_t _ptr_server_name;
5679 TALLOC_CTX *_mem_save_server_name_0;
5680 uint32_t _ptr_user_name;
5681 TALLOC_CTX *_mem_save_user_name_0;
5682 uint32_t _ptr_document_name;
5683 TALLOC_CTX *_mem_save_document_name_0;
5684 uint32_t _ptr_notify_name;
5685 TALLOC_CTX *_mem_save_notify_name_0;
5686 uint32_t _ptr_data_type;
5687 TALLOC_CTX *_mem_save_data_type_0;
5688 uint32_t _ptr_print_processor;
5689 TALLOC_CTX *_mem_save_print_processor_0;
5690 uint32_t _ptr_parameters;
5691 TALLOC_CTX *_mem_save_parameters_0;
5692 uint32_t _ptr_driver_name;
5693 TALLOC_CTX *_mem_save_driver_name_0;
5694 uint32_t _ptr_text_status;
5695 TALLOC_CTX *_mem_save_text_status_0;
5696 if (ndr_flags & NDR_SCALARS) {
5697 NDR_CHECK(ndr_pull_align(ndr, 5));
5698 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5700 if (_ptr_printer_name) {
5701 NDR_PULL_ALLOC(ndr, r->printer_name);
5702 } else {
5703 r->printer_name = NULL;
5705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5706 if (_ptr_server_name) {
5707 NDR_PULL_ALLOC(ndr, r->server_name);
5708 } else {
5709 r->server_name = NULL;
5711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5712 if (_ptr_user_name) {
5713 NDR_PULL_ALLOC(ndr, r->user_name);
5714 } else {
5715 r->user_name = NULL;
5717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5718 if (_ptr_document_name) {
5719 NDR_PULL_ALLOC(ndr, r->document_name);
5720 } else {
5721 r->document_name = NULL;
5723 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5724 if (_ptr_notify_name) {
5725 NDR_PULL_ALLOC(ndr, r->notify_name);
5726 } else {
5727 r->notify_name = NULL;
5729 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5730 if (_ptr_data_type) {
5731 NDR_PULL_ALLOC(ndr, r->data_type);
5732 } else {
5733 r->data_type = NULL;
5735 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5736 if (_ptr_print_processor) {
5737 NDR_PULL_ALLOC(ndr, r->print_processor);
5738 } else {
5739 r->print_processor = NULL;
5741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5742 if (_ptr_parameters) {
5743 NDR_PULL_ALLOC(ndr, r->parameters);
5744 } else {
5745 r->parameters = NULL;
5747 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5748 if (_ptr_driver_name) {
5749 NDR_PULL_ALLOC(ndr, r->driver_name);
5750 } else {
5751 r->driver_name = NULL;
5753 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5754 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5755 if (_ptr_text_status) {
5756 NDR_PULL_ALLOC(ndr, r->text_status);
5757 } else {
5758 r->text_status = NULL;
5760 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5761 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5762 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5763 if (r->priority > 99) {
5764 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5767 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5768 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5771 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5773 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5774 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5775 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5777 if (ndr_flags & NDR_BUFFERS) {
5778 if (r->printer_name) {
5779 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5780 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5781 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5782 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5783 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5784 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));
5786 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5787 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5788 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5790 if (r->server_name) {
5791 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5792 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5793 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5794 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5795 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5796 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));
5798 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5799 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5800 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5802 if (r->user_name) {
5803 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5804 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5805 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5806 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5807 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5808 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));
5810 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5811 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5814 if (r->document_name) {
5815 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5816 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5817 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5818 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5819 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5820 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));
5822 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5823 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5824 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5826 if (r->notify_name) {
5827 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5828 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5829 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5830 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5831 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5832 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));
5834 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5835 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5838 if (r->data_type) {
5839 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5840 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5841 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5842 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5843 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5844 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));
5846 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5847 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5850 if (r->print_processor) {
5851 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5852 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5853 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5854 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5855 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5856 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));
5858 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5859 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5860 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5862 if (r->parameters) {
5863 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5864 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5865 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5866 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5867 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5868 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));
5870 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5871 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5872 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5874 if (r->driver_name) {
5875 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5876 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5877 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5878 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5879 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5880 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));
5882 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5883 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5886 if (r->text_status) {
5887 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5888 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5889 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5890 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5891 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5892 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));
5894 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5895 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5899 return NDR_ERR_SUCCESS;
5902 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
5904 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
5905 ndr->depth++;
5906 ndr_print_uint32(ndr, "job_id", r->job_id);
5907 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5908 ndr->depth++;
5909 if (r->printer_name) {
5910 ndr_print_string(ndr, "printer_name", r->printer_name);
5912 ndr->depth--;
5913 ndr_print_ptr(ndr, "server_name", r->server_name);
5914 ndr->depth++;
5915 if (r->server_name) {
5916 ndr_print_string(ndr, "server_name", r->server_name);
5918 ndr->depth--;
5919 ndr_print_ptr(ndr, "user_name", r->user_name);
5920 ndr->depth++;
5921 if (r->user_name) {
5922 ndr_print_string(ndr, "user_name", r->user_name);
5924 ndr->depth--;
5925 ndr_print_ptr(ndr, "document_name", r->document_name);
5926 ndr->depth++;
5927 if (r->document_name) {
5928 ndr_print_string(ndr, "document_name", r->document_name);
5930 ndr->depth--;
5931 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5932 ndr->depth++;
5933 if (r->notify_name) {
5934 ndr_print_string(ndr, "notify_name", r->notify_name);
5936 ndr->depth--;
5937 ndr_print_ptr(ndr, "data_type", r->data_type);
5938 ndr->depth++;
5939 if (r->data_type) {
5940 ndr_print_string(ndr, "data_type", r->data_type);
5942 ndr->depth--;
5943 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5944 ndr->depth++;
5945 if (r->print_processor) {
5946 ndr_print_string(ndr, "print_processor", r->print_processor);
5948 ndr->depth--;
5949 ndr_print_ptr(ndr, "parameters", r->parameters);
5950 ndr->depth++;
5951 if (r->parameters) {
5952 ndr_print_string(ndr, "parameters", r->parameters);
5954 ndr->depth--;
5955 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5956 ndr->depth++;
5957 if (r->driver_name) {
5958 ndr_print_string(ndr, "driver_name", r->driver_name);
5960 ndr->depth--;
5961 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5962 ndr_print_ptr(ndr, "text_status", r->text_status);
5963 ndr->depth++;
5964 if (r->text_status) {
5965 ndr_print_string(ndr, "text_status", r->text_status);
5967 ndr->depth--;
5968 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5969 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5970 ndr_print_uint32(ndr, "priority", r->priority);
5971 ndr_print_uint32(ndr, "position", r->position);
5972 ndr_print_uint32(ndr, "start_time", r->start_time);
5973 ndr_print_uint32(ndr, "until_time", r->until_time);
5974 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5975 ndr_print_uint32(ndr, "size", r->size);
5976 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5977 ndr_print_uint32(ndr, "time", r->time);
5978 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5979 ndr_print_uint32(ndr, "size_high", r->size_high);
5980 ndr->depth--;
5983 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
5985 if (ndr_flags & NDR_SCALARS) {
5986 int level = ndr_push_get_switch_value(ndr, r);
5987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5988 NDR_CHECK(ndr_push_union_align(ndr, 5));
5989 switch (level) {
5990 case 1: {
5991 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5992 break; }
5994 case 2: {
5995 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5996 break; }
5998 case 3: {
5999 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6000 break; }
6002 case 4: {
6003 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6004 break; }
6006 default: {
6007 break; }
6011 if (ndr_flags & NDR_BUFFERS) {
6012 int level = ndr_push_get_switch_value(ndr, r);
6013 switch (level) {
6014 case 1:
6015 if (r->info1) {
6016 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6018 break;
6020 case 2:
6021 if (r->info2) {
6022 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6024 break;
6026 case 3:
6027 if (r->info3) {
6028 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6030 break;
6032 case 4:
6033 if (r->info4) {
6034 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6036 break;
6038 default:
6039 break;
6043 return NDR_ERR_SUCCESS;
6046 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
6048 int level;
6049 uint32_t _level;
6050 TALLOC_CTX *_mem_save_info1_0;
6051 TALLOC_CTX *_mem_save_info2_0;
6052 TALLOC_CTX *_mem_save_info3_0;
6053 TALLOC_CTX *_mem_save_info4_0;
6054 level = ndr_pull_get_switch_value(ndr, r);
6055 if (ndr_flags & NDR_SCALARS) {
6056 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6057 if (_level != level) {
6058 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6060 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6061 switch (level) {
6062 case 1: {
6063 uint32_t _ptr_info1;
6064 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6065 if (_ptr_info1) {
6066 NDR_PULL_ALLOC(ndr, r->info1);
6067 } else {
6068 r->info1 = NULL;
6070 break; }
6072 case 2: {
6073 uint32_t _ptr_info2;
6074 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6075 if (_ptr_info2) {
6076 NDR_PULL_ALLOC(ndr, r->info2);
6077 } else {
6078 r->info2 = NULL;
6080 break; }
6082 case 3: {
6083 uint32_t _ptr_info3;
6084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6085 if (_ptr_info3) {
6086 NDR_PULL_ALLOC(ndr, r->info3);
6087 } else {
6088 r->info3 = NULL;
6090 break; }
6092 case 4: {
6093 uint32_t _ptr_info4;
6094 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6095 if (_ptr_info4) {
6096 NDR_PULL_ALLOC(ndr, r->info4);
6097 } else {
6098 r->info4 = NULL;
6100 break; }
6102 default: {
6103 break; }
6107 if (ndr_flags & NDR_BUFFERS) {
6108 switch (level) {
6109 case 1:
6110 if (r->info1) {
6111 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6112 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6113 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6116 break;
6118 case 2:
6119 if (r->info2) {
6120 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6121 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
6122 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6123 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
6125 break;
6127 case 3:
6128 if (r->info3) {
6129 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6130 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
6131 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
6134 break;
6136 case 4:
6137 if (r->info4) {
6138 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6139 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6140 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6143 break;
6145 default:
6146 break;
6150 return NDR_ERR_SUCCESS;
6153 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
6155 int level;
6156 level = ndr_print_get_switch_value(ndr, r);
6157 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
6158 switch (level) {
6159 case 1:
6160 ndr_print_ptr(ndr, "info1", r->info1);
6161 ndr->depth++;
6162 if (r->info1) {
6163 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
6165 ndr->depth--;
6166 break;
6168 case 2:
6169 ndr_print_ptr(ndr, "info2", r->info2);
6170 ndr->depth++;
6171 if (r->info2) {
6172 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
6174 ndr->depth--;
6175 break;
6177 case 3:
6178 ndr_print_ptr(ndr, "info3", r->info3);
6179 ndr->depth++;
6180 if (r->info3) {
6181 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
6183 ndr->depth--;
6184 break;
6186 case 4:
6187 ndr_print_ptr(ndr, "info4", r->info4);
6188 ndr->depth++;
6189 if (r->info4) {
6190 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
6192 ndr->depth--;
6193 break;
6195 default:
6196 break;
6201 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
6203 if (ndr_flags & NDR_SCALARS) {
6204 NDR_CHECK(ndr_push_align(ndr, 5));
6205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
6206 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
6207 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6208 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6210 if (ndr_flags & NDR_BUFFERS) {
6211 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6213 return NDR_ERR_SUCCESS;
6216 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
6218 if (ndr_flags & NDR_SCALARS) {
6219 NDR_CHECK(ndr_pull_align(ndr, 5));
6220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
6221 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
6222 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6223 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6225 if (ndr_flags & NDR_BUFFERS) {
6226 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6228 return NDR_ERR_SUCCESS;
6231 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
6233 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
6234 ndr->depth++;
6235 ndr_print_uint32(ndr, "level", r->level);
6236 ndr_print_set_switch_value(ndr, &r->info, r->level);
6237 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
6238 ndr->depth--;
6241 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
6243 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6244 return NDR_ERR_SUCCESS;
6247 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
6249 uint32_t v;
6250 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6251 *r = v;
6252 return NDR_ERR_SUCCESS;
6255 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
6257 const char *val = NULL;
6259 switch (r) {
6260 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6261 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
6262 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6263 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
6264 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
6265 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6266 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6267 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6268 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6270 ndr_print_enum(ndr, name, "ENUM", val, r);
6273 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
6275 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6276 return NDR_ERR_SUCCESS;
6279 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
6281 uint32_t v;
6282 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6283 *r = v;
6284 return NDR_ERR_SUCCESS;
6287 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
6289 const char *val = NULL;
6291 switch (r) {
6292 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6293 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6294 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6295 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6296 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6298 ndr_print_enum(ndr, name, "ENUM", val, r);
6301 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
6303 if (ndr_flags & NDR_SCALARS) {
6304 NDR_CHECK(ndr_push_align(ndr, 5));
6305 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6306 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
6309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
6310 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
6312 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6313 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
6314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
6315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
6316 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
6317 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
6318 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
6319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
6320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
6321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
6322 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
6323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
6324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
6325 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
6326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
6327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
6328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
6329 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
6330 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
6331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
6332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
6333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
6334 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6336 if (ndr_flags & NDR_BUFFERS) {
6337 if (r->servername) {
6338 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6339 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6340 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6341 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6343 if (r->printername) {
6344 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6345 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6346 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6347 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6350 return NDR_ERR_SUCCESS;
6353 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
6355 uint32_t _ptr_servername;
6356 TALLOC_CTX *_mem_save_servername_0;
6357 uint32_t _ptr_printername;
6358 TALLOC_CTX *_mem_save_printername_0;
6359 if (ndr_flags & NDR_SCALARS) {
6360 NDR_CHECK(ndr_pull_align(ndr, 5));
6361 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6362 if (_ptr_servername) {
6363 NDR_PULL_ALLOC(ndr, r->servername);
6364 } else {
6365 r->servername = NULL;
6367 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6368 if (_ptr_printername) {
6369 NDR_PULL_ALLOC(ndr, r->printername);
6370 } else {
6371 r->printername = NULL;
6373 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6374 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
6375 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
6376 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6377 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
6378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6379 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
6380 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
6381 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
6382 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
6383 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
6384 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
6385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
6386 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
6387 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
6388 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
6389 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
6390 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
6391 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
6392 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
6393 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
6394 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
6395 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
6396 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
6397 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
6398 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
6399 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
6400 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6402 if (ndr_flags & NDR_BUFFERS) {
6403 if (r->servername) {
6404 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6405 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6406 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6407 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6408 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6409 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));
6411 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6412 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6415 if (r->printername) {
6416 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6417 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6418 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6419 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6420 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6421 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));
6423 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6424 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6428 return NDR_ERR_SUCCESS;
6431 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
6433 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
6434 ndr->depth++;
6435 ndr_print_ptr(ndr, "servername", r->servername);
6436 ndr->depth++;
6437 if (r->servername) {
6438 ndr_print_string(ndr, "servername", r->servername);
6440 ndr->depth--;
6441 ndr_print_ptr(ndr, "printername", r->printername);
6442 ndr->depth++;
6443 if (r->printername) {
6444 ndr_print_string(ndr, "printername", r->printername);
6446 ndr->depth--;
6447 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6448 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
6449 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
6450 ndr_print_spoolss_Time(ndr, "time", &r->time);
6451 ndr_print_uint32(ndr, "global_counter", r->global_counter);
6452 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6453 ndr_print_uint32(ndr, "version", r->version);
6454 ndr_print_uint32(ndr, "free_build", r->free_build);
6455 ndr_print_uint32(ndr, "spooling", r->spooling);
6456 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
6457 ndr_print_uint32(ndr, "session_counter", r->session_counter);
6458 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
6459 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
6460 ndr_print_uint32(ndr, "job_error", r->job_error);
6461 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
6462 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
6463 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
6464 ndr_print_uint32(ndr, "change_id", r->change_id);
6465 ndr_print_WERROR(ndr, "last_error", r->last_error);
6466 ndr_print_uint32(ndr, "status", r->status);
6467 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
6468 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
6469 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
6470 ndr_print_uint16(ndr, "processor_level", r->processor_level);
6471 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
6472 ndr_print_uint32(ndr, "reserved2", r->reserved2);
6473 ndr_print_uint32(ndr, "reserved3", r->reserved3);
6474 ndr->depth--;
6477 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
6479 if (ndr_flags & NDR_SCALARS) {
6480 NDR_CHECK(ndr_push_align(ndr, 5));
6481 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
6482 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
6483 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
6484 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6485 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6487 if (ndr_flags & NDR_BUFFERS) {
6488 if (r->description) {
6489 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6490 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6491 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6492 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6494 if (r->name) {
6495 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6496 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6497 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6498 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6500 if (r->comment) {
6501 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6502 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6503 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6504 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6507 return NDR_ERR_SUCCESS;
6510 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
6512 uint32_t _ptr_description;
6513 TALLOC_CTX *_mem_save_description_0;
6514 uint32_t _ptr_name;
6515 TALLOC_CTX *_mem_save_name_0;
6516 uint32_t _ptr_comment;
6517 TALLOC_CTX *_mem_save_comment_0;
6518 if (ndr_flags & NDR_SCALARS) {
6519 NDR_CHECK(ndr_pull_align(ndr, 5));
6520 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
6521 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
6522 if (_ptr_description) {
6523 NDR_PULL_ALLOC(ndr, r->description);
6524 } else {
6525 r->description = NULL;
6527 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
6528 if (_ptr_name) {
6529 NDR_PULL_ALLOC(ndr, r->name);
6530 } else {
6531 r->name = NULL;
6533 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6534 if (_ptr_comment) {
6535 NDR_PULL_ALLOC(ndr, r->comment);
6536 } else {
6537 r->comment = NULL;
6539 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6541 if (ndr_flags & NDR_BUFFERS) {
6542 if (r->description) {
6543 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6544 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6545 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6546 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6547 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
6548 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));
6550 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
6551 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
6552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6554 if (r->name) {
6555 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6556 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6557 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6558 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6559 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
6560 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));
6562 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
6563 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
6564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6566 if (r->comment) {
6567 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6568 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6569 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6570 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6571 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6572 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));
6574 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6575 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6576 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6579 return NDR_ERR_SUCCESS;
6582 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
6584 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
6585 ndr->depth++;
6586 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
6587 ndr_print_ptr(ndr, "description", r->description);
6588 ndr->depth++;
6589 if (r->description) {
6590 ndr_print_string(ndr, "description", r->description);
6592 ndr->depth--;
6593 ndr_print_ptr(ndr, "name", r->name);
6594 ndr->depth++;
6595 if (r->name) {
6596 ndr_print_string(ndr, "name", r->name);
6598 ndr->depth--;
6599 ndr_print_ptr(ndr, "comment", r->comment);
6600 ndr->depth++;
6601 if (r->comment) {
6602 ndr_print_string(ndr, "comment", r->comment);
6604 ndr->depth--;
6605 ndr->depth--;
6608 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
6610 if (ndr_flags & NDR_SCALARS) {
6611 NDR_CHECK(ndr_push_align(ndr, 5));
6612 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6613 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6614 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6615 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6616 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6617 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6618 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6619 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
6620 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6621 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6622 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6623 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6624 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
6625 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6630 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6633 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6635 if (ndr_flags & NDR_BUFFERS) {
6636 if (r->servername) {
6637 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6638 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6639 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6640 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6642 if (r->printername) {
6643 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6644 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6645 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6646 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6648 if (r->sharename) {
6649 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6650 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6651 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6652 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6654 if (r->portname) {
6655 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6656 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6657 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6658 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6660 if (r->drivername) {
6661 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6662 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6663 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6664 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6666 if (r->comment) {
6667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6668 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6669 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6670 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6672 if (r->location) {
6673 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6674 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6675 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6676 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6678 if (r->devmode) {
6680 struct ndr_push *_ndr_devmode;
6681 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6682 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6683 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
6686 if (r->sepfile) {
6687 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6688 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6689 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6690 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6692 if (r->printprocessor) {
6693 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6694 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6695 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6696 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6698 if (r->datatype) {
6699 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6700 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6701 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6702 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6704 if (r->parameters) {
6705 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6706 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6707 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6708 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6710 if (r->secdesc) {
6712 struct ndr_push *_ndr_secdesc;
6713 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6714 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6715 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6719 return NDR_ERR_SUCCESS;
6722 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6724 uint32_t _ptr_servername;
6725 TALLOC_CTX *_mem_save_servername_0;
6726 uint32_t _ptr_printername;
6727 TALLOC_CTX *_mem_save_printername_0;
6728 uint32_t _ptr_sharename;
6729 TALLOC_CTX *_mem_save_sharename_0;
6730 uint32_t _ptr_portname;
6731 TALLOC_CTX *_mem_save_portname_0;
6732 uint32_t _ptr_drivername;
6733 TALLOC_CTX *_mem_save_drivername_0;
6734 uint32_t _ptr_comment;
6735 TALLOC_CTX *_mem_save_comment_0;
6736 uint32_t _ptr_location;
6737 TALLOC_CTX *_mem_save_location_0;
6738 uint32_t _ptr_devmode;
6739 TALLOC_CTX *_mem_save_devmode_0;
6740 uint32_t _ptr_sepfile;
6741 TALLOC_CTX *_mem_save_sepfile_0;
6742 uint32_t _ptr_printprocessor;
6743 TALLOC_CTX *_mem_save_printprocessor_0;
6744 uint32_t _ptr_datatype;
6745 TALLOC_CTX *_mem_save_datatype_0;
6746 uint32_t _ptr_parameters;
6747 TALLOC_CTX *_mem_save_parameters_0;
6748 uint32_t _ptr_secdesc;
6749 TALLOC_CTX *_mem_save_secdesc_0;
6750 if (ndr_flags & NDR_SCALARS) {
6751 NDR_CHECK(ndr_pull_align(ndr, 5));
6752 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6753 if (_ptr_servername) {
6754 NDR_PULL_ALLOC(ndr, r->servername);
6755 } else {
6756 r->servername = NULL;
6758 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6759 if (_ptr_printername) {
6760 NDR_PULL_ALLOC(ndr, r->printername);
6761 } else {
6762 r->printername = NULL;
6764 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6765 if (_ptr_sharename) {
6766 NDR_PULL_ALLOC(ndr, r->sharename);
6767 } else {
6768 r->sharename = NULL;
6770 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6771 if (_ptr_portname) {
6772 NDR_PULL_ALLOC(ndr, r->portname);
6773 } else {
6774 r->portname = NULL;
6776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6777 if (_ptr_drivername) {
6778 NDR_PULL_ALLOC(ndr, r->drivername);
6779 } else {
6780 r->drivername = NULL;
6782 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6783 if (_ptr_comment) {
6784 NDR_PULL_ALLOC(ndr, r->comment);
6785 } else {
6786 r->comment = NULL;
6788 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6789 if (_ptr_location) {
6790 NDR_PULL_ALLOC(ndr, r->location);
6791 } else {
6792 r->location = NULL;
6794 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
6795 if (_ptr_devmode) {
6796 NDR_PULL_ALLOC(ndr, r->devmode);
6797 } else {
6798 r->devmode = NULL;
6800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6801 if (_ptr_sepfile) {
6802 NDR_PULL_ALLOC(ndr, r->sepfile);
6803 } else {
6804 r->sepfile = NULL;
6806 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6807 if (_ptr_printprocessor) {
6808 NDR_PULL_ALLOC(ndr, r->printprocessor);
6809 } else {
6810 r->printprocessor = NULL;
6812 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6813 if (_ptr_datatype) {
6814 NDR_PULL_ALLOC(ndr, r->datatype);
6815 } else {
6816 r->datatype = NULL;
6818 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6819 if (_ptr_parameters) {
6820 NDR_PULL_ALLOC(ndr, r->parameters);
6821 } else {
6822 r->parameters = NULL;
6824 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
6825 if (_ptr_secdesc) {
6826 NDR_PULL_ALLOC(ndr, r->secdesc);
6827 } else {
6828 r->secdesc = NULL;
6830 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6831 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6832 if (r->priority > 99) {
6833 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6835 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
6836 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
6837 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
6838 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6840 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
6841 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6843 if (ndr_flags & NDR_BUFFERS) {
6844 if (r->servername) {
6845 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6846 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6847 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6848 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6849 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6850 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));
6852 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6853 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6854 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6856 if (r->printername) {
6857 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6858 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6859 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6860 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6861 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6862 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));
6864 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6865 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6868 if (r->sharename) {
6869 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
6870 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
6871 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
6872 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
6873 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
6874 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));
6876 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
6877 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
6878 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
6880 if (r->portname) {
6881 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6882 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6883 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6884 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6885 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6886 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));
6888 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6889 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6892 if (r->drivername) {
6893 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6894 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
6895 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
6896 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
6897 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
6898 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));
6900 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
6901 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
6902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
6904 if (r->comment) {
6905 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6906 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6907 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6908 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6909 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6910 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));
6912 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6913 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6914 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6916 if (r->location) {
6917 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
6918 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
6919 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
6920 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
6921 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
6922 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));
6924 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
6925 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
6926 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
6928 if (r->devmode) {
6929 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
6930 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
6932 struct ndr_pull *_ndr_devmode;
6933 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6934 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6935 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
6937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
6939 if (r->sepfile) {
6940 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
6941 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
6942 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
6943 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
6944 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
6945 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));
6947 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
6948 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
6949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
6951 if (r->printprocessor) {
6952 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6953 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
6954 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
6955 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
6956 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
6957 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));
6959 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
6960 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
6961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
6963 if (r->datatype) {
6964 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6965 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
6966 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
6967 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
6968 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
6969 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));
6971 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
6972 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
6973 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
6975 if (r->parameters) {
6976 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6977 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6978 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6979 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6980 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6981 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));
6983 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6984 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6987 if (r->secdesc) {
6988 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6989 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
6991 struct ndr_pull *_ndr_secdesc;
6992 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6993 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6994 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
6999 return NDR_ERR_SUCCESS;
7002 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
7004 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
7005 ndr->depth++;
7006 ndr_print_ptr(ndr, "servername", r->servername);
7007 ndr->depth++;
7008 if (r->servername) {
7009 ndr_print_string(ndr, "servername", r->servername);
7011 ndr->depth--;
7012 ndr_print_ptr(ndr, "printername", r->printername);
7013 ndr->depth++;
7014 if (r->printername) {
7015 ndr_print_string(ndr, "printername", r->printername);
7017 ndr->depth--;
7018 ndr_print_ptr(ndr, "sharename", r->sharename);
7019 ndr->depth++;
7020 if (r->sharename) {
7021 ndr_print_string(ndr, "sharename", r->sharename);
7023 ndr->depth--;
7024 ndr_print_ptr(ndr, "portname", r->portname);
7025 ndr->depth++;
7026 if (r->portname) {
7027 ndr_print_string(ndr, "portname", r->portname);
7029 ndr->depth--;
7030 ndr_print_ptr(ndr, "drivername", r->drivername);
7031 ndr->depth++;
7032 if (r->drivername) {
7033 ndr_print_string(ndr, "drivername", r->drivername);
7035 ndr->depth--;
7036 ndr_print_ptr(ndr, "comment", r->comment);
7037 ndr->depth++;
7038 if (r->comment) {
7039 ndr_print_string(ndr, "comment", r->comment);
7041 ndr->depth--;
7042 ndr_print_ptr(ndr, "location", r->location);
7043 ndr->depth++;
7044 if (r->location) {
7045 ndr_print_string(ndr, "location", r->location);
7047 ndr->depth--;
7048 ndr_print_ptr(ndr, "devmode", r->devmode);
7049 ndr->depth++;
7050 if (r->devmode) {
7051 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
7053 ndr->depth--;
7054 ndr_print_ptr(ndr, "sepfile", r->sepfile);
7055 ndr->depth++;
7056 if (r->sepfile) {
7057 ndr_print_string(ndr, "sepfile", r->sepfile);
7059 ndr->depth--;
7060 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
7061 ndr->depth++;
7062 if (r->printprocessor) {
7063 ndr_print_string(ndr, "printprocessor", r->printprocessor);
7065 ndr->depth--;
7066 ndr_print_ptr(ndr, "datatype", r->datatype);
7067 ndr->depth++;
7068 if (r->datatype) {
7069 ndr_print_string(ndr, "datatype", r->datatype);
7071 ndr->depth--;
7072 ndr_print_ptr(ndr, "parameters", r->parameters);
7073 ndr->depth++;
7074 if (r->parameters) {
7075 ndr_print_string(ndr, "parameters", r->parameters);
7077 ndr->depth--;
7078 ndr_print_ptr(ndr, "secdesc", r->secdesc);
7079 ndr->depth++;
7080 if (r->secdesc) {
7081 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
7083 ndr->depth--;
7084 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7085 ndr_print_uint32(ndr, "priority", r->priority);
7086 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
7087 ndr_print_uint32(ndr, "starttime", r->starttime);
7088 ndr_print_uint32(ndr, "untiltime", r->untiltime);
7089 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7090 ndr_print_uint32(ndr, "cjobs", r->cjobs);
7091 ndr_print_uint32(ndr, "averageppm", r->averageppm);
7092 ndr->depth--;
7095 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
7097 if (ndr_flags & NDR_SCALARS) {
7098 NDR_CHECK(ndr_push_align(ndr, 4));
7099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
7100 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7102 if (ndr_flags & NDR_BUFFERS) {
7104 return NDR_ERR_SUCCESS;
7107 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
7109 if (ndr_flags & NDR_SCALARS) {
7110 NDR_CHECK(ndr_pull_align(ndr, 4));
7111 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
7112 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7114 if (ndr_flags & NDR_BUFFERS) {
7116 return NDR_ERR_SUCCESS;
7119 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
7121 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
7122 ndr->depth++;
7123 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
7124 ndr->depth--;
7127 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
7129 if (ndr_flags & NDR_SCALARS) {
7130 NDR_CHECK(ndr_push_align(ndr, 5));
7131 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7132 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7133 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7134 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7136 if (ndr_flags & NDR_BUFFERS) {
7137 if (r->printername) {
7138 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7139 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7140 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7141 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7143 if (r->servername) {
7144 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7145 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7146 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7147 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7150 return NDR_ERR_SUCCESS;
7153 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
7155 uint32_t _ptr_printername;
7156 TALLOC_CTX *_mem_save_printername_0;
7157 uint32_t _ptr_servername;
7158 TALLOC_CTX *_mem_save_servername_0;
7159 if (ndr_flags & NDR_SCALARS) {
7160 NDR_CHECK(ndr_pull_align(ndr, 5));
7161 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7162 if (_ptr_printername) {
7163 NDR_PULL_ALLOC(ndr, r->printername);
7164 } else {
7165 r->printername = NULL;
7167 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7168 if (_ptr_servername) {
7169 NDR_PULL_ALLOC(ndr, r->servername);
7170 } else {
7171 r->servername = NULL;
7173 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7174 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7176 if (ndr_flags & NDR_BUFFERS) {
7177 if (r->printername) {
7178 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7179 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7180 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7181 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7182 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7183 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));
7185 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7186 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7187 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7189 if (r->servername) {
7190 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7191 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7192 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7193 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7194 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7195 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));
7197 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7198 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7199 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7202 return NDR_ERR_SUCCESS;
7205 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
7207 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
7208 ndr->depth++;
7209 ndr_print_ptr(ndr, "printername", r->printername);
7210 ndr->depth++;
7211 if (r->printername) {
7212 ndr_print_string(ndr, "printername", r->printername);
7214 ndr->depth--;
7215 ndr_print_ptr(ndr, "servername", r->servername);
7216 ndr->depth++;
7217 if (r->servername) {
7218 ndr_print_string(ndr, "servername", r->servername);
7220 ndr->depth--;
7221 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7222 ndr->depth--;
7225 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
7227 if (ndr_flags & NDR_SCALARS) {
7228 NDR_CHECK(ndr_push_align(ndr, 5));
7229 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7230 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7231 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7232 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
7233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
7234 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7236 if (ndr_flags & NDR_BUFFERS) {
7237 if (r->printername) {
7238 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7239 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7240 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7241 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7243 if (r->portname) {
7244 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7245 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7246 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7247 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7250 return NDR_ERR_SUCCESS;
7253 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
7255 uint32_t _ptr_printername;
7256 TALLOC_CTX *_mem_save_printername_0;
7257 uint32_t _ptr_portname;
7258 TALLOC_CTX *_mem_save_portname_0;
7259 if (ndr_flags & NDR_SCALARS) {
7260 NDR_CHECK(ndr_pull_align(ndr, 5));
7261 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7262 if (_ptr_printername) {
7263 NDR_PULL_ALLOC(ndr, r->printername);
7264 } else {
7265 r->printername = NULL;
7267 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7268 if (_ptr_portname) {
7269 NDR_PULL_ALLOC(ndr, r->portname);
7270 } else {
7271 r->portname = NULL;
7273 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7274 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
7275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
7276 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7278 if (ndr_flags & NDR_BUFFERS) {
7279 if (r->printername) {
7280 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7281 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7282 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7283 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7284 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7285 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));
7287 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7288 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7291 if (r->portname) {
7292 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7293 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7294 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7295 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7296 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7297 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));
7299 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7300 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7304 return NDR_ERR_SUCCESS;
7307 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
7309 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
7310 ndr->depth++;
7311 ndr_print_ptr(ndr, "printername", r->printername);
7312 ndr->depth++;
7313 if (r->printername) {
7314 ndr_print_string(ndr, "printername", r->printername);
7316 ndr->depth--;
7317 ndr_print_ptr(ndr, "portname", r->portname);
7318 ndr->depth++;
7319 if (r->portname) {
7320 ndr_print_string(ndr, "portname", r->portname);
7322 ndr->depth--;
7323 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7324 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
7325 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
7326 ndr->depth--;
7329 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
7331 if (ndr_flags & NDR_SCALARS) {
7332 NDR_CHECK(ndr_push_align(ndr, 4));
7333 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7334 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7336 if (ndr_flags & NDR_BUFFERS) {
7338 return NDR_ERR_SUCCESS;
7341 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
7343 if (ndr_flags & NDR_SCALARS) {
7344 NDR_CHECK(ndr_pull_align(ndr, 4));
7345 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7346 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7348 if (ndr_flags & NDR_BUFFERS) {
7350 return NDR_ERR_SUCCESS;
7353 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
7355 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
7356 ndr->depth++;
7357 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7358 ndr->depth--;
7361 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
7363 if (ndr_flags & NDR_SCALARS) {
7364 NDR_CHECK(ndr_push_align(ndr, 5));
7365 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
7366 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
7367 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7369 if (ndr_flags & NDR_BUFFERS) {
7370 if (r->guid) {
7371 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7372 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7373 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7374 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7377 return NDR_ERR_SUCCESS;
7380 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
7382 uint32_t _ptr_guid;
7383 TALLOC_CTX *_mem_save_guid_0;
7384 if (ndr_flags & NDR_SCALARS) {
7385 NDR_CHECK(ndr_pull_align(ndr, 5));
7386 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
7387 if (_ptr_guid) {
7388 NDR_PULL_ALLOC(ndr, r->guid);
7389 } else {
7390 r->guid = NULL;
7392 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
7393 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7395 if (ndr_flags & NDR_BUFFERS) {
7396 if (r->guid) {
7397 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7398 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
7399 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
7400 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
7401 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
7402 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));
7404 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
7405 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
7406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
7409 return NDR_ERR_SUCCESS;
7412 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
7414 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
7415 ndr->depth++;
7416 ndr_print_ptr(ndr, "guid", r->guid);
7417 ndr->depth++;
7418 if (r->guid) {
7419 ndr_print_string(ndr, "guid", r->guid);
7421 ndr->depth--;
7422 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
7423 ndr->depth--;
7426 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
7428 if (ndr_flags & NDR_SCALARS) {
7429 int level = ndr_push_get_switch_value(ndr, r);
7430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7431 NDR_CHECK(ndr_push_union_align(ndr, 5));
7432 switch (level) {
7433 case 0: {
7434 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
7435 break; }
7437 case 1: {
7438 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7439 break; }
7441 case 2: {
7442 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7443 break; }
7445 case 3: {
7446 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
7447 break; }
7449 case 4: {
7450 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
7451 break; }
7453 case 5: {
7454 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
7455 break; }
7457 case 6: {
7458 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
7459 break; }
7461 case 7: {
7462 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
7463 break; }
7465 case 8: {
7466 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
7467 break; }
7469 case 9: {
7470 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
7471 break; }
7473 default: {
7474 break; }
7478 if (ndr_flags & NDR_BUFFERS) {
7479 int level = ndr_push_get_switch_value(ndr, r);
7480 switch (level) {
7481 case 0:
7482 if (r->info0) {
7483 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7485 break;
7487 case 1:
7488 if (r->info1) {
7489 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7491 break;
7493 case 2:
7494 if (r->info2) {
7495 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7497 break;
7499 case 3:
7500 if (r->info3) {
7501 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7503 break;
7505 case 4:
7506 if (r->info4) {
7507 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7509 break;
7511 case 5:
7512 if (r->info5) {
7513 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7515 break;
7517 case 6:
7518 if (r->info6) {
7519 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7521 break;
7523 case 7:
7524 if (r->info7) {
7525 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7527 break;
7529 case 8:
7530 if (r->info8) {
7531 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7533 break;
7535 case 9:
7536 if (r->info9) {
7537 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7539 break;
7541 default:
7542 break;
7546 return NDR_ERR_SUCCESS;
7549 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
7551 int level;
7552 uint32_t _level;
7553 TALLOC_CTX *_mem_save_info0_0;
7554 TALLOC_CTX *_mem_save_info1_0;
7555 TALLOC_CTX *_mem_save_info2_0;
7556 TALLOC_CTX *_mem_save_info3_0;
7557 TALLOC_CTX *_mem_save_info4_0;
7558 TALLOC_CTX *_mem_save_info5_0;
7559 TALLOC_CTX *_mem_save_info6_0;
7560 TALLOC_CTX *_mem_save_info7_0;
7561 TALLOC_CTX *_mem_save_info8_0;
7562 TALLOC_CTX *_mem_save_info9_0;
7563 level = ndr_pull_get_switch_value(ndr, r);
7564 if (ndr_flags & NDR_SCALARS) {
7565 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7566 if (_level != level) {
7567 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
7569 NDR_CHECK(ndr_pull_union_align(ndr, 5));
7570 switch (level) {
7571 case 0: {
7572 uint32_t _ptr_info0;
7573 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7574 if (_ptr_info0) {
7575 NDR_PULL_ALLOC(ndr, r->info0);
7576 } else {
7577 r->info0 = NULL;
7579 break; }
7581 case 1: {
7582 uint32_t _ptr_info1;
7583 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7584 if (_ptr_info1) {
7585 NDR_PULL_ALLOC(ndr, r->info1);
7586 } else {
7587 r->info1 = NULL;
7589 break; }
7591 case 2: {
7592 uint32_t _ptr_info2;
7593 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7594 if (_ptr_info2) {
7595 NDR_PULL_ALLOC(ndr, r->info2);
7596 } else {
7597 r->info2 = NULL;
7599 break; }
7601 case 3: {
7602 uint32_t _ptr_info3;
7603 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7604 if (_ptr_info3) {
7605 NDR_PULL_ALLOC(ndr, r->info3);
7606 } else {
7607 r->info3 = NULL;
7609 break; }
7611 case 4: {
7612 uint32_t _ptr_info4;
7613 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7614 if (_ptr_info4) {
7615 NDR_PULL_ALLOC(ndr, r->info4);
7616 } else {
7617 r->info4 = NULL;
7619 break; }
7621 case 5: {
7622 uint32_t _ptr_info5;
7623 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7624 if (_ptr_info5) {
7625 NDR_PULL_ALLOC(ndr, r->info5);
7626 } else {
7627 r->info5 = NULL;
7629 break; }
7631 case 6: {
7632 uint32_t _ptr_info6;
7633 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7634 if (_ptr_info6) {
7635 NDR_PULL_ALLOC(ndr, r->info6);
7636 } else {
7637 r->info6 = NULL;
7639 break; }
7641 case 7: {
7642 uint32_t _ptr_info7;
7643 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7644 if (_ptr_info7) {
7645 NDR_PULL_ALLOC(ndr, r->info7);
7646 } else {
7647 r->info7 = NULL;
7649 break; }
7651 case 8: {
7652 uint32_t _ptr_info8;
7653 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7654 if (_ptr_info8) {
7655 NDR_PULL_ALLOC(ndr, r->info8);
7656 } else {
7657 r->info8 = NULL;
7659 break; }
7661 case 9: {
7662 uint32_t _ptr_info9;
7663 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7664 if (_ptr_info9) {
7665 NDR_PULL_ALLOC(ndr, r->info9);
7666 } else {
7667 r->info9 = NULL;
7669 break; }
7671 default: {
7672 break; }
7676 if (ndr_flags & NDR_BUFFERS) {
7677 switch (level) {
7678 case 0:
7679 if (r->info0) {
7680 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7681 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7682 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7685 break;
7687 case 1:
7688 if (r->info1) {
7689 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7690 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7691 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7694 break;
7696 case 2:
7697 if (r->info2) {
7698 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7699 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7700 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7703 break;
7705 case 3:
7706 if (r->info3) {
7707 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7708 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7709 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7712 break;
7714 case 4:
7715 if (r->info4) {
7716 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7717 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7718 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7721 break;
7723 case 5:
7724 if (r->info5) {
7725 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7726 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7727 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7728 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7730 break;
7732 case 6:
7733 if (r->info6) {
7734 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7735 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7736 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7739 break;
7741 case 7:
7742 if (r->info7) {
7743 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7744 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7745 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7746 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7748 break;
7750 case 8:
7751 if (r->info8) {
7752 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7753 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7754 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7755 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7757 break;
7759 case 9:
7760 if (r->info9) {
7761 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7762 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7763 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7764 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7766 break;
7768 default:
7769 break;
7773 return NDR_ERR_SUCCESS;
7776 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7778 int level;
7779 level = ndr_print_get_switch_value(ndr, r);
7780 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
7781 switch (level) {
7782 case 0:
7783 ndr_print_ptr(ndr, "info0", r->info0);
7784 ndr->depth++;
7785 if (r->info0) {
7786 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
7788 ndr->depth--;
7789 break;
7791 case 1:
7792 ndr_print_ptr(ndr, "info1", r->info1);
7793 ndr->depth++;
7794 if (r->info1) {
7795 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
7797 ndr->depth--;
7798 break;
7800 case 2:
7801 ndr_print_ptr(ndr, "info2", r->info2);
7802 ndr->depth++;
7803 if (r->info2) {
7804 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
7806 ndr->depth--;
7807 break;
7809 case 3:
7810 ndr_print_ptr(ndr, "info3", r->info3);
7811 ndr->depth++;
7812 if (r->info3) {
7813 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
7815 ndr->depth--;
7816 break;
7818 case 4:
7819 ndr_print_ptr(ndr, "info4", r->info4);
7820 ndr->depth++;
7821 if (r->info4) {
7822 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
7824 ndr->depth--;
7825 break;
7827 case 5:
7828 ndr_print_ptr(ndr, "info5", r->info5);
7829 ndr->depth++;
7830 if (r->info5) {
7831 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
7833 ndr->depth--;
7834 break;
7836 case 6:
7837 ndr_print_ptr(ndr, "info6", r->info6);
7838 ndr->depth++;
7839 if (r->info6) {
7840 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
7842 ndr->depth--;
7843 break;
7845 case 7:
7846 ndr_print_ptr(ndr, "info7", r->info7);
7847 ndr->depth++;
7848 if (r->info7) {
7849 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
7851 ndr->depth--;
7852 break;
7854 case 8:
7855 ndr_print_ptr(ndr, "info8", r->info8);
7856 ndr->depth++;
7857 if (r->info8) {
7858 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
7860 ndr->depth--;
7861 break;
7863 case 9:
7864 ndr_print_ptr(ndr, "info9", r->info9);
7865 ndr->depth++;
7866 if (r->info9) {
7867 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
7869 ndr->depth--;
7870 break;
7872 default:
7873 break;
7878 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
7880 if (ndr_flags & NDR_SCALARS) {
7881 NDR_CHECK(ndr_push_align(ndr, 5));
7882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7883 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7884 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7885 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7887 if (ndr_flags & NDR_BUFFERS) {
7888 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7890 return NDR_ERR_SUCCESS;
7893 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
7895 if (ndr_flags & NDR_SCALARS) {
7896 NDR_CHECK(ndr_pull_align(ndr, 5));
7897 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7898 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7899 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7900 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7902 if (ndr_flags & NDR_BUFFERS) {
7903 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7905 return NDR_ERR_SUCCESS;
7908 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
7910 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
7911 ndr->depth++;
7912 ndr_print_uint32(ndr, "level", r->level);
7913 ndr_print_set_switch_value(ndr, &r->info, r->level);
7914 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
7915 ndr->depth--;
7918 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
7920 if (ndr_flags & NDR_SCALARS) {
7921 NDR_CHECK(ndr_push_align(ndr, 4));
7922 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
7924 uint32_t _flags_save_string_array = ndr->flags;
7925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7926 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
7927 ndr->flags = _flags_save_string_array;
7929 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7931 if (ndr_flags & NDR_BUFFERS) {
7933 return NDR_ERR_SUCCESS;
7936 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
7938 if (ndr_flags & NDR_SCALARS) {
7939 NDR_CHECK(ndr_pull_align(ndr, 4));
7940 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
7942 uint32_t _flags_save_string_array = ndr->flags;
7943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7944 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
7945 ndr->flags = _flags_save_string_array;
7947 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7949 if (ndr_flags & NDR_BUFFERS) {
7951 return NDR_ERR_SUCCESS;
7954 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
7956 ndr_print_struct(ndr, name, "spoolss_StringArray");
7957 ndr->depth++;
7958 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);
7959 ndr_print_string_array(ndr, "string", r->string);
7960 ndr->depth--;
7963 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
7965 if (ndr_flags & NDR_SCALARS) {
7966 NDR_CHECK(ndr_push_align(ndr, 5));
7967 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7968 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7970 if (ndr_flags & NDR_BUFFERS) {
7971 if (r->driver_name) {
7972 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7973 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7974 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7975 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7978 return NDR_ERR_SUCCESS;
7981 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
7983 uint32_t _ptr_driver_name;
7984 TALLOC_CTX *_mem_save_driver_name_0;
7985 if (ndr_flags & NDR_SCALARS) {
7986 NDR_CHECK(ndr_pull_align(ndr, 5));
7987 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7988 if (_ptr_driver_name) {
7989 NDR_PULL_ALLOC(ndr, r->driver_name);
7990 } else {
7991 r->driver_name = NULL;
7993 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7995 if (ndr_flags & NDR_BUFFERS) {
7996 if (r->driver_name) {
7997 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7998 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7999 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8000 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8001 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8002 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));
8004 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8005 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8009 return NDR_ERR_SUCCESS;
8012 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
8014 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
8015 ndr->depth++;
8016 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8017 ndr->depth++;
8018 if (r->driver_name) {
8019 ndr_print_string(ndr, "driver_name", r->driver_name);
8021 ndr->depth--;
8022 ndr->depth--;
8025 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
8027 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8028 return NDR_ERR_SUCCESS;
8031 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
8033 uint32_t v;
8034 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8035 *r = v;
8036 return NDR_ERR_SUCCESS;
8039 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
8041 const char *val = NULL;
8043 switch (r) {
8044 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
8045 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
8046 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
8047 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
8049 ndr_print_enum(ndr, name, "ENUM", val, r);
8052 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
8054 if (ndr_flags & NDR_SCALARS) {
8055 NDR_CHECK(ndr_push_align(ndr, 5));
8056 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8057 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8058 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8059 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8060 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8061 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8062 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8064 if (ndr_flags & NDR_BUFFERS) {
8065 if (r->driver_name) {
8066 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8067 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8068 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8069 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8071 if (r->architecture) {
8072 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8073 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8074 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8075 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8077 if (r->driver_path) {
8078 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8079 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8080 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8081 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8083 if (r->data_file) {
8084 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8085 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8086 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8087 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8089 if (r->config_file) {
8090 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8091 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8092 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8093 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8096 return NDR_ERR_SUCCESS;
8099 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
8101 uint32_t _ptr_driver_name;
8102 TALLOC_CTX *_mem_save_driver_name_0;
8103 uint32_t _ptr_architecture;
8104 TALLOC_CTX *_mem_save_architecture_0;
8105 uint32_t _ptr_driver_path;
8106 TALLOC_CTX *_mem_save_driver_path_0;
8107 uint32_t _ptr_data_file;
8108 TALLOC_CTX *_mem_save_data_file_0;
8109 uint32_t _ptr_config_file;
8110 TALLOC_CTX *_mem_save_config_file_0;
8111 if (ndr_flags & NDR_SCALARS) {
8112 NDR_CHECK(ndr_pull_align(ndr, 5));
8113 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8114 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8115 if (_ptr_driver_name) {
8116 NDR_PULL_ALLOC(ndr, r->driver_name);
8117 } else {
8118 r->driver_name = NULL;
8120 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8121 if (_ptr_architecture) {
8122 NDR_PULL_ALLOC(ndr, r->architecture);
8123 } else {
8124 r->architecture = NULL;
8126 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8127 if (_ptr_driver_path) {
8128 NDR_PULL_ALLOC(ndr, r->driver_path);
8129 } else {
8130 r->driver_path = NULL;
8132 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8133 if (_ptr_data_file) {
8134 NDR_PULL_ALLOC(ndr, r->data_file);
8135 } else {
8136 r->data_file = NULL;
8138 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8139 if (_ptr_config_file) {
8140 NDR_PULL_ALLOC(ndr, r->config_file);
8141 } else {
8142 r->config_file = NULL;
8144 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8146 if (ndr_flags & NDR_BUFFERS) {
8147 if (r->driver_name) {
8148 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8149 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8150 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8151 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8152 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8153 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));
8155 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8156 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8159 if (r->architecture) {
8160 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8161 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8162 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8163 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8164 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8165 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));
8167 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8168 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8171 if (r->driver_path) {
8172 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8173 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8174 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8175 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8176 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8177 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));
8179 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8180 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8181 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8183 if (r->data_file) {
8184 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8185 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8186 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8187 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8188 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8189 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));
8191 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8192 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8195 if (r->config_file) {
8196 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8197 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8198 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8199 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8200 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8201 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));
8203 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8204 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8208 return NDR_ERR_SUCCESS;
8211 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
8213 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
8214 ndr->depth++;
8215 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8216 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8217 ndr->depth++;
8218 if (r->driver_name) {
8219 ndr_print_string(ndr, "driver_name", r->driver_name);
8221 ndr->depth--;
8222 ndr_print_ptr(ndr, "architecture", r->architecture);
8223 ndr->depth++;
8224 if (r->architecture) {
8225 ndr_print_string(ndr, "architecture", r->architecture);
8227 ndr->depth--;
8228 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8229 ndr->depth++;
8230 if (r->driver_path) {
8231 ndr_print_string(ndr, "driver_path", r->driver_path);
8233 ndr->depth--;
8234 ndr_print_ptr(ndr, "data_file", r->data_file);
8235 ndr->depth++;
8236 if (r->data_file) {
8237 ndr_print_string(ndr, "data_file", r->data_file);
8239 ndr->depth--;
8240 ndr_print_ptr(ndr, "config_file", r->config_file);
8241 ndr->depth++;
8242 if (r->config_file) {
8243 ndr_print_string(ndr, "config_file", r->config_file);
8245 ndr->depth--;
8246 ndr->depth--;
8249 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
8251 if (ndr_flags & NDR_SCALARS) {
8252 NDR_CHECK(ndr_push_align(ndr, 5));
8253 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8254 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8255 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8256 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8257 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8258 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8259 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8260 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8261 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8263 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8264 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8266 if (ndr_flags & NDR_BUFFERS) {
8267 if (r->driver_name) {
8268 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8269 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8270 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8271 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8273 if (r->architecture) {
8274 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8275 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8276 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8277 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8279 if (r->driver_path) {
8280 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8281 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8282 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8283 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8285 if (r->data_file) {
8286 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8287 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8288 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8289 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8291 if (r->config_file) {
8292 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8293 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8294 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8295 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8297 if (r->help_file) {
8298 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8299 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8300 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8301 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8303 if (r->monitor_name) {
8304 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8305 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8306 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8307 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8309 if (r->default_datatype) {
8310 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8311 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8312 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8313 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8315 if (r->dependent_files) {
8316 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8319 return NDR_ERR_SUCCESS;
8322 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
8324 uint32_t _ptr_driver_name;
8325 TALLOC_CTX *_mem_save_driver_name_0;
8326 uint32_t _ptr_architecture;
8327 TALLOC_CTX *_mem_save_architecture_0;
8328 uint32_t _ptr_driver_path;
8329 TALLOC_CTX *_mem_save_driver_path_0;
8330 uint32_t _ptr_data_file;
8331 TALLOC_CTX *_mem_save_data_file_0;
8332 uint32_t _ptr_config_file;
8333 TALLOC_CTX *_mem_save_config_file_0;
8334 uint32_t _ptr_help_file;
8335 TALLOC_CTX *_mem_save_help_file_0;
8336 uint32_t _ptr_monitor_name;
8337 TALLOC_CTX *_mem_save_monitor_name_0;
8338 uint32_t _ptr_default_datatype;
8339 TALLOC_CTX *_mem_save_default_datatype_0;
8340 uint32_t _ptr_dependent_files;
8341 TALLOC_CTX *_mem_save_dependent_files_0;
8342 if (ndr_flags & NDR_SCALARS) {
8343 NDR_CHECK(ndr_pull_align(ndr, 5));
8344 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8345 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8346 if (_ptr_driver_name) {
8347 NDR_PULL_ALLOC(ndr, r->driver_name);
8348 } else {
8349 r->driver_name = NULL;
8351 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8352 if (_ptr_architecture) {
8353 NDR_PULL_ALLOC(ndr, r->architecture);
8354 } else {
8355 r->architecture = NULL;
8357 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8358 if (_ptr_driver_path) {
8359 NDR_PULL_ALLOC(ndr, r->driver_path);
8360 } else {
8361 r->driver_path = NULL;
8363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8364 if (_ptr_data_file) {
8365 NDR_PULL_ALLOC(ndr, r->data_file);
8366 } else {
8367 r->data_file = NULL;
8369 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8370 if (_ptr_config_file) {
8371 NDR_PULL_ALLOC(ndr, r->config_file);
8372 } else {
8373 r->config_file = NULL;
8375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8376 if (_ptr_help_file) {
8377 NDR_PULL_ALLOC(ndr, r->help_file);
8378 } else {
8379 r->help_file = NULL;
8381 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8382 if (_ptr_monitor_name) {
8383 NDR_PULL_ALLOC(ndr, r->monitor_name);
8384 } else {
8385 r->monitor_name = NULL;
8387 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8388 if (_ptr_default_datatype) {
8389 NDR_PULL_ALLOC(ndr, r->default_datatype);
8390 } else {
8391 r->default_datatype = NULL;
8393 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8394 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8395 if (_ptr_dependent_files) {
8396 NDR_PULL_ALLOC(ndr, r->dependent_files);
8397 } else {
8398 r->dependent_files = NULL;
8400 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8402 if (ndr_flags & NDR_BUFFERS) {
8403 if (r->driver_name) {
8404 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8405 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8406 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8407 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8408 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8409 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));
8411 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8412 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8415 if (r->architecture) {
8416 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8417 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8418 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8419 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8420 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8421 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));
8423 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8424 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8427 if (r->driver_path) {
8428 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8429 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8430 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8431 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8432 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8433 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));
8435 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8436 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8439 if (r->data_file) {
8440 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8441 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8442 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8443 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8444 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8445 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));
8447 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8448 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8451 if (r->config_file) {
8452 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8453 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8454 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8455 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8456 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8457 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));
8459 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8460 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8463 if (r->help_file) {
8464 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8465 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8466 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8467 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8468 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8469 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));
8471 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8472 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8473 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8475 if (r->monitor_name) {
8476 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8477 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8478 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8479 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8480 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8481 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));
8483 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8484 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8485 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8487 if (r->default_datatype) {
8488 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8489 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8490 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8491 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8492 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8493 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));
8495 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8496 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8499 if (r->dependent_files) {
8500 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8501 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8502 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8506 return NDR_ERR_SUCCESS;
8509 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
8511 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
8512 ndr->depth++;
8513 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8514 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8515 ndr->depth++;
8516 if (r->driver_name) {
8517 ndr_print_string(ndr, "driver_name", r->driver_name);
8519 ndr->depth--;
8520 ndr_print_ptr(ndr, "architecture", r->architecture);
8521 ndr->depth++;
8522 if (r->architecture) {
8523 ndr_print_string(ndr, "architecture", r->architecture);
8525 ndr->depth--;
8526 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8527 ndr->depth++;
8528 if (r->driver_path) {
8529 ndr_print_string(ndr, "driver_path", r->driver_path);
8531 ndr->depth--;
8532 ndr_print_ptr(ndr, "data_file", r->data_file);
8533 ndr->depth++;
8534 if (r->data_file) {
8535 ndr_print_string(ndr, "data_file", r->data_file);
8537 ndr->depth--;
8538 ndr_print_ptr(ndr, "config_file", r->config_file);
8539 ndr->depth++;
8540 if (r->config_file) {
8541 ndr_print_string(ndr, "config_file", r->config_file);
8543 ndr->depth--;
8544 ndr_print_ptr(ndr, "help_file", r->help_file);
8545 ndr->depth++;
8546 if (r->help_file) {
8547 ndr_print_string(ndr, "help_file", r->help_file);
8549 ndr->depth--;
8550 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8551 ndr->depth++;
8552 if (r->monitor_name) {
8553 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8555 ndr->depth--;
8556 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8557 ndr->depth++;
8558 if (r->default_datatype) {
8559 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8561 ndr->depth--;
8562 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);
8563 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8564 ndr->depth++;
8565 if (r->dependent_files) {
8566 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8568 ndr->depth--;
8569 ndr->depth--;
8572 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8574 if (ndr_flags & NDR_SCALARS) {
8575 NDR_CHECK(ndr_push_align(ndr, 5));
8576 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8577 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8578 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8579 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8580 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8581 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8582 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8583 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8584 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8586 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8588 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8589 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8591 if (ndr_flags & NDR_BUFFERS) {
8592 if (r->driver_name) {
8593 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8594 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8595 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8596 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8598 if (r->architecture) {
8599 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8600 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8601 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8602 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8604 if (r->driver_path) {
8605 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8606 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8607 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8608 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8610 if (r->data_file) {
8611 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8612 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8613 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8614 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8616 if (r->config_file) {
8617 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8618 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8619 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8620 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8622 if (r->help_file) {
8623 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8624 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8625 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8626 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8628 if (r->monitor_name) {
8629 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8630 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8631 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8632 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8634 if (r->default_datatype) {
8635 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8636 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8637 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8638 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8640 if (r->dependent_files) {
8641 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8643 if (r->previous_names) {
8644 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8647 return NDR_ERR_SUCCESS;
8650 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8652 uint32_t _ptr_driver_name;
8653 TALLOC_CTX *_mem_save_driver_name_0;
8654 uint32_t _ptr_architecture;
8655 TALLOC_CTX *_mem_save_architecture_0;
8656 uint32_t _ptr_driver_path;
8657 TALLOC_CTX *_mem_save_driver_path_0;
8658 uint32_t _ptr_data_file;
8659 TALLOC_CTX *_mem_save_data_file_0;
8660 uint32_t _ptr_config_file;
8661 TALLOC_CTX *_mem_save_config_file_0;
8662 uint32_t _ptr_help_file;
8663 TALLOC_CTX *_mem_save_help_file_0;
8664 uint32_t _ptr_monitor_name;
8665 TALLOC_CTX *_mem_save_monitor_name_0;
8666 uint32_t _ptr_default_datatype;
8667 TALLOC_CTX *_mem_save_default_datatype_0;
8668 uint32_t _ptr_dependent_files;
8669 TALLOC_CTX *_mem_save_dependent_files_0;
8670 uint32_t _ptr_previous_names;
8671 TALLOC_CTX *_mem_save_previous_names_0;
8672 if (ndr_flags & NDR_SCALARS) {
8673 NDR_CHECK(ndr_pull_align(ndr, 5));
8674 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8675 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8676 if (_ptr_driver_name) {
8677 NDR_PULL_ALLOC(ndr, r->driver_name);
8678 } else {
8679 r->driver_name = NULL;
8681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8682 if (_ptr_architecture) {
8683 NDR_PULL_ALLOC(ndr, r->architecture);
8684 } else {
8685 r->architecture = NULL;
8687 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8688 if (_ptr_driver_path) {
8689 NDR_PULL_ALLOC(ndr, r->driver_path);
8690 } else {
8691 r->driver_path = NULL;
8693 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8694 if (_ptr_data_file) {
8695 NDR_PULL_ALLOC(ndr, r->data_file);
8696 } else {
8697 r->data_file = NULL;
8699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8700 if (_ptr_config_file) {
8701 NDR_PULL_ALLOC(ndr, r->config_file);
8702 } else {
8703 r->config_file = NULL;
8705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8706 if (_ptr_help_file) {
8707 NDR_PULL_ALLOC(ndr, r->help_file);
8708 } else {
8709 r->help_file = NULL;
8711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8712 if (_ptr_monitor_name) {
8713 NDR_PULL_ALLOC(ndr, r->monitor_name);
8714 } else {
8715 r->monitor_name = NULL;
8717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8718 if (_ptr_default_datatype) {
8719 NDR_PULL_ALLOC(ndr, r->default_datatype);
8720 } else {
8721 r->default_datatype = NULL;
8723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8724 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8725 if (_ptr_dependent_files) {
8726 NDR_PULL_ALLOC(ndr, r->dependent_files);
8727 } else {
8728 r->dependent_files = NULL;
8730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8732 if (_ptr_previous_names) {
8733 NDR_PULL_ALLOC(ndr, r->previous_names);
8734 } else {
8735 r->previous_names = NULL;
8737 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8739 if (ndr_flags & NDR_BUFFERS) {
8740 if (r->driver_name) {
8741 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8742 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8743 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8744 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8745 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8746 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));
8748 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8749 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8752 if (r->architecture) {
8753 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8754 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8755 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8756 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8757 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8758 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));
8760 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8761 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8764 if (r->driver_path) {
8765 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8766 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8767 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8768 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8769 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8770 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));
8772 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8773 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8774 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8776 if (r->data_file) {
8777 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8778 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8779 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8780 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8781 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8782 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));
8784 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8785 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8788 if (r->config_file) {
8789 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8790 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8791 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8792 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8793 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8794 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));
8796 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8797 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8800 if (r->help_file) {
8801 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8802 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8803 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8804 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8805 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8806 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));
8808 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8809 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8812 if (r->monitor_name) {
8813 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8814 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8815 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8816 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8817 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8818 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));
8820 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8821 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8824 if (r->default_datatype) {
8825 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8826 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8827 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8828 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8829 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8830 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));
8832 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8833 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8836 if (r->dependent_files) {
8837 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8838 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8839 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8842 if (r->previous_names) {
8843 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8844 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8845 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8849 return NDR_ERR_SUCCESS;
8852 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
8854 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
8855 ndr->depth++;
8856 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8857 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8858 ndr->depth++;
8859 if (r->driver_name) {
8860 ndr_print_string(ndr, "driver_name", r->driver_name);
8862 ndr->depth--;
8863 ndr_print_ptr(ndr, "architecture", r->architecture);
8864 ndr->depth++;
8865 if (r->architecture) {
8866 ndr_print_string(ndr, "architecture", r->architecture);
8868 ndr->depth--;
8869 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8870 ndr->depth++;
8871 if (r->driver_path) {
8872 ndr_print_string(ndr, "driver_path", r->driver_path);
8874 ndr->depth--;
8875 ndr_print_ptr(ndr, "data_file", r->data_file);
8876 ndr->depth++;
8877 if (r->data_file) {
8878 ndr_print_string(ndr, "data_file", r->data_file);
8880 ndr->depth--;
8881 ndr_print_ptr(ndr, "config_file", r->config_file);
8882 ndr->depth++;
8883 if (r->config_file) {
8884 ndr_print_string(ndr, "config_file", r->config_file);
8886 ndr->depth--;
8887 ndr_print_ptr(ndr, "help_file", r->help_file);
8888 ndr->depth++;
8889 if (r->help_file) {
8890 ndr_print_string(ndr, "help_file", r->help_file);
8892 ndr->depth--;
8893 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8894 ndr->depth++;
8895 if (r->monitor_name) {
8896 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8898 ndr->depth--;
8899 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8900 ndr->depth++;
8901 if (r->default_datatype) {
8902 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8904 ndr->depth--;
8905 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);
8906 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8907 ndr->depth++;
8908 if (r->dependent_files) {
8909 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8911 ndr->depth--;
8912 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);
8913 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8914 ndr->depth++;
8915 if (r->previous_names) {
8916 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8918 ndr->depth--;
8919 ndr->depth--;
8922 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
8924 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8925 return NDR_ERR_SUCCESS;
8928 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
8930 uint32_t v;
8931 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8932 *r = v;
8933 return NDR_ERR_SUCCESS;
8936 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
8938 ndr_print_uint32(ndr, name, r);
8939 ndr->depth++;
8940 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
8941 ndr->depth--;
8944 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
8946 if (ndr_flags & NDR_SCALARS) {
8947 NDR_CHECK(ndr_push_align(ndr, 8));
8948 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8949 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8950 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8951 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8952 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8953 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8954 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8955 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8956 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8957 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8958 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8960 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8961 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8962 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8963 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8964 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8965 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8966 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8967 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
8969 if (ndr_flags & NDR_BUFFERS) {
8970 if (r->driver_name) {
8971 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8972 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8973 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8974 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8976 if (r->architecture) {
8977 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8978 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8979 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8980 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8982 if (r->driver_path) {
8983 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8984 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8985 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8986 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8988 if (r->data_file) {
8989 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8990 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8991 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8992 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8994 if (r->config_file) {
8995 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8996 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8997 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8998 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9000 if (r->help_file) {
9001 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9002 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9003 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9004 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9006 if (r->monitor_name) {
9007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9008 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9009 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9010 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9012 if (r->default_datatype) {
9013 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9014 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9015 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9016 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9018 if (r->dependent_files) {
9019 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9021 if (r->previous_names) {
9022 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9024 if (r->manufacturer_name) {
9025 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9026 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9027 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9028 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9030 if (r->manufacturer_url) {
9031 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9032 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9033 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9034 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9036 if (r->hardware_id) {
9037 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9038 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9039 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9040 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9042 if (r->provider) {
9043 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9044 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9045 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9046 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9049 return NDR_ERR_SUCCESS;
9052 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
9054 uint32_t _ptr_driver_name;
9055 TALLOC_CTX *_mem_save_driver_name_0;
9056 uint32_t _ptr_architecture;
9057 TALLOC_CTX *_mem_save_architecture_0;
9058 uint32_t _ptr_driver_path;
9059 TALLOC_CTX *_mem_save_driver_path_0;
9060 uint32_t _ptr_data_file;
9061 TALLOC_CTX *_mem_save_data_file_0;
9062 uint32_t _ptr_config_file;
9063 TALLOC_CTX *_mem_save_config_file_0;
9064 uint32_t _ptr_help_file;
9065 TALLOC_CTX *_mem_save_help_file_0;
9066 uint32_t _ptr_monitor_name;
9067 TALLOC_CTX *_mem_save_monitor_name_0;
9068 uint32_t _ptr_default_datatype;
9069 TALLOC_CTX *_mem_save_default_datatype_0;
9070 uint32_t _ptr_dependent_files;
9071 TALLOC_CTX *_mem_save_dependent_files_0;
9072 uint32_t _ptr_previous_names;
9073 TALLOC_CTX *_mem_save_previous_names_0;
9074 uint32_t _ptr_manufacturer_name;
9075 TALLOC_CTX *_mem_save_manufacturer_name_0;
9076 uint32_t _ptr_manufacturer_url;
9077 TALLOC_CTX *_mem_save_manufacturer_url_0;
9078 uint32_t _ptr_hardware_id;
9079 TALLOC_CTX *_mem_save_hardware_id_0;
9080 uint32_t _ptr_provider;
9081 TALLOC_CTX *_mem_save_provider_0;
9082 if (ndr_flags & NDR_SCALARS) {
9083 NDR_CHECK(ndr_pull_align(ndr, 8));
9084 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9085 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9086 if (_ptr_driver_name) {
9087 NDR_PULL_ALLOC(ndr, r->driver_name);
9088 } else {
9089 r->driver_name = NULL;
9091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9092 if (_ptr_architecture) {
9093 NDR_PULL_ALLOC(ndr, r->architecture);
9094 } else {
9095 r->architecture = NULL;
9097 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9098 if (_ptr_driver_path) {
9099 NDR_PULL_ALLOC(ndr, r->driver_path);
9100 } else {
9101 r->driver_path = NULL;
9103 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9104 if (_ptr_data_file) {
9105 NDR_PULL_ALLOC(ndr, r->data_file);
9106 } else {
9107 r->data_file = NULL;
9109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9110 if (_ptr_config_file) {
9111 NDR_PULL_ALLOC(ndr, r->config_file);
9112 } else {
9113 r->config_file = NULL;
9115 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9116 if (_ptr_help_file) {
9117 NDR_PULL_ALLOC(ndr, r->help_file);
9118 } else {
9119 r->help_file = NULL;
9121 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9122 if (_ptr_monitor_name) {
9123 NDR_PULL_ALLOC(ndr, r->monitor_name);
9124 } else {
9125 r->monitor_name = NULL;
9127 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9128 if (_ptr_default_datatype) {
9129 NDR_PULL_ALLOC(ndr, r->default_datatype);
9130 } else {
9131 r->default_datatype = NULL;
9133 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9134 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9135 if (_ptr_dependent_files) {
9136 NDR_PULL_ALLOC(ndr, r->dependent_files);
9137 } else {
9138 r->dependent_files = NULL;
9140 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9142 if (_ptr_previous_names) {
9143 NDR_PULL_ALLOC(ndr, r->previous_names);
9144 } else {
9145 r->previous_names = NULL;
9147 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9148 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9149 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9150 if (_ptr_manufacturer_name) {
9151 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9152 } else {
9153 r->manufacturer_name = NULL;
9155 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9156 if (_ptr_manufacturer_url) {
9157 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9158 } else {
9159 r->manufacturer_url = NULL;
9161 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9162 if (_ptr_hardware_id) {
9163 NDR_PULL_ALLOC(ndr, r->hardware_id);
9164 } else {
9165 r->hardware_id = NULL;
9167 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9168 if (_ptr_provider) {
9169 NDR_PULL_ALLOC(ndr, r->provider);
9170 } else {
9171 r->provider = NULL;
9173 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9175 if (ndr_flags & NDR_BUFFERS) {
9176 if (r->driver_name) {
9177 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9178 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9179 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9180 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9181 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9182 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));
9184 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9185 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9188 if (r->architecture) {
9189 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9190 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9191 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9192 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9193 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9194 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));
9196 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9197 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9198 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9200 if (r->driver_path) {
9201 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9202 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9203 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9204 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9205 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9206 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));
9208 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9209 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9210 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9212 if (r->data_file) {
9213 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9214 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9215 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9216 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9217 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9218 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));
9220 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9221 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9222 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9224 if (r->config_file) {
9225 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9226 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9227 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9228 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9229 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9230 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));
9232 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9233 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9234 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9236 if (r->help_file) {
9237 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9238 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9239 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9240 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9241 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9242 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));
9244 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9245 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9248 if (r->monitor_name) {
9249 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9250 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9251 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9252 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9253 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9254 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));
9256 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9257 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9258 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9260 if (r->default_datatype) {
9261 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9262 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9263 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9264 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9265 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9266 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));
9268 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9269 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9272 if (r->dependent_files) {
9273 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9274 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9275 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9278 if (r->previous_names) {
9279 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9280 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9281 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9284 if (r->manufacturer_name) {
9285 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9286 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9287 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9288 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9289 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9290 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));
9292 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9293 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9296 if (r->manufacturer_url) {
9297 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9298 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9299 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9300 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9301 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9302 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));
9304 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9305 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9308 if (r->hardware_id) {
9309 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9310 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9311 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9312 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9313 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9314 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));
9316 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9317 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9320 if (r->provider) {
9321 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9322 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9323 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9324 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9325 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9326 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));
9328 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9329 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9333 return NDR_ERR_SUCCESS;
9336 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
9338 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
9339 ndr->depth++;
9340 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9341 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9342 ndr->depth++;
9343 if (r->driver_name) {
9344 ndr_print_string(ndr, "driver_name", r->driver_name);
9346 ndr->depth--;
9347 ndr_print_ptr(ndr, "architecture", r->architecture);
9348 ndr->depth++;
9349 if (r->architecture) {
9350 ndr_print_string(ndr, "architecture", r->architecture);
9352 ndr->depth--;
9353 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9354 ndr->depth++;
9355 if (r->driver_path) {
9356 ndr_print_string(ndr, "driver_path", r->driver_path);
9358 ndr->depth--;
9359 ndr_print_ptr(ndr, "data_file", r->data_file);
9360 ndr->depth++;
9361 if (r->data_file) {
9362 ndr_print_string(ndr, "data_file", r->data_file);
9364 ndr->depth--;
9365 ndr_print_ptr(ndr, "config_file", r->config_file);
9366 ndr->depth++;
9367 if (r->config_file) {
9368 ndr_print_string(ndr, "config_file", r->config_file);
9370 ndr->depth--;
9371 ndr_print_ptr(ndr, "help_file", r->help_file);
9372 ndr->depth++;
9373 if (r->help_file) {
9374 ndr_print_string(ndr, "help_file", r->help_file);
9376 ndr->depth--;
9377 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9378 ndr->depth++;
9379 if (r->monitor_name) {
9380 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9382 ndr->depth--;
9383 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9384 ndr->depth++;
9385 if (r->default_datatype) {
9386 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9388 ndr->depth--;
9389 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);
9390 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9391 ndr->depth++;
9392 if (r->dependent_files) {
9393 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9395 ndr->depth--;
9396 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);
9397 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9398 ndr->depth++;
9399 if (r->previous_names) {
9400 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9402 ndr->depth--;
9403 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9404 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9405 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9406 ndr->depth++;
9407 if (r->manufacturer_name) {
9408 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9410 ndr->depth--;
9411 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9412 ndr->depth++;
9413 if (r->manufacturer_url) {
9414 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9416 ndr->depth--;
9417 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9418 ndr->depth++;
9419 if (r->hardware_id) {
9420 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9422 ndr->depth--;
9423 ndr_print_ptr(ndr, "provider", r->provider);
9424 ndr->depth++;
9425 if (r->provider) {
9426 ndr_print_string(ndr, "provider", r->provider);
9428 ndr->depth--;
9429 ndr->depth--;
9432 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
9434 if (ndr_flags & NDR_SCALARS) {
9435 NDR_CHECK(ndr_push_align(ndr, 8));
9436 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9437 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9438 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9439 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9440 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9441 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9442 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9443 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9444 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9446 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9448 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9449 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9450 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9451 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9452 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9453 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9454 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9455 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
9456 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
9457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9458 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
9459 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
9460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9462 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
9463 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9464 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9465 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9467 if (ndr_flags & NDR_BUFFERS) {
9468 if (r->driver_name) {
9469 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9470 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9471 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9472 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9474 if (r->architecture) {
9475 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9476 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9477 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9478 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9480 if (r->driver_path) {
9481 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9482 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9483 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9484 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9486 if (r->data_file) {
9487 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9488 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9489 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9490 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9492 if (r->config_file) {
9493 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9494 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9495 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9496 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9498 if (r->help_file) {
9499 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9500 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9501 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9502 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9504 if (r->monitor_name) {
9505 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9506 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9507 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9508 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9510 if (r->default_datatype) {
9511 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9512 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9513 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9514 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9516 if (r->dependent_files) {
9517 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9519 if (r->previous_names) {
9520 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9522 if (r->manufacturer_name) {
9523 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9524 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9525 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9526 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9528 if (r->manufacturer_url) {
9529 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9530 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9531 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9532 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9534 if (r->hardware_id) {
9535 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9536 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9537 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9538 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9540 if (r->provider) {
9541 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9542 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9543 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9544 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9546 if (r->print_processor) {
9547 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9548 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9549 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9550 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9552 if (r->vendor_setup) {
9553 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9554 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9555 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9556 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9558 if (r->color_profiles) {
9559 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9561 if (r->inf_path) {
9562 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9563 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9564 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9565 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9567 if (r->core_driver_dependencies) {
9568 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9571 return NDR_ERR_SUCCESS;
9574 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
9576 uint32_t _ptr_driver_name;
9577 TALLOC_CTX *_mem_save_driver_name_0;
9578 uint32_t _ptr_architecture;
9579 TALLOC_CTX *_mem_save_architecture_0;
9580 uint32_t _ptr_driver_path;
9581 TALLOC_CTX *_mem_save_driver_path_0;
9582 uint32_t _ptr_data_file;
9583 TALLOC_CTX *_mem_save_data_file_0;
9584 uint32_t _ptr_config_file;
9585 TALLOC_CTX *_mem_save_config_file_0;
9586 uint32_t _ptr_help_file;
9587 TALLOC_CTX *_mem_save_help_file_0;
9588 uint32_t _ptr_monitor_name;
9589 TALLOC_CTX *_mem_save_monitor_name_0;
9590 uint32_t _ptr_default_datatype;
9591 TALLOC_CTX *_mem_save_default_datatype_0;
9592 uint32_t _ptr_dependent_files;
9593 TALLOC_CTX *_mem_save_dependent_files_0;
9594 uint32_t _ptr_previous_names;
9595 TALLOC_CTX *_mem_save_previous_names_0;
9596 uint32_t _ptr_manufacturer_name;
9597 TALLOC_CTX *_mem_save_manufacturer_name_0;
9598 uint32_t _ptr_manufacturer_url;
9599 TALLOC_CTX *_mem_save_manufacturer_url_0;
9600 uint32_t _ptr_hardware_id;
9601 TALLOC_CTX *_mem_save_hardware_id_0;
9602 uint32_t _ptr_provider;
9603 TALLOC_CTX *_mem_save_provider_0;
9604 uint32_t _ptr_print_processor;
9605 TALLOC_CTX *_mem_save_print_processor_0;
9606 uint32_t _ptr_vendor_setup;
9607 TALLOC_CTX *_mem_save_vendor_setup_0;
9608 uint32_t _ptr_color_profiles;
9609 TALLOC_CTX *_mem_save_color_profiles_0;
9610 uint32_t _ptr_inf_path;
9611 TALLOC_CTX *_mem_save_inf_path_0;
9612 uint32_t _ptr_core_driver_dependencies;
9613 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9614 if (ndr_flags & NDR_SCALARS) {
9615 NDR_CHECK(ndr_pull_align(ndr, 8));
9616 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9617 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9618 if (_ptr_driver_name) {
9619 NDR_PULL_ALLOC(ndr, r->driver_name);
9620 } else {
9621 r->driver_name = NULL;
9623 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9624 if (_ptr_architecture) {
9625 NDR_PULL_ALLOC(ndr, r->architecture);
9626 } else {
9627 r->architecture = NULL;
9629 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9630 if (_ptr_driver_path) {
9631 NDR_PULL_ALLOC(ndr, r->driver_path);
9632 } else {
9633 r->driver_path = NULL;
9635 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9636 if (_ptr_data_file) {
9637 NDR_PULL_ALLOC(ndr, r->data_file);
9638 } else {
9639 r->data_file = NULL;
9641 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9642 if (_ptr_config_file) {
9643 NDR_PULL_ALLOC(ndr, r->config_file);
9644 } else {
9645 r->config_file = NULL;
9647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9648 if (_ptr_help_file) {
9649 NDR_PULL_ALLOC(ndr, r->help_file);
9650 } else {
9651 r->help_file = NULL;
9653 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9654 if (_ptr_monitor_name) {
9655 NDR_PULL_ALLOC(ndr, r->monitor_name);
9656 } else {
9657 r->monitor_name = NULL;
9659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9660 if (_ptr_default_datatype) {
9661 NDR_PULL_ALLOC(ndr, r->default_datatype);
9662 } else {
9663 r->default_datatype = NULL;
9665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9666 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9667 if (_ptr_dependent_files) {
9668 NDR_PULL_ALLOC(ndr, r->dependent_files);
9669 } else {
9670 r->dependent_files = NULL;
9672 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9673 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9674 if (_ptr_previous_names) {
9675 NDR_PULL_ALLOC(ndr, r->previous_names);
9676 } else {
9677 r->previous_names = NULL;
9679 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9680 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9682 if (_ptr_manufacturer_name) {
9683 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9684 } else {
9685 r->manufacturer_name = NULL;
9687 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9688 if (_ptr_manufacturer_url) {
9689 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9690 } else {
9691 r->manufacturer_url = NULL;
9693 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9694 if (_ptr_hardware_id) {
9695 NDR_PULL_ALLOC(ndr, r->hardware_id);
9696 } else {
9697 r->hardware_id = NULL;
9699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9700 if (_ptr_provider) {
9701 NDR_PULL_ALLOC(ndr, r->provider);
9702 } else {
9703 r->provider = NULL;
9705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9706 if (_ptr_print_processor) {
9707 NDR_PULL_ALLOC(ndr, r->print_processor);
9708 } else {
9709 r->print_processor = NULL;
9711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9712 if (_ptr_vendor_setup) {
9713 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9714 } else {
9715 r->vendor_setup = NULL;
9717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9718 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9719 if (_ptr_color_profiles) {
9720 NDR_PULL_ALLOC(ndr, r->color_profiles);
9721 } else {
9722 r->color_profiles = NULL;
9724 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9725 if (_ptr_inf_path) {
9726 NDR_PULL_ALLOC(ndr, r->inf_path);
9727 } else {
9728 r->inf_path = NULL;
9730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9732 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9733 if (_ptr_core_driver_dependencies) {
9734 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9735 } else {
9736 r->core_driver_dependencies = NULL;
9738 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9739 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9740 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9742 if (ndr_flags & NDR_BUFFERS) {
9743 if (r->driver_name) {
9744 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9745 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9746 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9747 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9748 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9749 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));
9751 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9752 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9755 if (r->architecture) {
9756 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9757 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9758 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9759 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9760 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9761 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));
9763 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9764 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9765 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9767 if (r->driver_path) {
9768 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9769 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9770 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9771 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9772 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9773 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));
9775 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9776 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9777 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9779 if (r->data_file) {
9780 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9781 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9782 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9783 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9784 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9785 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));
9787 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9788 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9789 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9791 if (r->config_file) {
9792 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9793 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9794 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9795 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9796 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9797 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));
9799 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9800 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9801 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9803 if (r->help_file) {
9804 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9805 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9806 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9807 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9808 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9809 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));
9811 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9812 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9815 if (r->monitor_name) {
9816 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9817 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9818 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9819 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9820 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9821 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));
9823 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9824 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9825 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9827 if (r->default_datatype) {
9828 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9829 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9830 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9831 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9832 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9833 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));
9835 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9836 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9839 if (r->dependent_files) {
9840 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9841 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9842 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9845 if (r->previous_names) {
9846 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9847 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9848 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9851 if (r->manufacturer_name) {
9852 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9853 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9854 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9855 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9856 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9857 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));
9859 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9860 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9863 if (r->manufacturer_url) {
9864 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9865 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9866 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9867 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9868 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9869 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));
9871 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9872 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9875 if (r->hardware_id) {
9876 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9877 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9878 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9879 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9880 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9881 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));
9883 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9884 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9887 if (r->provider) {
9888 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9889 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9890 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9891 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9892 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9893 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));
9895 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9896 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9899 if (r->print_processor) {
9900 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
9901 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
9902 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
9903 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
9904 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
9905 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));
9907 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
9908 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
9909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
9911 if (r->vendor_setup) {
9912 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
9913 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
9914 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
9915 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
9916 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
9917 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));
9919 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
9920 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
9921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
9923 if (r->color_profiles) {
9924 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
9925 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
9926 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
9929 if (r->inf_path) {
9930 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9931 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
9932 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
9933 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
9934 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
9935 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));
9937 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
9938 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
9939 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
9941 if (r->core_driver_dependencies) {
9942 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
9943 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
9944 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
9948 return NDR_ERR_SUCCESS;
9951 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
9953 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
9954 ndr->depth++;
9955 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9956 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9957 ndr->depth++;
9958 if (r->driver_name) {
9959 ndr_print_string(ndr, "driver_name", r->driver_name);
9961 ndr->depth--;
9962 ndr_print_ptr(ndr, "architecture", r->architecture);
9963 ndr->depth++;
9964 if (r->architecture) {
9965 ndr_print_string(ndr, "architecture", r->architecture);
9967 ndr->depth--;
9968 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9969 ndr->depth++;
9970 if (r->driver_path) {
9971 ndr_print_string(ndr, "driver_path", r->driver_path);
9973 ndr->depth--;
9974 ndr_print_ptr(ndr, "data_file", r->data_file);
9975 ndr->depth++;
9976 if (r->data_file) {
9977 ndr_print_string(ndr, "data_file", r->data_file);
9979 ndr->depth--;
9980 ndr_print_ptr(ndr, "config_file", r->config_file);
9981 ndr->depth++;
9982 if (r->config_file) {
9983 ndr_print_string(ndr, "config_file", r->config_file);
9985 ndr->depth--;
9986 ndr_print_ptr(ndr, "help_file", r->help_file);
9987 ndr->depth++;
9988 if (r->help_file) {
9989 ndr_print_string(ndr, "help_file", r->help_file);
9991 ndr->depth--;
9992 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9993 ndr->depth++;
9994 if (r->monitor_name) {
9995 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9997 ndr->depth--;
9998 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9999 ndr->depth++;
10000 if (r->default_datatype) {
10001 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10003 ndr->depth--;
10004 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);
10005 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10006 ndr->depth++;
10007 if (r->dependent_files) {
10008 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10010 ndr->depth--;
10011 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);
10012 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10013 ndr->depth++;
10014 if (r->previous_names) {
10015 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10017 ndr->depth--;
10018 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10019 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10020 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10021 ndr->depth++;
10022 if (r->manufacturer_name) {
10023 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10025 ndr->depth--;
10026 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10027 ndr->depth++;
10028 if (r->manufacturer_url) {
10029 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10031 ndr->depth--;
10032 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10033 ndr->depth++;
10034 if (r->hardware_id) {
10035 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10037 ndr->depth--;
10038 ndr_print_ptr(ndr, "provider", r->provider);
10039 ndr->depth++;
10040 if (r->provider) {
10041 ndr_print_string(ndr, "provider", r->provider);
10043 ndr->depth--;
10044 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10045 ndr->depth++;
10046 if (r->print_processor) {
10047 ndr_print_string(ndr, "print_processor", r->print_processor);
10049 ndr->depth--;
10050 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10051 ndr->depth++;
10052 if (r->vendor_setup) {
10053 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10055 ndr->depth--;
10056 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);
10057 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10058 ndr->depth++;
10059 if (r->color_profiles) {
10060 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
10062 ndr->depth--;
10063 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10064 ndr->depth++;
10065 if (r->inf_path) {
10066 ndr_print_string(ndr, "inf_path", r->inf_path);
10068 ndr->depth--;
10069 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10070 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);
10071 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10072 ndr->depth++;
10073 if (r->core_driver_dependencies) {
10074 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10076 ndr->depth--;
10077 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10078 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10079 ndr->depth--;
10082 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
10084 if (ndr_flags & NDR_SCALARS) {
10085 int level = ndr_push_get_switch_value(ndr, r);
10086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10087 NDR_CHECK(ndr_push_union_align(ndr, 5));
10088 switch (level) {
10089 case 1: {
10090 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
10091 break; }
10093 case 2: {
10094 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
10095 break; }
10097 case 3: {
10098 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
10099 break; }
10101 case 4: {
10102 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
10103 break; }
10105 case 6: {
10106 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
10107 break; }
10109 case 8: {
10110 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
10111 break; }
10113 default:
10114 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10117 if (ndr_flags & NDR_BUFFERS) {
10118 int level = ndr_push_get_switch_value(ndr, r);
10119 switch (level) {
10120 case 1:
10121 if (r->info1) {
10122 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10124 break;
10126 case 2:
10127 if (r->info2) {
10128 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10130 break;
10132 case 3:
10133 if (r->info3) {
10134 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10136 break;
10138 case 4:
10139 if (r->info4) {
10140 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10142 break;
10144 case 6:
10145 if (r->info6) {
10146 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10148 break;
10150 case 8:
10151 if (r->info8) {
10152 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10154 break;
10156 default:
10157 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10160 return NDR_ERR_SUCCESS;
10163 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
10165 int level;
10166 uint32_t _level;
10167 TALLOC_CTX *_mem_save_info1_0;
10168 TALLOC_CTX *_mem_save_info2_0;
10169 TALLOC_CTX *_mem_save_info3_0;
10170 TALLOC_CTX *_mem_save_info4_0;
10171 TALLOC_CTX *_mem_save_info6_0;
10172 TALLOC_CTX *_mem_save_info8_0;
10173 level = ndr_pull_get_switch_value(ndr, r);
10174 if (ndr_flags & NDR_SCALARS) {
10175 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10176 if (_level != level) {
10177 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10179 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10180 switch (level) {
10181 case 1: {
10182 uint32_t _ptr_info1;
10183 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
10184 if (_ptr_info1) {
10185 NDR_PULL_ALLOC(ndr, r->info1);
10186 } else {
10187 r->info1 = NULL;
10189 break; }
10191 case 2: {
10192 uint32_t _ptr_info2;
10193 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
10194 if (_ptr_info2) {
10195 NDR_PULL_ALLOC(ndr, r->info2);
10196 } else {
10197 r->info2 = NULL;
10199 break; }
10201 case 3: {
10202 uint32_t _ptr_info3;
10203 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
10204 if (_ptr_info3) {
10205 NDR_PULL_ALLOC(ndr, r->info3);
10206 } else {
10207 r->info3 = NULL;
10209 break; }
10211 case 4: {
10212 uint32_t _ptr_info4;
10213 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
10214 if (_ptr_info4) {
10215 NDR_PULL_ALLOC(ndr, r->info4);
10216 } else {
10217 r->info4 = NULL;
10219 break; }
10221 case 6: {
10222 uint32_t _ptr_info6;
10223 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
10224 if (_ptr_info6) {
10225 NDR_PULL_ALLOC(ndr, r->info6);
10226 } else {
10227 r->info6 = NULL;
10229 break; }
10231 case 8: {
10232 uint32_t _ptr_info8;
10233 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
10234 if (_ptr_info8) {
10235 NDR_PULL_ALLOC(ndr, r->info8);
10236 } else {
10237 r->info8 = NULL;
10239 break; }
10241 default:
10242 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10245 if (ndr_flags & NDR_BUFFERS) {
10246 switch (level) {
10247 case 1:
10248 if (r->info1) {
10249 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10250 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
10251 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
10254 break;
10256 case 2:
10257 if (r->info2) {
10258 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
10259 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
10260 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10261 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
10263 break;
10265 case 3:
10266 if (r->info3) {
10267 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
10268 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
10269 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
10272 break;
10274 case 4:
10275 if (r->info4) {
10276 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
10277 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
10278 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
10281 break;
10283 case 6:
10284 if (r->info6) {
10285 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
10286 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
10287 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
10290 break;
10292 case 8:
10293 if (r->info8) {
10294 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
10295 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
10296 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
10299 break;
10301 default:
10302 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10305 return NDR_ERR_SUCCESS;
10308 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
10310 int level;
10311 level = ndr_print_get_switch_value(ndr, r);
10312 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
10313 switch (level) {
10314 case 1:
10315 ndr_print_ptr(ndr, "info1", r->info1);
10316 ndr->depth++;
10317 if (r->info1) {
10318 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
10320 ndr->depth--;
10321 break;
10323 case 2:
10324 ndr_print_ptr(ndr, "info2", r->info2);
10325 ndr->depth++;
10326 if (r->info2) {
10327 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
10329 ndr->depth--;
10330 break;
10332 case 3:
10333 ndr_print_ptr(ndr, "info3", r->info3);
10334 ndr->depth++;
10335 if (r->info3) {
10336 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
10338 ndr->depth--;
10339 break;
10341 case 4:
10342 ndr_print_ptr(ndr, "info4", r->info4);
10343 ndr->depth++;
10344 if (r->info4) {
10345 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
10347 ndr->depth--;
10348 break;
10350 case 6:
10351 ndr_print_ptr(ndr, "info6", r->info6);
10352 ndr->depth++;
10353 if (r->info6) {
10354 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
10356 ndr->depth--;
10357 break;
10359 case 8:
10360 ndr_print_ptr(ndr, "info8", r->info8);
10361 ndr->depth++;
10362 if (r->info8) {
10363 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
10365 ndr->depth--;
10366 break;
10368 default:
10369 ndr_print_bad_level(ndr, name, level);
10373 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
10375 if (ndr_flags & NDR_SCALARS) {
10376 NDR_CHECK(ndr_push_align(ndr, 5));
10377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
10378 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
10379 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10380 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10382 if (ndr_flags & NDR_BUFFERS) {
10383 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10385 return NDR_ERR_SUCCESS;
10388 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
10390 if (ndr_flags & NDR_SCALARS) {
10391 NDR_CHECK(ndr_pull_align(ndr, 5));
10392 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
10393 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
10394 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10395 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10397 if (ndr_flags & NDR_BUFFERS) {
10398 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10400 return NDR_ERR_SUCCESS;
10403 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
10405 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
10406 ndr->depth++;
10407 ndr_print_uint32(ndr, "level", r->level);
10408 ndr_print_set_switch_value(ndr, &r->info, r->level);
10409 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
10410 ndr->depth--;
10413 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
10415 if (ndr_flags & NDR_SCALARS) {
10416 NDR_CHECK(ndr_push_align(ndr, 5));
10418 uint32_t _flags_save_string = ndr->flags;
10419 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10420 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10421 ndr->flags = _flags_save_string;
10423 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10425 if (ndr_flags & NDR_BUFFERS) {
10427 uint32_t _flags_save_string = ndr->flags;
10428 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10429 if (r->driver_name) {
10430 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10431 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10433 ndr->flags = _flags_save_string;
10436 return NDR_ERR_SUCCESS;
10439 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
10441 uint32_t _ptr_driver_name;
10442 TALLOC_CTX *_mem_save_driver_name_0;
10443 if (ndr_flags & NDR_SCALARS) {
10444 NDR_CHECK(ndr_pull_align(ndr, 5));
10446 uint32_t _flags_save_string = ndr->flags;
10447 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10448 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10449 if (_ptr_driver_name) {
10450 NDR_PULL_ALLOC(ndr, r->driver_name);
10451 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10452 } else {
10453 r->driver_name = NULL;
10455 ndr->flags = _flags_save_string;
10457 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10459 if (ndr_flags & NDR_BUFFERS) {
10461 uint32_t _flags_save_string = ndr->flags;
10462 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10463 if (r->driver_name) {
10464 uint32_t _relative_save_offset;
10465 _relative_save_offset = ndr->offset;
10466 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10467 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10468 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10469 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10470 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10471 ndr->offset = _relative_save_offset;
10473 ndr->flags = _flags_save_string;
10476 return NDR_ERR_SUCCESS;
10479 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
10481 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
10482 ndr->depth++;
10483 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10484 ndr->depth++;
10485 if (r->driver_name) {
10486 ndr_print_string(ndr, "driver_name", r->driver_name);
10488 ndr->depth--;
10489 ndr->depth--;
10492 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10494 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
10497 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
10499 if (ndr_flags & NDR_SCALARS) {
10500 NDR_CHECK(ndr_push_align(ndr, 5));
10501 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10503 uint32_t _flags_save_string = ndr->flags;
10504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10505 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10506 ndr->flags = _flags_save_string;
10509 uint32_t _flags_save_string = ndr->flags;
10510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10511 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10512 ndr->flags = _flags_save_string;
10515 uint32_t _flags_save_string = ndr->flags;
10516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10517 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10518 ndr->flags = _flags_save_string;
10521 uint32_t _flags_save_string = ndr->flags;
10522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10523 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10524 ndr->flags = _flags_save_string;
10527 uint32_t _flags_save_string = ndr->flags;
10528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10529 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10530 ndr->flags = _flags_save_string;
10532 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10534 if (ndr_flags & NDR_BUFFERS) {
10536 uint32_t _flags_save_string = ndr->flags;
10537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10538 if (r->driver_name) {
10539 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10540 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10542 ndr->flags = _flags_save_string;
10545 uint32_t _flags_save_string = ndr->flags;
10546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10547 if (r->architecture) {
10548 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10549 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10551 ndr->flags = _flags_save_string;
10554 uint32_t _flags_save_string = ndr->flags;
10555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10556 if (r->driver_path) {
10557 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10558 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10560 ndr->flags = _flags_save_string;
10563 uint32_t _flags_save_string = ndr->flags;
10564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10565 if (r->data_file) {
10566 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10567 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10569 ndr->flags = _flags_save_string;
10572 uint32_t _flags_save_string = ndr->flags;
10573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10574 if (r->config_file) {
10575 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10576 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10578 ndr->flags = _flags_save_string;
10581 return NDR_ERR_SUCCESS;
10584 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
10586 uint32_t _ptr_driver_name;
10587 TALLOC_CTX *_mem_save_driver_name_0;
10588 uint32_t _ptr_architecture;
10589 TALLOC_CTX *_mem_save_architecture_0;
10590 uint32_t _ptr_driver_path;
10591 TALLOC_CTX *_mem_save_driver_path_0;
10592 uint32_t _ptr_data_file;
10593 TALLOC_CTX *_mem_save_data_file_0;
10594 uint32_t _ptr_config_file;
10595 TALLOC_CTX *_mem_save_config_file_0;
10596 if (ndr_flags & NDR_SCALARS) {
10597 NDR_CHECK(ndr_pull_align(ndr, 5));
10598 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10600 uint32_t _flags_save_string = ndr->flags;
10601 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10602 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10603 if (_ptr_driver_name) {
10604 NDR_PULL_ALLOC(ndr, r->driver_name);
10605 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10606 } else {
10607 r->driver_name = NULL;
10609 ndr->flags = _flags_save_string;
10612 uint32_t _flags_save_string = ndr->flags;
10613 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10614 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10615 if (_ptr_architecture) {
10616 NDR_PULL_ALLOC(ndr, r->architecture);
10617 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10618 } else {
10619 r->architecture = NULL;
10621 ndr->flags = _flags_save_string;
10624 uint32_t _flags_save_string = ndr->flags;
10625 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10626 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10627 if (_ptr_driver_path) {
10628 NDR_PULL_ALLOC(ndr, r->driver_path);
10629 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10630 } else {
10631 r->driver_path = NULL;
10633 ndr->flags = _flags_save_string;
10636 uint32_t _flags_save_string = ndr->flags;
10637 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10638 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10639 if (_ptr_data_file) {
10640 NDR_PULL_ALLOC(ndr, r->data_file);
10641 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10642 } else {
10643 r->data_file = NULL;
10645 ndr->flags = _flags_save_string;
10648 uint32_t _flags_save_string = ndr->flags;
10649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10650 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10651 if (_ptr_config_file) {
10652 NDR_PULL_ALLOC(ndr, r->config_file);
10653 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10654 } else {
10655 r->config_file = NULL;
10657 ndr->flags = _flags_save_string;
10659 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10661 if (ndr_flags & NDR_BUFFERS) {
10663 uint32_t _flags_save_string = ndr->flags;
10664 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10665 if (r->driver_name) {
10666 uint32_t _relative_save_offset;
10667 _relative_save_offset = ndr->offset;
10668 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10669 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10670 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10671 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10673 ndr->offset = _relative_save_offset;
10675 ndr->flags = _flags_save_string;
10678 uint32_t _flags_save_string = ndr->flags;
10679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10680 if (r->architecture) {
10681 uint32_t _relative_save_offset;
10682 _relative_save_offset = ndr->offset;
10683 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10684 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10685 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10686 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10688 ndr->offset = _relative_save_offset;
10690 ndr->flags = _flags_save_string;
10693 uint32_t _flags_save_string = ndr->flags;
10694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10695 if (r->driver_path) {
10696 uint32_t _relative_save_offset;
10697 _relative_save_offset = ndr->offset;
10698 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10699 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10700 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10701 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10703 ndr->offset = _relative_save_offset;
10705 ndr->flags = _flags_save_string;
10708 uint32_t _flags_save_string = ndr->flags;
10709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10710 if (r->data_file) {
10711 uint32_t _relative_save_offset;
10712 _relative_save_offset = ndr->offset;
10713 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10714 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10715 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10716 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10718 ndr->offset = _relative_save_offset;
10720 ndr->flags = _flags_save_string;
10723 uint32_t _flags_save_string = ndr->flags;
10724 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10725 if (r->config_file) {
10726 uint32_t _relative_save_offset;
10727 _relative_save_offset = ndr->offset;
10728 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10729 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10730 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10731 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10733 ndr->offset = _relative_save_offset;
10735 ndr->flags = _flags_save_string;
10738 return NDR_ERR_SUCCESS;
10741 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10743 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10744 ndr->depth++;
10745 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10746 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10747 ndr->depth++;
10748 if (r->driver_name) {
10749 ndr_print_string(ndr, "driver_name", r->driver_name);
10751 ndr->depth--;
10752 ndr_print_ptr(ndr, "architecture", r->architecture);
10753 ndr->depth++;
10754 if (r->architecture) {
10755 ndr_print_string(ndr, "architecture", r->architecture);
10757 ndr->depth--;
10758 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10759 ndr->depth++;
10760 if (r->driver_path) {
10761 ndr_print_string(ndr, "driver_path", r->driver_path);
10763 ndr->depth--;
10764 ndr_print_ptr(ndr, "data_file", r->data_file);
10765 ndr->depth++;
10766 if (r->data_file) {
10767 ndr_print_string(ndr, "data_file", r->data_file);
10769 ndr->depth--;
10770 ndr_print_ptr(ndr, "config_file", r->config_file);
10771 ndr->depth++;
10772 if (r->config_file) {
10773 ndr_print_string(ndr, "config_file", r->config_file);
10775 ndr->depth--;
10776 ndr->depth--;
10779 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10781 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10784 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10786 if (ndr_flags & NDR_SCALARS) {
10787 NDR_CHECK(ndr_push_align(ndr, 5));
10788 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10790 uint32_t _flags_save_string = ndr->flags;
10791 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10792 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10793 ndr->flags = _flags_save_string;
10796 uint32_t _flags_save_string = ndr->flags;
10797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10798 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10799 ndr->flags = _flags_save_string;
10802 uint32_t _flags_save_string = ndr->flags;
10803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10804 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10805 ndr->flags = _flags_save_string;
10808 uint32_t _flags_save_string = ndr->flags;
10809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10810 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10811 ndr->flags = _flags_save_string;
10814 uint32_t _flags_save_string = ndr->flags;
10815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10816 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10817 ndr->flags = _flags_save_string;
10820 uint32_t _flags_save_string = ndr->flags;
10821 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10822 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10823 ndr->flags = _flags_save_string;
10826 uint32_t _flags_save_string_array = ndr->flags;
10827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10828 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10829 ndr->flags = _flags_save_string_array;
10832 uint32_t _flags_save_string = ndr->flags;
10833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10834 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10835 ndr->flags = _flags_save_string;
10838 uint32_t _flags_save_string = ndr->flags;
10839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10840 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10841 ndr->flags = _flags_save_string;
10843 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10845 if (ndr_flags & NDR_BUFFERS) {
10847 uint32_t _flags_save_string = ndr->flags;
10848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10849 if (r->driver_name) {
10850 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10851 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10853 ndr->flags = _flags_save_string;
10856 uint32_t _flags_save_string = ndr->flags;
10857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10858 if (r->architecture) {
10859 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10860 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10862 ndr->flags = _flags_save_string;
10865 uint32_t _flags_save_string = ndr->flags;
10866 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10867 if (r->driver_path) {
10868 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10869 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10871 ndr->flags = _flags_save_string;
10874 uint32_t _flags_save_string = ndr->flags;
10875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10876 if (r->data_file) {
10877 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10878 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10880 ndr->flags = _flags_save_string;
10883 uint32_t _flags_save_string = ndr->flags;
10884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10885 if (r->config_file) {
10886 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10887 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10889 ndr->flags = _flags_save_string;
10892 uint32_t _flags_save_string = ndr->flags;
10893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10894 if (r->help_file) {
10895 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
10896 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10898 ndr->flags = _flags_save_string;
10901 uint32_t _flags_save_string_array = ndr->flags;
10902 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10903 if (r->dependent_files) {
10904 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
10905 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10907 ndr->flags = _flags_save_string_array;
10910 uint32_t _flags_save_string = ndr->flags;
10911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10912 if (r->monitor_name) {
10913 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10914 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10916 ndr->flags = _flags_save_string;
10919 uint32_t _flags_save_string = ndr->flags;
10920 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10921 if (r->default_datatype) {
10922 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
10923 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10925 ndr->flags = _flags_save_string;
10928 return NDR_ERR_SUCCESS;
10931 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
10933 uint32_t _ptr_driver_name;
10934 TALLOC_CTX *_mem_save_driver_name_0;
10935 uint32_t _ptr_architecture;
10936 TALLOC_CTX *_mem_save_architecture_0;
10937 uint32_t _ptr_driver_path;
10938 TALLOC_CTX *_mem_save_driver_path_0;
10939 uint32_t _ptr_data_file;
10940 TALLOC_CTX *_mem_save_data_file_0;
10941 uint32_t _ptr_config_file;
10942 TALLOC_CTX *_mem_save_config_file_0;
10943 uint32_t _ptr_help_file;
10944 TALLOC_CTX *_mem_save_help_file_0;
10945 uint32_t _ptr_dependent_files;
10946 TALLOC_CTX *_mem_save_dependent_files_0;
10947 uint32_t _ptr_monitor_name;
10948 TALLOC_CTX *_mem_save_monitor_name_0;
10949 uint32_t _ptr_default_datatype;
10950 TALLOC_CTX *_mem_save_default_datatype_0;
10951 if (ndr_flags & NDR_SCALARS) {
10952 NDR_CHECK(ndr_pull_align(ndr, 5));
10953 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10955 uint32_t _flags_save_string = ndr->flags;
10956 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10957 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10958 if (_ptr_driver_name) {
10959 NDR_PULL_ALLOC(ndr, r->driver_name);
10960 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10961 } else {
10962 r->driver_name = NULL;
10964 ndr->flags = _flags_save_string;
10967 uint32_t _flags_save_string = ndr->flags;
10968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10969 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10970 if (_ptr_architecture) {
10971 NDR_PULL_ALLOC(ndr, r->architecture);
10972 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10973 } else {
10974 r->architecture = NULL;
10976 ndr->flags = _flags_save_string;
10979 uint32_t _flags_save_string = ndr->flags;
10980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10981 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10982 if (_ptr_driver_path) {
10983 NDR_PULL_ALLOC(ndr, r->driver_path);
10984 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10985 } else {
10986 r->driver_path = NULL;
10988 ndr->flags = _flags_save_string;
10991 uint32_t _flags_save_string = ndr->flags;
10992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10993 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10994 if (_ptr_data_file) {
10995 NDR_PULL_ALLOC(ndr, r->data_file);
10996 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10997 } else {
10998 r->data_file = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11006 if (_ptr_config_file) {
11007 NDR_PULL_ALLOC(ndr, r->config_file);
11008 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11009 } else {
11010 r->config_file = NULL;
11012 ndr->flags = _flags_save_string;
11015 uint32_t _flags_save_string = ndr->flags;
11016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11017 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11018 if (_ptr_help_file) {
11019 NDR_PULL_ALLOC(ndr, r->help_file);
11020 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11021 } else {
11022 r->help_file = NULL;
11024 ndr->flags = _flags_save_string;
11027 uint32_t _flags_save_string_array = ndr->flags;
11028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11029 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11030 if (_ptr_dependent_files) {
11031 NDR_PULL_ALLOC(ndr, r->dependent_files);
11032 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11033 } else {
11034 r->dependent_files = NULL;
11036 ndr->flags = _flags_save_string_array;
11039 uint32_t _flags_save_string = ndr->flags;
11040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11041 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11042 if (_ptr_monitor_name) {
11043 NDR_PULL_ALLOC(ndr, r->monitor_name);
11044 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11045 } else {
11046 r->monitor_name = NULL;
11048 ndr->flags = _flags_save_string;
11051 uint32_t _flags_save_string = ndr->flags;
11052 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11053 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11054 if (_ptr_default_datatype) {
11055 NDR_PULL_ALLOC(ndr, r->default_datatype);
11056 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11057 } else {
11058 r->default_datatype = NULL;
11060 ndr->flags = _flags_save_string;
11062 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11064 if (ndr_flags & NDR_BUFFERS) {
11066 uint32_t _flags_save_string = ndr->flags;
11067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11068 if (r->driver_name) {
11069 uint32_t _relative_save_offset;
11070 _relative_save_offset = ndr->offset;
11071 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11072 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11073 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11074 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11076 ndr->offset = _relative_save_offset;
11078 ndr->flags = _flags_save_string;
11081 uint32_t _flags_save_string = ndr->flags;
11082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11083 if (r->architecture) {
11084 uint32_t _relative_save_offset;
11085 _relative_save_offset = ndr->offset;
11086 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11087 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11088 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11089 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11091 ndr->offset = _relative_save_offset;
11093 ndr->flags = _flags_save_string;
11096 uint32_t _flags_save_string = ndr->flags;
11097 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11098 if (r->driver_path) {
11099 uint32_t _relative_save_offset;
11100 _relative_save_offset = ndr->offset;
11101 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11102 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11103 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11104 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11105 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11106 ndr->offset = _relative_save_offset;
11108 ndr->flags = _flags_save_string;
11111 uint32_t _flags_save_string = ndr->flags;
11112 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11113 if (r->data_file) {
11114 uint32_t _relative_save_offset;
11115 _relative_save_offset = ndr->offset;
11116 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11117 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11118 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11119 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11121 ndr->offset = _relative_save_offset;
11123 ndr->flags = _flags_save_string;
11126 uint32_t _flags_save_string = ndr->flags;
11127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11128 if (r->config_file) {
11129 uint32_t _relative_save_offset;
11130 _relative_save_offset = ndr->offset;
11131 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11132 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11133 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11134 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11136 ndr->offset = _relative_save_offset;
11138 ndr->flags = _flags_save_string;
11141 uint32_t _flags_save_string = ndr->flags;
11142 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11143 if (r->help_file) {
11144 uint32_t _relative_save_offset;
11145 _relative_save_offset = ndr->offset;
11146 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11147 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11148 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11149 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11151 ndr->offset = _relative_save_offset;
11153 ndr->flags = _flags_save_string;
11156 uint32_t _flags_save_string_array = ndr->flags;
11157 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11158 if (r->dependent_files) {
11159 uint32_t _relative_save_offset;
11160 _relative_save_offset = ndr->offset;
11161 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11162 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11163 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11164 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11165 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11166 ndr->offset = _relative_save_offset;
11168 ndr->flags = _flags_save_string_array;
11171 uint32_t _flags_save_string = ndr->flags;
11172 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11173 if (r->monitor_name) {
11174 uint32_t _relative_save_offset;
11175 _relative_save_offset = ndr->offset;
11176 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11177 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11178 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11179 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11181 ndr->offset = _relative_save_offset;
11183 ndr->flags = _flags_save_string;
11186 uint32_t _flags_save_string = ndr->flags;
11187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11188 if (r->default_datatype) {
11189 uint32_t _relative_save_offset;
11190 _relative_save_offset = ndr->offset;
11191 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11192 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11193 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11194 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11196 ndr->offset = _relative_save_offset;
11198 ndr->flags = _flags_save_string;
11201 return NDR_ERR_SUCCESS;
11204 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
11206 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
11207 ndr->depth++;
11208 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11209 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11210 ndr->depth++;
11211 if (r->driver_name) {
11212 ndr_print_string(ndr, "driver_name", r->driver_name);
11214 ndr->depth--;
11215 ndr_print_ptr(ndr, "architecture", r->architecture);
11216 ndr->depth++;
11217 if (r->architecture) {
11218 ndr_print_string(ndr, "architecture", r->architecture);
11220 ndr->depth--;
11221 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11222 ndr->depth++;
11223 if (r->driver_path) {
11224 ndr_print_string(ndr, "driver_path", r->driver_path);
11226 ndr->depth--;
11227 ndr_print_ptr(ndr, "data_file", r->data_file);
11228 ndr->depth++;
11229 if (r->data_file) {
11230 ndr_print_string(ndr, "data_file", r->data_file);
11232 ndr->depth--;
11233 ndr_print_ptr(ndr, "config_file", r->config_file);
11234 ndr->depth++;
11235 if (r->config_file) {
11236 ndr_print_string(ndr, "config_file", r->config_file);
11238 ndr->depth--;
11239 ndr_print_ptr(ndr, "help_file", r->help_file);
11240 ndr->depth++;
11241 if (r->help_file) {
11242 ndr_print_string(ndr, "help_file", r->help_file);
11244 ndr->depth--;
11245 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11246 ndr->depth++;
11247 if (r->dependent_files) {
11248 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11250 ndr->depth--;
11251 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11252 ndr->depth++;
11253 if (r->monitor_name) {
11254 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11256 ndr->depth--;
11257 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11258 ndr->depth++;
11259 if (r->default_datatype) {
11260 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11262 ndr->depth--;
11263 ndr->depth--;
11266 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
11268 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
11271 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
11273 if (ndr_flags & NDR_SCALARS) {
11274 NDR_CHECK(ndr_push_align(ndr, 5));
11275 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11277 uint32_t _flags_save_string = ndr->flags;
11278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11279 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11280 ndr->flags = _flags_save_string;
11283 uint32_t _flags_save_string = ndr->flags;
11284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11285 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11286 ndr->flags = _flags_save_string;
11289 uint32_t _flags_save_string = ndr->flags;
11290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11291 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11292 ndr->flags = _flags_save_string;
11295 uint32_t _flags_save_string = ndr->flags;
11296 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11297 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11298 ndr->flags = _flags_save_string;
11301 uint32_t _flags_save_string = ndr->flags;
11302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11303 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11304 ndr->flags = _flags_save_string;
11307 uint32_t _flags_save_string = ndr->flags;
11308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11309 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11310 ndr->flags = _flags_save_string;
11313 uint32_t _flags_save_string_array = ndr->flags;
11314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11315 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11316 ndr->flags = _flags_save_string_array;
11319 uint32_t _flags_save_string = ndr->flags;
11320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11321 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11322 ndr->flags = _flags_save_string;
11325 uint32_t _flags_save_string = ndr->flags;
11326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11327 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11328 ndr->flags = _flags_save_string;
11331 uint32_t _flags_save_string_array = ndr->flags;
11332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11333 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11334 ndr->flags = _flags_save_string_array;
11336 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11338 if (ndr_flags & NDR_BUFFERS) {
11340 uint32_t _flags_save_string = ndr->flags;
11341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11342 if (r->driver_name) {
11343 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11344 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11346 ndr->flags = _flags_save_string;
11349 uint32_t _flags_save_string = ndr->flags;
11350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11351 if (r->architecture) {
11352 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11353 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11355 ndr->flags = _flags_save_string;
11358 uint32_t _flags_save_string = ndr->flags;
11359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11360 if (r->driver_path) {
11361 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11362 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11364 ndr->flags = _flags_save_string;
11367 uint32_t _flags_save_string = ndr->flags;
11368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11369 if (r->data_file) {
11370 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11371 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11373 ndr->flags = _flags_save_string;
11376 uint32_t _flags_save_string = ndr->flags;
11377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11378 if (r->config_file) {
11379 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11380 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11382 ndr->flags = _flags_save_string;
11385 uint32_t _flags_save_string = ndr->flags;
11386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11387 if (r->help_file) {
11388 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11389 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11391 ndr->flags = _flags_save_string;
11394 uint32_t _flags_save_string_array = ndr->flags;
11395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11396 if (r->dependent_files) {
11397 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11398 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11400 ndr->flags = _flags_save_string_array;
11403 uint32_t _flags_save_string = ndr->flags;
11404 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11405 if (r->monitor_name) {
11406 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11407 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11409 ndr->flags = _flags_save_string;
11412 uint32_t _flags_save_string = ndr->flags;
11413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11414 if (r->default_datatype) {
11415 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11416 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11418 ndr->flags = _flags_save_string;
11421 uint32_t _flags_save_string_array = ndr->flags;
11422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11423 if (r->previous_names) {
11424 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
11425 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11427 ndr->flags = _flags_save_string_array;
11430 return NDR_ERR_SUCCESS;
11433 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
11435 uint32_t _ptr_driver_name;
11436 TALLOC_CTX *_mem_save_driver_name_0;
11437 uint32_t _ptr_architecture;
11438 TALLOC_CTX *_mem_save_architecture_0;
11439 uint32_t _ptr_driver_path;
11440 TALLOC_CTX *_mem_save_driver_path_0;
11441 uint32_t _ptr_data_file;
11442 TALLOC_CTX *_mem_save_data_file_0;
11443 uint32_t _ptr_config_file;
11444 TALLOC_CTX *_mem_save_config_file_0;
11445 uint32_t _ptr_help_file;
11446 TALLOC_CTX *_mem_save_help_file_0;
11447 uint32_t _ptr_dependent_files;
11448 TALLOC_CTX *_mem_save_dependent_files_0;
11449 uint32_t _ptr_monitor_name;
11450 TALLOC_CTX *_mem_save_monitor_name_0;
11451 uint32_t _ptr_default_datatype;
11452 TALLOC_CTX *_mem_save_default_datatype_0;
11453 uint32_t _ptr_previous_names;
11454 TALLOC_CTX *_mem_save_previous_names_0;
11455 if (ndr_flags & NDR_SCALARS) {
11456 NDR_CHECK(ndr_pull_align(ndr, 5));
11457 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11459 uint32_t _flags_save_string = ndr->flags;
11460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11461 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11462 if (_ptr_driver_name) {
11463 NDR_PULL_ALLOC(ndr, r->driver_name);
11464 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11465 } else {
11466 r->driver_name = NULL;
11468 ndr->flags = _flags_save_string;
11471 uint32_t _flags_save_string = ndr->flags;
11472 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11473 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11474 if (_ptr_architecture) {
11475 NDR_PULL_ALLOC(ndr, r->architecture);
11476 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11477 } else {
11478 r->architecture = NULL;
11480 ndr->flags = _flags_save_string;
11483 uint32_t _flags_save_string = ndr->flags;
11484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11485 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11486 if (_ptr_driver_path) {
11487 NDR_PULL_ALLOC(ndr, r->driver_path);
11488 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11489 } else {
11490 r->driver_path = NULL;
11492 ndr->flags = _flags_save_string;
11495 uint32_t _flags_save_string = ndr->flags;
11496 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11497 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11498 if (_ptr_data_file) {
11499 NDR_PULL_ALLOC(ndr, r->data_file);
11500 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11501 } else {
11502 r->data_file = NULL;
11504 ndr->flags = _flags_save_string;
11507 uint32_t _flags_save_string = ndr->flags;
11508 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11509 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11510 if (_ptr_config_file) {
11511 NDR_PULL_ALLOC(ndr, r->config_file);
11512 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11513 } else {
11514 r->config_file = NULL;
11516 ndr->flags = _flags_save_string;
11519 uint32_t _flags_save_string = ndr->flags;
11520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11521 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11522 if (_ptr_help_file) {
11523 NDR_PULL_ALLOC(ndr, r->help_file);
11524 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11525 } else {
11526 r->help_file = NULL;
11528 ndr->flags = _flags_save_string;
11531 uint32_t _flags_save_string_array = ndr->flags;
11532 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11533 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11534 if (_ptr_dependent_files) {
11535 NDR_PULL_ALLOC(ndr, r->dependent_files);
11536 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11537 } else {
11538 r->dependent_files = NULL;
11540 ndr->flags = _flags_save_string_array;
11543 uint32_t _flags_save_string = ndr->flags;
11544 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11545 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11546 if (_ptr_monitor_name) {
11547 NDR_PULL_ALLOC(ndr, r->monitor_name);
11548 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11549 } else {
11550 r->monitor_name = NULL;
11552 ndr->flags = _flags_save_string;
11555 uint32_t _flags_save_string = ndr->flags;
11556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11558 if (_ptr_default_datatype) {
11559 NDR_PULL_ALLOC(ndr, r->default_datatype);
11560 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11561 } else {
11562 r->default_datatype = NULL;
11564 ndr->flags = _flags_save_string;
11567 uint32_t _flags_save_string_array = ndr->flags;
11568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11569 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11570 if (_ptr_previous_names) {
11571 NDR_PULL_ALLOC(ndr, r->previous_names);
11572 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11573 } else {
11574 r->previous_names = NULL;
11576 ndr->flags = _flags_save_string_array;
11578 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11580 if (ndr_flags & NDR_BUFFERS) {
11582 uint32_t _flags_save_string = ndr->flags;
11583 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11584 if (r->driver_name) {
11585 uint32_t _relative_save_offset;
11586 _relative_save_offset = ndr->offset;
11587 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11588 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11589 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11590 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11592 ndr->offset = _relative_save_offset;
11594 ndr->flags = _flags_save_string;
11597 uint32_t _flags_save_string = ndr->flags;
11598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11599 if (r->architecture) {
11600 uint32_t _relative_save_offset;
11601 _relative_save_offset = ndr->offset;
11602 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11603 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11604 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11605 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11606 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11607 ndr->offset = _relative_save_offset;
11609 ndr->flags = _flags_save_string;
11612 uint32_t _flags_save_string = ndr->flags;
11613 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11614 if (r->driver_path) {
11615 uint32_t _relative_save_offset;
11616 _relative_save_offset = ndr->offset;
11617 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11618 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11619 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11620 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11621 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11622 ndr->offset = _relative_save_offset;
11624 ndr->flags = _flags_save_string;
11627 uint32_t _flags_save_string = ndr->flags;
11628 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11629 if (r->data_file) {
11630 uint32_t _relative_save_offset;
11631 _relative_save_offset = ndr->offset;
11632 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11633 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11634 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11635 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11637 ndr->offset = _relative_save_offset;
11639 ndr->flags = _flags_save_string;
11642 uint32_t _flags_save_string = ndr->flags;
11643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11644 if (r->config_file) {
11645 uint32_t _relative_save_offset;
11646 _relative_save_offset = ndr->offset;
11647 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11648 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11649 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11650 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11652 ndr->offset = _relative_save_offset;
11654 ndr->flags = _flags_save_string;
11657 uint32_t _flags_save_string = ndr->flags;
11658 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11659 if (r->help_file) {
11660 uint32_t _relative_save_offset;
11661 _relative_save_offset = ndr->offset;
11662 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11663 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11664 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11665 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11667 ndr->offset = _relative_save_offset;
11669 ndr->flags = _flags_save_string;
11672 uint32_t _flags_save_string_array = ndr->flags;
11673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11674 if (r->dependent_files) {
11675 uint32_t _relative_save_offset;
11676 _relative_save_offset = ndr->offset;
11677 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11678 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11679 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11680 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11682 ndr->offset = _relative_save_offset;
11684 ndr->flags = _flags_save_string_array;
11687 uint32_t _flags_save_string = ndr->flags;
11688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11689 if (r->monitor_name) {
11690 uint32_t _relative_save_offset;
11691 _relative_save_offset = ndr->offset;
11692 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11693 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11694 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11695 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11697 ndr->offset = _relative_save_offset;
11699 ndr->flags = _flags_save_string;
11702 uint32_t _flags_save_string = ndr->flags;
11703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11704 if (r->default_datatype) {
11705 uint32_t _relative_save_offset;
11706 _relative_save_offset = ndr->offset;
11707 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11708 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11709 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11710 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11712 ndr->offset = _relative_save_offset;
11714 ndr->flags = _flags_save_string;
11717 uint32_t _flags_save_string_array = ndr->flags;
11718 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11719 if (r->previous_names) {
11720 uint32_t _relative_save_offset;
11721 _relative_save_offset = ndr->offset;
11722 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11723 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11724 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11725 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11726 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11727 ndr->offset = _relative_save_offset;
11729 ndr->flags = _flags_save_string_array;
11732 return NDR_ERR_SUCCESS;
11735 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11737 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11738 ndr->depth++;
11739 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11740 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11741 ndr->depth++;
11742 if (r->driver_name) {
11743 ndr_print_string(ndr, "driver_name", r->driver_name);
11745 ndr->depth--;
11746 ndr_print_ptr(ndr, "architecture", r->architecture);
11747 ndr->depth++;
11748 if (r->architecture) {
11749 ndr_print_string(ndr, "architecture", r->architecture);
11751 ndr->depth--;
11752 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11753 ndr->depth++;
11754 if (r->driver_path) {
11755 ndr_print_string(ndr, "driver_path", r->driver_path);
11757 ndr->depth--;
11758 ndr_print_ptr(ndr, "data_file", r->data_file);
11759 ndr->depth++;
11760 if (r->data_file) {
11761 ndr_print_string(ndr, "data_file", r->data_file);
11763 ndr->depth--;
11764 ndr_print_ptr(ndr, "config_file", r->config_file);
11765 ndr->depth++;
11766 if (r->config_file) {
11767 ndr_print_string(ndr, "config_file", r->config_file);
11769 ndr->depth--;
11770 ndr_print_ptr(ndr, "help_file", r->help_file);
11771 ndr->depth++;
11772 if (r->help_file) {
11773 ndr_print_string(ndr, "help_file", r->help_file);
11775 ndr->depth--;
11776 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11777 ndr->depth++;
11778 if (r->dependent_files) {
11779 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11781 ndr->depth--;
11782 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11783 ndr->depth++;
11784 if (r->monitor_name) {
11785 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11787 ndr->depth--;
11788 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11789 ndr->depth++;
11790 if (r->default_datatype) {
11791 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11793 ndr->depth--;
11794 ndr_print_ptr(ndr, "previous_names", r->previous_names);
11795 ndr->depth++;
11796 if (r->previous_names) {
11797 ndr_print_string_array(ndr, "previous_names", r->previous_names);
11799 ndr->depth--;
11800 ndr->depth--;
11803 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
11805 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
11808 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
11810 if (ndr_flags & NDR_SCALARS) {
11811 NDR_CHECK(ndr_push_align(ndr, 5));
11812 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11814 uint32_t _flags_save_string = ndr->flags;
11815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11816 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11817 ndr->flags = _flags_save_string;
11820 uint32_t _flags_save_string = ndr->flags;
11821 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11822 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11823 ndr->flags = _flags_save_string;
11826 uint32_t _flags_save_string = ndr->flags;
11827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11828 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11829 ndr->flags = _flags_save_string;
11832 uint32_t _flags_save_string = ndr->flags;
11833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11834 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11835 ndr->flags = _flags_save_string;
11838 uint32_t _flags_save_string = ndr->flags;
11839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11840 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11841 ndr->flags = _flags_save_string;
11843 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
11844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
11845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
11846 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11848 if (ndr_flags & NDR_BUFFERS) {
11850 uint32_t _flags_save_string = ndr->flags;
11851 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11852 if (r->driver_name) {
11853 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11854 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11856 ndr->flags = _flags_save_string;
11859 uint32_t _flags_save_string = ndr->flags;
11860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11861 if (r->architecture) {
11862 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11863 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11865 ndr->flags = _flags_save_string;
11868 uint32_t _flags_save_string = ndr->flags;
11869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11870 if (r->driver_path) {
11871 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11872 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11874 ndr->flags = _flags_save_string;
11877 uint32_t _flags_save_string = ndr->flags;
11878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11879 if (r->data_file) {
11880 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11881 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11883 ndr->flags = _flags_save_string;
11886 uint32_t _flags_save_string = ndr->flags;
11887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11888 if (r->config_file) {
11889 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11890 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11892 ndr->flags = _flags_save_string;
11895 return NDR_ERR_SUCCESS;
11898 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
11900 uint32_t _ptr_driver_name;
11901 TALLOC_CTX *_mem_save_driver_name_0;
11902 uint32_t _ptr_architecture;
11903 TALLOC_CTX *_mem_save_architecture_0;
11904 uint32_t _ptr_driver_path;
11905 TALLOC_CTX *_mem_save_driver_path_0;
11906 uint32_t _ptr_data_file;
11907 TALLOC_CTX *_mem_save_data_file_0;
11908 uint32_t _ptr_config_file;
11909 TALLOC_CTX *_mem_save_config_file_0;
11910 if (ndr_flags & NDR_SCALARS) {
11911 NDR_CHECK(ndr_pull_align(ndr, 5));
11912 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11914 uint32_t _flags_save_string = ndr->flags;
11915 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11916 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11917 if (_ptr_driver_name) {
11918 NDR_PULL_ALLOC(ndr, r->driver_name);
11919 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11920 } else {
11921 r->driver_name = NULL;
11923 ndr->flags = _flags_save_string;
11926 uint32_t _flags_save_string = ndr->flags;
11927 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11928 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11929 if (_ptr_architecture) {
11930 NDR_PULL_ALLOC(ndr, r->architecture);
11931 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11932 } else {
11933 r->architecture = NULL;
11935 ndr->flags = _flags_save_string;
11938 uint32_t _flags_save_string = ndr->flags;
11939 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11940 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11941 if (_ptr_driver_path) {
11942 NDR_PULL_ALLOC(ndr, r->driver_path);
11943 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11944 } else {
11945 r->driver_path = NULL;
11947 ndr->flags = _flags_save_string;
11950 uint32_t _flags_save_string = ndr->flags;
11951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11953 if (_ptr_data_file) {
11954 NDR_PULL_ALLOC(ndr, r->data_file);
11955 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11956 } else {
11957 r->data_file = NULL;
11959 ndr->flags = _flags_save_string;
11962 uint32_t _flags_save_string = ndr->flags;
11963 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11964 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11965 if (_ptr_config_file) {
11966 NDR_PULL_ALLOC(ndr, r->config_file);
11967 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11968 } else {
11969 r->config_file = NULL;
11971 ndr->flags = _flags_save_string;
11973 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
11974 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
11975 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
11976 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11978 if (ndr_flags & NDR_BUFFERS) {
11980 uint32_t _flags_save_string = ndr->flags;
11981 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11982 if (r->driver_name) {
11983 uint32_t _relative_save_offset;
11984 _relative_save_offset = ndr->offset;
11985 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11986 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11987 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11988 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11990 ndr->offset = _relative_save_offset;
11992 ndr->flags = _flags_save_string;
11995 uint32_t _flags_save_string = ndr->flags;
11996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11997 if (r->architecture) {
11998 uint32_t _relative_save_offset;
11999 _relative_save_offset = ndr->offset;
12000 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12001 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12002 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12003 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12005 ndr->offset = _relative_save_offset;
12007 ndr->flags = _flags_save_string;
12010 uint32_t _flags_save_string = ndr->flags;
12011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12012 if (r->driver_path) {
12013 uint32_t _relative_save_offset;
12014 _relative_save_offset = ndr->offset;
12015 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12016 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12017 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12018 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12020 ndr->offset = _relative_save_offset;
12022 ndr->flags = _flags_save_string;
12025 uint32_t _flags_save_string = ndr->flags;
12026 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12027 if (r->data_file) {
12028 uint32_t _relative_save_offset;
12029 _relative_save_offset = ndr->offset;
12030 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12031 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12032 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12033 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12035 ndr->offset = _relative_save_offset;
12037 ndr->flags = _flags_save_string;
12040 uint32_t _flags_save_string = ndr->flags;
12041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12042 if (r->config_file) {
12043 uint32_t _relative_save_offset;
12044 _relative_save_offset = ndr->offset;
12045 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12046 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12047 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12048 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12050 ndr->offset = _relative_save_offset;
12052 ndr->flags = _flags_save_string;
12055 return NDR_ERR_SUCCESS;
12058 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
12060 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
12061 ndr->depth++;
12062 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12063 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12064 ndr->depth++;
12065 if (r->driver_name) {
12066 ndr_print_string(ndr, "driver_name", r->driver_name);
12068 ndr->depth--;
12069 ndr_print_ptr(ndr, "architecture", r->architecture);
12070 ndr->depth++;
12071 if (r->architecture) {
12072 ndr_print_string(ndr, "architecture", r->architecture);
12074 ndr->depth--;
12075 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12076 ndr->depth++;
12077 if (r->driver_path) {
12078 ndr_print_string(ndr, "driver_path", r->driver_path);
12080 ndr->depth--;
12081 ndr_print_ptr(ndr, "data_file", r->data_file);
12082 ndr->depth++;
12083 if (r->data_file) {
12084 ndr_print_string(ndr, "data_file", r->data_file);
12086 ndr->depth--;
12087 ndr_print_ptr(ndr, "config_file", r->config_file);
12088 ndr->depth++;
12089 if (r->config_file) {
12090 ndr_print_string(ndr, "config_file", r->config_file);
12092 ndr->depth--;
12093 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
12094 ndr_print_uint32(ndr, "config_version", r->config_version);
12095 ndr_print_uint32(ndr, "driver_version", r->driver_version);
12096 ndr->depth--;
12099 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
12101 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
12104 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
12106 if (ndr_flags & NDR_SCALARS) {
12107 NDR_CHECK(ndr_push_align(ndr, 8));
12108 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12110 uint32_t _flags_save_string = ndr->flags;
12111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12112 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12113 ndr->flags = _flags_save_string;
12116 uint32_t _flags_save_string = ndr->flags;
12117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12118 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12119 ndr->flags = _flags_save_string;
12122 uint32_t _flags_save_string = ndr->flags;
12123 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12124 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12125 ndr->flags = _flags_save_string;
12128 uint32_t _flags_save_string = ndr->flags;
12129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12130 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12131 ndr->flags = _flags_save_string;
12134 uint32_t _flags_save_string = ndr->flags;
12135 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12136 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12137 ndr->flags = _flags_save_string;
12140 uint32_t _flags_save_string = ndr->flags;
12141 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12142 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12143 ndr->flags = _flags_save_string;
12146 uint32_t _flags_save_string_array = ndr->flags;
12147 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12148 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12149 ndr->flags = _flags_save_string_array;
12152 uint32_t _flags_save_string = ndr->flags;
12153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12154 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12155 ndr->flags = _flags_save_string;
12158 uint32_t _flags_save_string = ndr->flags;
12159 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12160 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12161 ndr->flags = _flags_save_string;
12164 uint32_t _flags_save_string_array = ndr->flags;
12165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12166 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12167 ndr->flags = _flags_save_string_array;
12169 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12170 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12172 uint32_t _flags_save_string = ndr->flags;
12173 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12174 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12175 ndr->flags = _flags_save_string;
12178 uint32_t _flags_save_string = ndr->flags;
12179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12180 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12181 ndr->flags = _flags_save_string;
12184 uint32_t _flags_save_string = ndr->flags;
12185 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12186 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12187 ndr->flags = _flags_save_string;
12190 uint32_t _flags_save_string = ndr->flags;
12191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12192 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12193 ndr->flags = _flags_save_string;
12195 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12197 if (ndr_flags & NDR_BUFFERS) {
12199 uint32_t _flags_save_string = ndr->flags;
12200 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12201 if (r->driver_name) {
12202 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12203 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12205 ndr->flags = _flags_save_string;
12208 uint32_t _flags_save_string = ndr->flags;
12209 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12210 if (r->architecture) {
12211 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12212 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12214 ndr->flags = _flags_save_string;
12217 uint32_t _flags_save_string = ndr->flags;
12218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12219 if (r->driver_path) {
12220 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12221 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12223 ndr->flags = _flags_save_string;
12226 uint32_t _flags_save_string = ndr->flags;
12227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12228 if (r->data_file) {
12229 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12230 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12232 ndr->flags = _flags_save_string;
12235 uint32_t _flags_save_string = ndr->flags;
12236 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12237 if (r->config_file) {
12238 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12239 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12241 ndr->flags = _flags_save_string;
12244 uint32_t _flags_save_string = ndr->flags;
12245 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12246 if (r->help_file) {
12247 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
12248 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12250 ndr->flags = _flags_save_string;
12253 uint32_t _flags_save_string_array = ndr->flags;
12254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12255 if (r->dependent_files) {
12256 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
12257 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12259 ndr->flags = _flags_save_string_array;
12262 uint32_t _flags_save_string = ndr->flags;
12263 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12264 if (r->monitor_name) {
12265 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12266 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12268 ndr->flags = _flags_save_string;
12271 uint32_t _flags_save_string = ndr->flags;
12272 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12273 if (r->default_datatype) {
12274 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
12275 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12277 ndr->flags = _flags_save_string;
12280 uint32_t _flags_save_string_array = ndr->flags;
12281 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12282 if (r->previous_names) {
12283 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
12284 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12286 ndr->flags = _flags_save_string_array;
12289 uint32_t _flags_save_string = ndr->flags;
12290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12291 if (r->manufacturer_name) {
12292 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
12293 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12295 ndr->flags = _flags_save_string;
12298 uint32_t _flags_save_string = ndr->flags;
12299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12300 if (r->manufacturer_url) {
12301 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
12302 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12304 ndr->flags = _flags_save_string;
12307 uint32_t _flags_save_string = ndr->flags;
12308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12309 if (r->hardware_id) {
12310 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
12311 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12313 ndr->flags = _flags_save_string;
12316 uint32_t _flags_save_string = ndr->flags;
12317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12318 if (r->provider) {
12319 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
12320 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12322 ndr->flags = _flags_save_string;
12325 return NDR_ERR_SUCCESS;
12328 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
12330 uint32_t _ptr_driver_name;
12331 TALLOC_CTX *_mem_save_driver_name_0;
12332 uint32_t _ptr_architecture;
12333 TALLOC_CTX *_mem_save_architecture_0;
12334 uint32_t _ptr_driver_path;
12335 TALLOC_CTX *_mem_save_driver_path_0;
12336 uint32_t _ptr_data_file;
12337 TALLOC_CTX *_mem_save_data_file_0;
12338 uint32_t _ptr_config_file;
12339 TALLOC_CTX *_mem_save_config_file_0;
12340 uint32_t _ptr_help_file;
12341 TALLOC_CTX *_mem_save_help_file_0;
12342 uint32_t _ptr_dependent_files;
12343 TALLOC_CTX *_mem_save_dependent_files_0;
12344 uint32_t _ptr_monitor_name;
12345 TALLOC_CTX *_mem_save_monitor_name_0;
12346 uint32_t _ptr_default_datatype;
12347 TALLOC_CTX *_mem_save_default_datatype_0;
12348 uint32_t _ptr_previous_names;
12349 TALLOC_CTX *_mem_save_previous_names_0;
12350 uint32_t _ptr_manufacturer_name;
12351 TALLOC_CTX *_mem_save_manufacturer_name_0;
12352 uint32_t _ptr_manufacturer_url;
12353 TALLOC_CTX *_mem_save_manufacturer_url_0;
12354 uint32_t _ptr_hardware_id;
12355 TALLOC_CTX *_mem_save_hardware_id_0;
12356 uint32_t _ptr_provider;
12357 TALLOC_CTX *_mem_save_provider_0;
12358 if (ndr_flags & NDR_SCALARS) {
12359 NDR_CHECK(ndr_pull_align(ndr, 8));
12360 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12362 uint32_t _flags_save_string = ndr->flags;
12363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12364 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12365 if (_ptr_driver_name) {
12366 NDR_PULL_ALLOC(ndr, r->driver_name);
12367 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12368 } else {
12369 r->driver_name = NULL;
12371 ndr->flags = _flags_save_string;
12374 uint32_t _flags_save_string = ndr->flags;
12375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12376 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12377 if (_ptr_architecture) {
12378 NDR_PULL_ALLOC(ndr, r->architecture);
12379 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12380 } else {
12381 r->architecture = NULL;
12383 ndr->flags = _flags_save_string;
12386 uint32_t _flags_save_string = ndr->flags;
12387 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12388 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12389 if (_ptr_driver_path) {
12390 NDR_PULL_ALLOC(ndr, r->driver_path);
12391 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12392 } else {
12393 r->driver_path = NULL;
12395 ndr->flags = _flags_save_string;
12398 uint32_t _flags_save_string = ndr->flags;
12399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12400 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12401 if (_ptr_data_file) {
12402 NDR_PULL_ALLOC(ndr, r->data_file);
12403 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12404 } else {
12405 r->data_file = NULL;
12407 ndr->flags = _flags_save_string;
12410 uint32_t _flags_save_string = ndr->flags;
12411 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12412 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12413 if (_ptr_config_file) {
12414 NDR_PULL_ALLOC(ndr, r->config_file);
12415 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12416 } else {
12417 r->config_file = NULL;
12419 ndr->flags = _flags_save_string;
12422 uint32_t _flags_save_string = ndr->flags;
12423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12424 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12425 if (_ptr_help_file) {
12426 NDR_PULL_ALLOC(ndr, r->help_file);
12427 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12428 } else {
12429 r->help_file = NULL;
12431 ndr->flags = _flags_save_string;
12434 uint32_t _flags_save_string_array = ndr->flags;
12435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12436 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12437 if (_ptr_dependent_files) {
12438 NDR_PULL_ALLOC(ndr, r->dependent_files);
12439 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12440 } else {
12441 r->dependent_files = NULL;
12443 ndr->flags = _flags_save_string_array;
12446 uint32_t _flags_save_string = ndr->flags;
12447 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12448 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12449 if (_ptr_monitor_name) {
12450 NDR_PULL_ALLOC(ndr, r->monitor_name);
12451 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12452 } else {
12453 r->monitor_name = NULL;
12455 ndr->flags = _flags_save_string;
12458 uint32_t _flags_save_string = ndr->flags;
12459 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12460 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12461 if (_ptr_default_datatype) {
12462 NDR_PULL_ALLOC(ndr, r->default_datatype);
12463 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12464 } else {
12465 r->default_datatype = NULL;
12467 ndr->flags = _flags_save_string;
12470 uint32_t _flags_save_string_array = ndr->flags;
12471 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12472 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12473 if (_ptr_previous_names) {
12474 NDR_PULL_ALLOC(ndr, r->previous_names);
12475 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12476 } else {
12477 r->previous_names = NULL;
12479 ndr->flags = _flags_save_string_array;
12481 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12482 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12484 uint32_t _flags_save_string = ndr->flags;
12485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12487 if (_ptr_manufacturer_name) {
12488 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12489 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12490 } else {
12491 r->manufacturer_name = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12499 if (_ptr_manufacturer_url) {
12500 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12501 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12502 } else {
12503 r->manufacturer_url = NULL;
12505 ndr->flags = _flags_save_string;
12508 uint32_t _flags_save_string = ndr->flags;
12509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12510 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12511 if (_ptr_hardware_id) {
12512 NDR_PULL_ALLOC(ndr, r->hardware_id);
12513 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12514 } else {
12515 r->hardware_id = NULL;
12517 ndr->flags = _flags_save_string;
12520 uint32_t _flags_save_string = ndr->flags;
12521 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12522 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12523 if (_ptr_provider) {
12524 NDR_PULL_ALLOC(ndr, r->provider);
12525 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12526 } else {
12527 r->provider = NULL;
12529 ndr->flags = _flags_save_string;
12531 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12533 if (ndr_flags & NDR_BUFFERS) {
12535 uint32_t _flags_save_string = ndr->flags;
12536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12537 if (r->driver_name) {
12538 uint32_t _relative_save_offset;
12539 _relative_save_offset = ndr->offset;
12540 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12541 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12542 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12543 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12545 ndr->offset = _relative_save_offset;
12547 ndr->flags = _flags_save_string;
12550 uint32_t _flags_save_string = ndr->flags;
12551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12552 if (r->architecture) {
12553 uint32_t _relative_save_offset;
12554 _relative_save_offset = ndr->offset;
12555 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12556 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12557 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12558 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12560 ndr->offset = _relative_save_offset;
12562 ndr->flags = _flags_save_string;
12565 uint32_t _flags_save_string = ndr->flags;
12566 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12567 if (r->driver_path) {
12568 uint32_t _relative_save_offset;
12569 _relative_save_offset = ndr->offset;
12570 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12571 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12572 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12573 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12575 ndr->offset = _relative_save_offset;
12577 ndr->flags = _flags_save_string;
12580 uint32_t _flags_save_string = ndr->flags;
12581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12582 if (r->data_file) {
12583 uint32_t _relative_save_offset;
12584 _relative_save_offset = ndr->offset;
12585 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12586 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12587 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12588 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12589 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12590 ndr->offset = _relative_save_offset;
12592 ndr->flags = _flags_save_string;
12595 uint32_t _flags_save_string = ndr->flags;
12596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12597 if (r->config_file) {
12598 uint32_t _relative_save_offset;
12599 _relative_save_offset = ndr->offset;
12600 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12601 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12602 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12603 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12604 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12605 ndr->offset = _relative_save_offset;
12607 ndr->flags = _flags_save_string;
12610 uint32_t _flags_save_string = ndr->flags;
12611 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12612 if (r->help_file) {
12613 uint32_t _relative_save_offset;
12614 _relative_save_offset = ndr->offset;
12615 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12616 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12617 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12618 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12619 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12620 ndr->offset = _relative_save_offset;
12622 ndr->flags = _flags_save_string;
12625 uint32_t _flags_save_string_array = ndr->flags;
12626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12627 if (r->dependent_files) {
12628 uint32_t _relative_save_offset;
12629 _relative_save_offset = ndr->offset;
12630 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12631 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12632 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12633 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12635 ndr->offset = _relative_save_offset;
12637 ndr->flags = _flags_save_string_array;
12640 uint32_t _flags_save_string = ndr->flags;
12641 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12642 if (r->monitor_name) {
12643 uint32_t _relative_save_offset;
12644 _relative_save_offset = ndr->offset;
12645 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12646 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12647 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12648 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12650 ndr->offset = _relative_save_offset;
12652 ndr->flags = _flags_save_string;
12655 uint32_t _flags_save_string = ndr->flags;
12656 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12657 if (r->default_datatype) {
12658 uint32_t _relative_save_offset;
12659 _relative_save_offset = ndr->offset;
12660 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12661 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12662 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12663 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12665 ndr->offset = _relative_save_offset;
12667 ndr->flags = _flags_save_string;
12670 uint32_t _flags_save_string_array = ndr->flags;
12671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12672 if (r->previous_names) {
12673 uint32_t _relative_save_offset;
12674 _relative_save_offset = ndr->offset;
12675 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12676 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12677 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12678 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12679 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12680 ndr->offset = _relative_save_offset;
12682 ndr->flags = _flags_save_string_array;
12685 uint32_t _flags_save_string = ndr->flags;
12686 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12687 if (r->manufacturer_name) {
12688 uint32_t _relative_save_offset;
12689 _relative_save_offset = ndr->offset;
12690 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12691 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12692 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12693 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12695 ndr->offset = _relative_save_offset;
12697 ndr->flags = _flags_save_string;
12700 uint32_t _flags_save_string = ndr->flags;
12701 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12702 if (r->manufacturer_url) {
12703 uint32_t _relative_save_offset;
12704 _relative_save_offset = ndr->offset;
12705 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12706 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12707 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12708 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12709 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12710 ndr->offset = _relative_save_offset;
12712 ndr->flags = _flags_save_string;
12715 uint32_t _flags_save_string = ndr->flags;
12716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12717 if (r->hardware_id) {
12718 uint32_t _relative_save_offset;
12719 _relative_save_offset = ndr->offset;
12720 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
12721 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
12722 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
12723 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
12724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
12725 ndr->offset = _relative_save_offset;
12727 ndr->flags = _flags_save_string;
12730 uint32_t _flags_save_string = ndr->flags;
12731 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12732 if (r->provider) {
12733 uint32_t _relative_save_offset;
12734 _relative_save_offset = ndr->offset;
12735 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
12736 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
12737 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
12738 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
12739 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
12740 ndr->offset = _relative_save_offset;
12742 ndr->flags = _flags_save_string;
12745 return NDR_ERR_SUCCESS;
12748 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
12750 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
12751 ndr->depth++;
12752 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12753 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12754 ndr->depth++;
12755 if (r->driver_name) {
12756 ndr_print_string(ndr, "driver_name", r->driver_name);
12758 ndr->depth--;
12759 ndr_print_ptr(ndr, "architecture", r->architecture);
12760 ndr->depth++;
12761 if (r->architecture) {
12762 ndr_print_string(ndr, "architecture", r->architecture);
12764 ndr->depth--;
12765 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12766 ndr->depth++;
12767 if (r->driver_path) {
12768 ndr_print_string(ndr, "driver_path", r->driver_path);
12770 ndr->depth--;
12771 ndr_print_ptr(ndr, "data_file", r->data_file);
12772 ndr->depth++;
12773 if (r->data_file) {
12774 ndr_print_string(ndr, "data_file", r->data_file);
12776 ndr->depth--;
12777 ndr_print_ptr(ndr, "config_file", r->config_file);
12778 ndr->depth++;
12779 if (r->config_file) {
12780 ndr_print_string(ndr, "config_file", r->config_file);
12782 ndr->depth--;
12783 ndr_print_ptr(ndr, "help_file", r->help_file);
12784 ndr->depth++;
12785 if (r->help_file) {
12786 ndr_print_string(ndr, "help_file", r->help_file);
12788 ndr->depth--;
12789 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12790 ndr->depth++;
12791 if (r->dependent_files) {
12792 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12794 ndr->depth--;
12795 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12796 ndr->depth++;
12797 if (r->monitor_name) {
12798 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12800 ndr->depth--;
12801 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12802 ndr->depth++;
12803 if (r->default_datatype) {
12804 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12806 ndr->depth--;
12807 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12808 ndr->depth++;
12809 if (r->previous_names) {
12810 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12812 ndr->depth--;
12813 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
12814 ndr_print_hyper(ndr, "driver_version", r->driver_version);
12815 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
12816 ndr->depth++;
12817 if (r->manufacturer_name) {
12818 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
12820 ndr->depth--;
12821 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
12822 ndr->depth++;
12823 if (r->manufacturer_url) {
12824 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
12826 ndr->depth--;
12827 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
12828 ndr->depth++;
12829 if (r->hardware_id) {
12830 ndr_print_string(ndr, "hardware_id", r->hardware_id);
12832 ndr->depth--;
12833 ndr_print_ptr(ndr, "provider", r->provider);
12834 ndr->depth++;
12835 if (r->provider) {
12836 ndr_print_string(ndr, "provider", r->provider);
12838 ndr->depth--;
12839 ndr->depth--;
12842 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
12844 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
12847 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
12849 if (ndr_flags & NDR_SCALARS) {
12850 NDR_CHECK(ndr_push_align(ndr, 8));
12851 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12853 uint32_t _flags_save_string = ndr->flags;
12854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12855 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12862 ndr->flags = _flags_save_string;
12865 uint32_t _flags_save_string = ndr->flags;
12866 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12867 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12868 ndr->flags = _flags_save_string;
12871 uint32_t _flags_save_string = ndr->flags;
12872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12873 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12874 ndr->flags = _flags_save_string;
12877 uint32_t _flags_save_string = ndr->flags;
12878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12879 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12880 ndr->flags = _flags_save_string;
12883 uint32_t _flags_save_string = ndr->flags;
12884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12885 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12886 ndr->flags = _flags_save_string;
12889 uint32_t _flags_save_string_array = ndr->flags;
12890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12891 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12892 ndr->flags = _flags_save_string_array;
12895 uint32_t _flags_save_string = ndr->flags;
12896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12897 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12898 ndr->flags = _flags_save_string;
12901 uint32_t _flags_save_string = ndr->flags;
12902 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12903 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12904 ndr->flags = _flags_save_string;
12907 uint32_t _flags_save_string_array = ndr->flags;
12908 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12909 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12910 ndr->flags = _flags_save_string_array;
12912 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12913 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12915 uint32_t _flags_save_string = ndr->flags;
12916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12917 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12918 ndr->flags = _flags_save_string;
12921 uint32_t _flags_save_string = ndr->flags;
12922 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12923 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12924 ndr->flags = _flags_save_string;
12927 uint32_t _flags_save_string = ndr->flags;
12928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12929 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12930 ndr->flags = _flags_save_string;
12933 uint32_t _flags_save_string = ndr->flags;
12934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12935 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12936 ndr->flags = _flags_save_string;
12939 uint32_t _flags_save_string = ndr->flags;
12940 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12941 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
12942 ndr->flags = _flags_save_string;
12945 uint32_t _flags_save_string = ndr->flags;
12946 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12947 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
12948 ndr->flags = _flags_save_string;
12951 uint32_t _flags_save_string_array = ndr->flags;
12952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12953 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
12954 ndr->flags = _flags_save_string_array;
12957 uint32_t _flags_save_string = ndr->flags;
12958 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12959 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
12960 ndr->flags = _flags_save_string;
12962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
12964 uint32_t _flags_save_string_array = ndr->flags;
12965 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12966 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
12967 ndr->flags = _flags_save_string_array;
12969 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
12970 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
12971 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12973 if (ndr_flags & NDR_BUFFERS) {
12975 uint32_t _flags_save_string = ndr->flags;
12976 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12977 if (r->driver_name) {
12978 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12979 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12981 ndr->flags = _flags_save_string;
12984 uint32_t _flags_save_string = ndr->flags;
12985 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12986 if (r->architecture) {
12987 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12988 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12990 ndr->flags = _flags_save_string;
12993 uint32_t _flags_save_string = ndr->flags;
12994 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12995 if (r->driver_path) {
12996 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12997 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12999 ndr->flags = _flags_save_string;
13002 uint32_t _flags_save_string = ndr->flags;
13003 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13004 if (r->data_file) {
13005 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
13006 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
13008 ndr->flags = _flags_save_string;
13011 uint32_t _flags_save_string = ndr->flags;
13012 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13013 if (r->config_file) {
13014 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
13015 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13017 ndr->flags = _flags_save_string;
13020 uint32_t _flags_save_string = ndr->flags;
13021 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13022 if (r->help_file) {
13023 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
13024 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
13026 ndr->flags = _flags_save_string;
13029 uint32_t _flags_save_string_array = ndr->flags;
13030 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13031 if (r->dependent_files) {
13032 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
13033 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13035 ndr->flags = _flags_save_string_array;
13038 uint32_t _flags_save_string = ndr->flags;
13039 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13040 if (r->monitor_name) {
13041 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
13042 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13044 ndr->flags = _flags_save_string;
13047 uint32_t _flags_save_string = ndr->flags;
13048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13049 if (r->default_datatype) {
13050 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
13051 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13053 ndr->flags = _flags_save_string;
13056 uint32_t _flags_save_string_array = ndr->flags;
13057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13058 if (r->previous_names) {
13059 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
13060 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
13062 ndr->flags = _flags_save_string_array;
13065 uint32_t _flags_save_string = ndr->flags;
13066 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13067 if (r->manufacturer_name) {
13068 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
13069 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
13071 ndr->flags = _flags_save_string;
13074 uint32_t _flags_save_string = ndr->flags;
13075 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13076 if (r->manufacturer_url) {
13077 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
13078 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
13080 ndr->flags = _flags_save_string;
13083 uint32_t _flags_save_string = ndr->flags;
13084 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13085 if (r->hardware_id) {
13086 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
13087 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
13089 ndr->flags = _flags_save_string;
13092 uint32_t _flags_save_string = ndr->flags;
13093 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13094 if (r->provider) {
13095 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
13096 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
13098 ndr->flags = _flags_save_string;
13101 uint32_t _flags_save_string = ndr->flags;
13102 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13103 if (r->print_processor) {
13104 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
13105 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
13107 ndr->flags = _flags_save_string;
13110 uint32_t _flags_save_string = ndr->flags;
13111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13112 if (r->vendor_setup) {
13113 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
13114 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
13116 ndr->flags = _flags_save_string;
13119 uint32_t _flags_save_string_array = ndr->flags;
13120 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13121 if (r->color_profiles) {
13122 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
13123 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
13125 ndr->flags = _flags_save_string_array;
13128 uint32_t _flags_save_string = ndr->flags;
13129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13130 if (r->inf_path) {
13131 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
13132 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
13134 ndr->flags = _flags_save_string;
13137 uint32_t _flags_save_string_array = ndr->flags;
13138 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13139 if (r->core_driver_dependencies) {
13140 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
13141 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
13143 ndr->flags = _flags_save_string_array;
13146 return NDR_ERR_SUCCESS;
13149 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
13151 uint32_t _ptr_driver_name;
13152 TALLOC_CTX *_mem_save_driver_name_0;
13153 uint32_t _ptr_architecture;
13154 TALLOC_CTX *_mem_save_architecture_0;
13155 uint32_t _ptr_driver_path;
13156 TALLOC_CTX *_mem_save_driver_path_0;
13157 uint32_t _ptr_data_file;
13158 TALLOC_CTX *_mem_save_data_file_0;
13159 uint32_t _ptr_config_file;
13160 TALLOC_CTX *_mem_save_config_file_0;
13161 uint32_t _ptr_help_file;
13162 TALLOC_CTX *_mem_save_help_file_0;
13163 uint32_t _ptr_dependent_files;
13164 TALLOC_CTX *_mem_save_dependent_files_0;
13165 uint32_t _ptr_monitor_name;
13166 TALLOC_CTX *_mem_save_monitor_name_0;
13167 uint32_t _ptr_default_datatype;
13168 TALLOC_CTX *_mem_save_default_datatype_0;
13169 uint32_t _ptr_previous_names;
13170 TALLOC_CTX *_mem_save_previous_names_0;
13171 uint32_t _ptr_manufacturer_name;
13172 TALLOC_CTX *_mem_save_manufacturer_name_0;
13173 uint32_t _ptr_manufacturer_url;
13174 TALLOC_CTX *_mem_save_manufacturer_url_0;
13175 uint32_t _ptr_hardware_id;
13176 TALLOC_CTX *_mem_save_hardware_id_0;
13177 uint32_t _ptr_provider;
13178 TALLOC_CTX *_mem_save_provider_0;
13179 uint32_t _ptr_print_processor;
13180 TALLOC_CTX *_mem_save_print_processor_0;
13181 uint32_t _ptr_vendor_setup;
13182 TALLOC_CTX *_mem_save_vendor_setup_0;
13183 uint32_t _ptr_color_profiles;
13184 TALLOC_CTX *_mem_save_color_profiles_0;
13185 uint32_t _ptr_inf_path;
13186 TALLOC_CTX *_mem_save_inf_path_0;
13187 uint32_t _ptr_core_driver_dependencies;
13188 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
13189 if (ndr_flags & NDR_SCALARS) {
13190 NDR_CHECK(ndr_pull_align(ndr, 8));
13191 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13193 uint32_t _flags_save_string = ndr->flags;
13194 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13195 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13196 if (_ptr_driver_name) {
13197 NDR_PULL_ALLOC(ndr, r->driver_name);
13198 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13199 } else {
13200 r->driver_name = NULL;
13202 ndr->flags = _flags_save_string;
13205 uint32_t _flags_save_string = ndr->flags;
13206 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13207 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13208 if (_ptr_architecture) {
13209 NDR_PULL_ALLOC(ndr, r->architecture);
13210 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13211 } else {
13212 r->architecture = NULL;
13214 ndr->flags = _flags_save_string;
13217 uint32_t _flags_save_string = ndr->flags;
13218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13220 if (_ptr_driver_path) {
13221 NDR_PULL_ALLOC(ndr, r->driver_path);
13222 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13223 } else {
13224 r->driver_path = NULL;
13226 ndr->flags = _flags_save_string;
13229 uint32_t _flags_save_string = ndr->flags;
13230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13231 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13232 if (_ptr_data_file) {
13233 NDR_PULL_ALLOC(ndr, r->data_file);
13234 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13235 } else {
13236 r->data_file = NULL;
13238 ndr->flags = _flags_save_string;
13241 uint32_t _flags_save_string = ndr->flags;
13242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13243 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13244 if (_ptr_config_file) {
13245 NDR_PULL_ALLOC(ndr, r->config_file);
13246 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13247 } else {
13248 r->config_file = NULL;
13250 ndr->flags = _flags_save_string;
13253 uint32_t _flags_save_string = ndr->flags;
13254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13255 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13256 if (_ptr_help_file) {
13257 NDR_PULL_ALLOC(ndr, r->help_file);
13258 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13259 } else {
13260 r->help_file = NULL;
13262 ndr->flags = _flags_save_string;
13265 uint32_t _flags_save_string_array = ndr->flags;
13266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13267 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13268 if (_ptr_dependent_files) {
13269 NDR_PULL_ALLOC(ndr, r->dependent_files);
13270 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13271 } else {
13272 r->dependent_files = NULL;
13274 ndr->flags = _flags_save_string_array;
13277 uint32_t _flags_save_string = ndr->flags;
13278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13279 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13280 if (_ptr_monitor_name) {
13281 NDR_PULL_ALLOC(ndr, r->monitor_name);
13282 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13283 } else {
13284 r->monitor_name = NULL;
13286 ndr->flags = _flags_save_string;
13289 uint32_t _flags_save_string = ndr->flags;
13290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13291 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13292 if (_ptr_default_datatype) {
13293 NDR_PULL_ALLOC(ndr, r->default_datatype);
13294 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13295 } else {
13296 r->default_datatype = NULL;
13298 ndr->flags = _flags_save_string;
13301 uint32_t _flags_save_string_array = ndr->flags;
13302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13303 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13304 if (_ptr_previous_names) {
13305 NDR_PULL_ALLOC(ndr, r->previous_names);
13306 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13307 } else {
13308 r->previous_names = NULL;
13310 ndr->flags = _flags_save_string_array;
13312 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13313 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13315 uint32_t _flags_save_string = ndr->flags;
13316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13318 if (_ptr_manufacturer_name) {
13319 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13320 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13321 } else {
13322 r->manufacturer_name = NULL;
13324 ndr->flags = _flags_save_string;
13327 uint32_t _flags_save_string = ndr->flags;
13328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13329 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13330 if (_ptr_manufacturer_url) {
13331 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13332 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13333 } else {
13334 r->manufacturer_url = NULL;
13336 ndr->flags = _flags_save_string;
13339 uint32_t _flags_save_string = ndr->flags;
13340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13342 if (_ptr_hardware_id) {
13343 NDR_PULL_ALLOC(ndr, r->hardware_id);
13344 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13345 } else {
13346 r->hardware_id = NULL;
13348 ndr->flags = _flags_save_string;
13351 uint32_t _flags_save_string = ndr->flags;
13352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13354 if (_ptr_provider) {
13355 NDR_PULL_ALLOC(ndr, r->provider);
13356 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13357 } else {
13358 r->provider = NULL;
13360 ndr->flags = _flags_save_string;
13363 uint32_t _flags_save_string = ndr->flags;
13364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
13366 if (_ptr_print_processor) {
13367 NDR_PULL_ALLOC(ndr, r->print_processor);
13368 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
13369 } else {
13370 r->print_processor = NULL;
13372 ndr->flags = _flags_save_string;
13375 uint32_t _flags_save_string = ndr->flags;
13376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13377 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
13378 if (_ptr_vendor_setup) {
13379 NDR_PULL_ALLOC(ndr, r->vendor_setup);
13380 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
13381 } else {
13382 r->vendor_setup = NULL;
13384 ndr->flags = _flags_save_string;
13387 uint32_t _flags_save_string_array = ndr->flags;
13388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13389 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
13390 if (_ptr_color_profiles) {
13391 NDR_PULL_ALLOC(ndr, r->color_profiles);
13392 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
13393 } else {
13394 r->color_profiles = NULL;
13396 ndr->flags = _flags_save_string_array;
13399 uint32_t _flags_save_string = ndr->flags;
13400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13401 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
13402 if (_ptr_inf_path) {
13403 NDR_PULL_ALLOC(ndr, r->inf_path);
13404 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
13405 } else {
13406 r->inf_path = NULL;
13408 ndr->flags = _flags_save_string;
13410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
13412 uint32_t _flags_save_string_array = ndr->flags;
13413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13414 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
13415 if (_ptr_core_driver_dependencies) {
13416 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
13417 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
13418 } else {
13419 r->core_driver_dependencies = NULL;
13421 ndr->flags = _flags_save_string_array;
13423 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
13424 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
13425 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
13427 if (ndr_flags & NDR_BUFFERS) {
13429 uint32_t _flags_save_string = ndr->flags;
13430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13431 if (r->driver_name) {
13432 uint32_t _relative_save_offset;
13433 _relative_save_offset = ndr->offset;
13434 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13435 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13436 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13437 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13439 ndr->offset = _relative_save_offset;
13441 ndr->flags = _flags_save_string;
13444 uint32_t _flags_save_string = ndr->flags;
13445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13446 if (r->architecture) {
13447 uint32_t _relative_save_offset;
13448 _relative_save_offset = ndr->offset;
13449 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13450 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13451 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13452 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13454 ndr->offset = _relative_save_offset;
13456 ndr->flags = _flags_save_string;
13459 uint32_t _flags_save_string = ndr->flags;
13460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13461 if (r->driver_path) {
13462 uint32_t _relative_save_offset;
13463 _relative_save_offset = ndr->offset;
13464 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13465 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13466 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13467 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13469 ndr->offset = _relative_save_offset;
13471 ndr->flags = _flags_save_string;
13474 uint32_t _flags_save_string = ndr->flags;
13475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13476 if (r->data_file) {
13477 uint32_t _relative_save_offset;
13478 _relative_save_offset = ndr->offset;
13479 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13480 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13481 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13482 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13483 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13484 ndr->offset = _relative_save_offset;
13486 ndr->flags = _flags_save_string;
13489 uint32_t _flags_save_string = ndr->flags;
13490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13491 if (r->config_file) {
13492 uint32_t _relative_save_offset;
13493 _relative_save_offset = ndr->offset;
13494 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13495 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13496 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13497 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13499 ndr->offset = _relative_save_offset;
13501 ndr->flags = _flags_save_string;
13504 uint32_t _flags_save_string = ndr->flags;
13505 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13506 if (r->help_file) {
13507 uint32_t _relative_save_offset;
13508 _relative_save_offset = ndr->offset;
13509 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
13510 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13511 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
13512 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
13513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
13514 ndr->offset = _relative_save_offset;
13516 ndr->flags = _flags_save_string;
13519 uint32_t _flags_save_string_array = ndr->flags;
13520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13521 if (r->dependent_files) {
13522 uint32_t _relative_save_offset;
13523 _relative_save_offset = ndr->offset;
13524 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13525 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13526 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13527 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13529 ndr->offset = _relative_save_offset;
13531 ndr->flags = _flags_save_string_array;
13534 uint32_t _flags_save_string = ndr->flags;
13535 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13536 if (r->monitor_name) {
13537 uint32_t _relative_save_offset;
13538 _relative_save_offset = ndr->offset;
13539 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13540 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13541 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13542 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13544 ndr->offset = _relative_save_offset;
13546 ndr->flags = _flags_save_string;
13549 uint32_t _flags_save_string = ndr->flags;
13550 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13551 if (r->default_datatype) {
13552 uint32_t _relative_save_offset;
13553 _relative_save_offset = ndr->offset;
13554 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13555 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13556 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13557 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13558 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13559 ndr->offset = _relative_save_offset;
13561 ndr->flags = _flags_save_string;
13564 uint32_t _flags_save_string_array = ndr->flags;
13565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13566 if (r->previous_names) {
13567 uint32_t _relative_save_offset;
13568 _relative_save_offset = ndr->offset;
13569 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13570 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13571 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13572 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13573 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13574 ndr->offset = _relative_save_offset;
13576 ndr->flags = _flags_save_string_array;
13579 uint32_t _flags_save_string = ndr->flags;
13580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13581 if (r->manufacturer_name) {
13582 uint32_t _relative_save_offset;
13583 _relative_save_offset = ndr->offset;
13584 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13585 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13586 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13587 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13588 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13589 ndr->offset = _relative_save_offset;
13591 ndr->flags = _flags_save_string;
13594 uint32_t _flags_save_string = ndr->flags;
13595 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13596 if (r->manufacturer_url) {
13597 uint32_t _relative_save_offset;
13598 _relative_save_offset = ndr->offset;
13599 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13600 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13601 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13602 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13604 ndr->offset = _relative_save_offset;
13606 ndr->flags = _flags_save_string;
13609 uint32_t _flags_save_string = ndr->flags;
13610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13611 if (r->hardware_id) {
13612 uint32_t _relative_save_offset;
13613 _relative_save_offset = ndr->offset;
13614 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13615 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13616 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13617 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13618 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13619 ndr->offset = _relative_save_offset;
13621 ndr->flags = _flags_save_string;
13624 uint32_t _flags_save_string = ndr->flags;
13625 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13626 if (r->provider) {
13627 uint32_t _relative_save_offset;
13628 _relative_save_offset = ndr->offset;
13629 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13630 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13631 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13632 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13633 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13634 ndr->offset = _relative_save_offset;
13636 ndr->flags = _flags_save_string;
13639 uint32_t _flags_save_string = ndr->flags;
13640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13641 if (r->print_processor) {
13642 uint32_t _relative_save_offset;
13643 _relative_save_offset = ndr->offset;
13644 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
13645 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
13646 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
13647 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
13648 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
13649 ndr->offset = _relative_save_offset;
13651 ndr->flags = _flags_save_string;
13654 uint32_t _flags_save_string = ndr->flags;
13655 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13656 if (r->vendor_setup) {
13657 uint32_t _relative_save_offset;
13658 _relative_save_offset = ndr->offset;
13659 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
13660 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
13661 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
13662 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
13663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
13664 ndr->offset = _relative_save_offset;
13666 ndr->flags = _flags_save_string;
13669 uint32_t _flags_save_string_array = ndr->flags;
13670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13671 if (r->color_profiles) {
13672 uint32_t _relative_save_offset;
13673 _relative_save_offset = ndr->offset;
13674 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
13675 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
13676 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
13677 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
13678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
13679 ndr->offset = _relative_save_offset;
13681 ndr->flags = _flags_save_string_array;
13684 uint32_t _flags_save_string = ndr->flags;
13685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13686 if (r->inf_path) {
13687 uint32_t _relative_save_offset;
13688 _relative_save_offset = ndr->offset;
13689 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
13690 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13691 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
13692 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
13693 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
13694 ndr->offset = _relative_save_offset;
13696 ndr->flags = _flags_save_string;
13699 uint32_t _flags_save_string_array = ndr->flags;
13700 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13701 if (r->core_driver_dependencies) {
13702 uint32_t _relative_save_offset;
13703 _relative_save_offset = ndr->offset;
13704 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
13705 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13706 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
13707 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
13708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
13709 ndr->offset = _relative_save_offset;
13711 ndr->flags = _flags_save_string_array;
13714 return NDR_ERR_SUCCESS;
13717 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
13719 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
13720 ndr->depth++;
13721 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13722 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13723 ndr->depth++;
13724 if (r->driver_name) {
13725 ndr_print_string(ndr, "driver_name", r->driver_name);
13727 ndr->depth--;
13728 ndr_print_ptr(ndr, "architecture", r->architecture);
13729 ndr->depth++;
13730 if (r->architecture) {
13731 ndr_print_string(ndr, "architecture", r->architecture);
13733 ndr->depth--;
13734 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13735 ndr->depth++;
13736 if (r->driver_path) {
13737 ndr_print_string(ndr, "driver_path", r->driver_path);
13739 ndr->depth--;
13740 ndr_print_ptr(ndr, "data_file", r->data_file);
13741 ndr->depth++;
13742 if (r->data_file) {
13743 ndr_print_string(ndr, "data_file", r->data_file);
13745 ndr->depth--;
13746 ndr_print_ptr(ndr, "config_file", r->config_file);
13747 ndr->depth++;
13748 if (r->config_file) {
13749 ndr_print_string(ndr, "config_file", r->config_file);
13751 ndr->depth--;
13752 ndr_print_ptr(ndr, "help_file", r->help_file);
13753 ndr->depth++;
13754 if (r->help_file) {
13755 ndr_print_string(ndr, "help_file", r->help_file);
13757 ndr->depth--;
13758 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13759 ndr->depth++;
13760 if (r->dependent_files) {
13761 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13763 ndr->depth--;
13764 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13765 ndr->depth++;
13766 if (r->monitor_name) {
13767 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13769 ndr->depth--;
13770 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13771 ndr->depth++;
13772 if (r->default_datatype) {
13773 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13775 ndr->depth--;
13776 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13777 ndr->depth++;
13778 if (r->previous_names) {
13779 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13781 ndr->depth--;
13782 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13783 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13784 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13785 ndr->depth++;
13786 if (r->manufacturer_name) {
13787 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13789 ndr->depth--;
13790 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13791 ndr->depth++;
13792 if (r->manufacturer_url) {
13793 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13795 ndr->depth--;
13796 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13797 ndr->depth++;
13798 if (r->hardware_id) {
13799 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13801 ndr->depth--;
13802 ndr_print_ptr(ndr, "provider", r->provider);
13803 ndr->depth++;
13804 if (r->provider) {
13805 ndr_print_string(ndr, "provider", r->provider);
13807 ndr->depth--;
13808 ndr_print_ptr(ndr, "print_processor", r->print_processor);
13809 ndr->depth++;
13810 if (r->print_processor) {
13811 ndr_print_string(ndr, "print_processor", r->print_processor);
13813 ndr->depth--;
13814 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
13815 ndr->depth++;
13816 if (r->vendor_setup) {
13817 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
13819 ndr->depth--;
13820 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
13821 ndr->depth++;
13822 if (r->color_profiles) {
13823 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
13825 ndr->depth--;
13826 ndr_print_ptr(ndr, "inf_path", r->inf_path);
13827 ndr->depth++;
13828 if (r->inf_path) {
13829 ndr_print_string(ndr, "inf_path", r->inf_path);
13831 ndr->depth--;
13832 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
13833 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13834 ndr->depth++;
13835 if (r->core_driver_dependencies) {
13836 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13838 ndr->depth--;
13839 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
13840 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
13841 ndr->depth--;
13844 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
13846 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
13849 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
13851 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
13852 return NDR_ERR_SUCCESS;
13855 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
13857 uint32_t v;
13858 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
13859 *r = v;
13860 return NDR_ERR_SUCCESS;
13863 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
13865 const char *val = NULL;
13867 switch (r) {
13868 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13869 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13870 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13871 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13872 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13874 ndr_print_enum(ndr, name, "ENUM", val, r);
13877 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
13879 if (ndr_flags & NDR_SCALARS) {
13880 NDR_CHECK(ndr_push_align(ndr, 5));
13882 uint32_t _flags_save_string = ndr->flags;
13883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13884 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
13885 ndr->flags = _flags_save_string;
13887 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
13888 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
13889 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13891 if (ndr_flags & NDR_BUFFERS) {
13893 uint32_t _flags_save_string = ndr->flags;
13894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13895 if (r->file_name) {
13896 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
13897 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
13899 ndr->flags = _flags_save_string;
13902 return NDR_ERR_SUCCESS;
13905 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
13907 uint32_t _ptr_file_name;
13908 TALLOC_CTX *_mem_save_file_name_0;
13909 if (ndr_flags & NDR_SCALARS) {
13910 NDR_CHECK(ndr_pull_align(ndr, 5));
13912 uint32_t _flags_save_string = ndr->flags;
13913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
13915 if (_ptr_file_name) {
13916 NDR_PULL_ALLOC(ndr, r->file_name);
13917 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
13918 } else {
13919 r->file_name = NULL;
13921 ndr->flags = _flags_save_string;
13923 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
13924 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
13925 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13927 if (ndr_flags & NDR_BUFFERS) {
13929 uint32_t _flags_save_string = ndr->flags;
13930 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13931 if (r->file_name) {
13932 uint32_t _relative_save_offset;
13933 _relative_save_offset = ndr->offset;
13934 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
13935 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13936 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
13937 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
13938 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
13939 ndr->offset = _relative_save_offset;
13941 ndr->flags = _flags_save_string;
13944 return NDR_ERR_SUCCESS;
13947 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
13949 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
13950 ndr->depth++;
13951 ndr_print_ptr(ndr, "file_name", r->file_name);
13952 ndr->depth++;
13953 if (r->file_name) {
13954 ndr_print_string(ndr, "file_name", r->file_name);
13956 ndr->depth--;
13957 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
13958 ndr_print_uint32(ndr, "file_version", r->file_version);
13959 ndr->depth--;
13962 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
13964 uint32_t cntr_file_info_1;
13965 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
13966 ndr->depth++;
13967 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13968 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13969 ndr->depth++;
13970 if (r->driver_name) {
13971 ndr_print_string(ndr, "driver_name", r->driver_name);
13973 ndr->depth--;
13974 ndr_print_ptr(ndr, "architecture", r->architecture);
13975 ndr->depth++;
13976 if (r->architecture) {
13977 ndr_print_string(ndr, "architecture", r->architecture);
13979 ndr->depth--;
13980 ndr_print_ptr(ndr, "file_info", r->file_info);
13981 ndr->depth++;
13982 if (r->file_info) {
13983 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
13984 ndr->depth++;
13985 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
13986 char *idx_1=NULL;
13987 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
13988 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
13989 free(idx_1);
13992 ndr->depth--;
13994 ndr->depth--;
13995 ndr_print_uint32(ndr, "file_count", r->file_count);
13996 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13997 ndr->depth++;
13998 if (r->monitor_name) {
13999 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14001 ndr->depth--;
14002 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14003 ndr->depth++;
14004 if (r->default_datatype) {
14005 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14007 ndr->depth--;
14008 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14009 ndr->depth++;
14010 if (r->previous_names) {
14011 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14013 ndr->depth--;
14014 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14015 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14016 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14017 ndr->depth++;
14018 if (r->manufacturer_name) {
14019 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14021 ndr->depth--;
14022 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14023 ndr->depth++;
14024 if (r->manufacturer_url) {
14025 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14027 ndr->depth--;
14028 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14029 ndr->depth++;
14030 if (r->hardware_id) {
14031 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14033 ndr->depth--;
14034 ndr_print_ptr(ndr, "provider", r->provider);
14035 ndr->depth++;
14036 if (r->provider) {
14037 ndr_print_string(ndr, "provider", r->provider);
14039 ndr->depth--;
14040 ndr->depth--;
14043 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
14045 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
14048 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
14050 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14051 if (ndr_flags & NDR_SCALARS) {
14052 int level = ndr_push_get_switch_value(ndr, r);
14053 NDR_CHECK(ndr_push_union_align(ndr, 8));
14054 switch (level) {
14055 case 1: {
14056 NDR_CHECK(ndr_push_align(ndr, 5));
14057 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14058 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14059 break; }
14061 case 2: {
14062 NDR_CHECK(ndr_push_align(ndr, 5));
14063 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14064 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14065 break; }
14067 case 3: {
14068 NDR_CHECK(ndr_push_align(ndr, 5));
14069 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14070 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14071 break; }
14073 case 4: {
14074 NDR_CHECK(ndr_push_align(ndr, 5));
14075 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14076 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14077 break; }
14079 case 5: {
14080 NDR_CHECK(ndr_push_align(ndr, 5));
14081 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14082 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14083 break; }
14085 case 6: {
14086 NDR_CHECK(ndr_push_align(ndr, 8));
14087 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14088 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14089 break; }
14091 case 8: {
14092 NDR_CHECK(ndr_push_align(ndr, 8));
14093 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14094 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14095 break; }
14097 case 101: {
14098 NDR_CHECK(ndr_push_align(ndr, 8));
14099 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14100 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14101 break; }
14103 default: {
14104 break; }
14108 if (ndr_flags & NDR_BUFFERS) {
14109 int level = ndr_push_get_switch_value(ndr, r);
14110 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14111 switch (level) {
14112 case 1:
14113 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14114 break;
14116 case 2:
14117 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14118 break;
14120 case 3:
14121 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14122 break;
14124 case 4:
14125 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14126 break;
14128 case 5:
14129 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14130 break;
14132 case 6:
14133 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14134 break;
14136 case 8:
14137 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14138 break;
14140 case 101:
14141 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14142 break;
14144 default:
14145 break;
14149 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14150 return NDR_ERR_SUCCESS;
14153 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
14155 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14156 int level;
14157 level = ndr_pull_get_switch_value(ndr, r);
14158 if (ndr_flags & NDR_SCALARS) {
14159 NDR_CHECK(ndr_pull_union_align(ndr, 8));
14160 switch (level) {
14161 case 1: {
14162 NDR_CHECK(ndr_pull_align(ndr, 5));
14163 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14164 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14165 break; }
14167 case 2: {
14168 NDR_CHECK(ndr_pull_align(ndr, 5));
14169 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14170 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14171 break; }
14173 case 3: {
14174 NDR_CHECK(ndr_pull_align(ndr, 5));
14175 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14176 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14177 break; }
14179 case 4: {
14180 NDR_CHECK(ndr_pull_align(ndr, 5));
14181 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14182 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14183 break; }
14185 case 5: {
14186 NDR_CHECK(ndr_pull_align(ndr, 5));
14187 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14188 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14189 break; }
14191 case 6: {
14192 NDR_CHECK(ndr_pull_align(ndr, 8));
14193 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14194 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14195 break; }
14197 case 8: {
14198 NDR_CHECK(ndr_pull_align(ndr, 8));
14199 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14200 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14201 break; }
14203 case 101: {
14204 NDR_CHECK(ndr_pull_align(ndr, 8));
14205 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14206 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14207 break; }
14209 default: {
14210 break; }
14214 if (ndr_flags & NDR_BUFFERS) {
14215 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14216 switch (level) {
14217 case 1:
14218 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14219 break;
14221 case 2:
14222 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14223 break;
14225 case 3:
14226 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14227 break;
14229 case 4:
14230 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14231 break;
14233 case 5:
14234 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14235 break;
14237 case 6:
14238 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14239 break;
14241 case 8:
14242 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14243 break;
14245 case 101:
14246 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14247 break;
14249 default:
14250 break;
14254 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14255 return NDR_ERR_SUCCESS;
14258 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
14260 int level;
14261 level = ndr_print_get_switch_value(ndr, r);
14262 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
14263 switch (level) {
14264 case 1:
14265 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
14266 break;
14268 case 2:
14269 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
14270 break;
14272 case 3:
14273 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
14274 break;
14276 case 4:
14277 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
14278 break;
14280 case 5:
14281 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
14282 break;
14284 case 6:
14285 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
14286 break;
14288 case 8:
14289 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
14290 break;
14292 case 101:
14293 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
14294 break;
14296 default:
14297 break;
14302 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14304 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
14307 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
14309 if (ndr_flags & NDR_SCALARS) {
14310 NDR_CHECK(ndr_push_align(ndr, 4));
14312 uint32_t _flags_save_string = ndr->flags;
14313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14314 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14315 ndr->flags = _flags_save_string;
14317 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
14319 if (ndr_flags & NDR_BUFFERS) {
14321 return NDR_ERR_SUCCESS;
14324 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
14326 if (ndr_flags & NDR_SCALARS) {
14327 NDR_CHECK(ndr_pull_align(ndr, 4));
14329 uint32_t _flags_save_string = ndr->flags;
14330 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14331 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14332 ndr->flags = _flags_save_string;
14334 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
14336 if (ndr_flags & NDR_BUFFERS) {
14338 return NDR_ERR_SUCCESS;
14341 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
14343 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
14344 ndr->depth++;
14345 ndr_print_string(ndr, "directory_name", r->directory_name);
14346 ndr->depth--;
14349 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14351 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
14354 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
14356 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14357 if (ndr_flags & NDR_SCALARS) {
14358 int level = ndr_push_get_switch_value(ndr, r);
14359 NDR_CHECK(ndr_push_union_align(ndr, 4));
14360 switch (level) {
14361 case 1: {
14362 NDR_CHECK(ndr_push_align(ndr, 4));
14363 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14364 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14365 break; }
14367 default: {
14368 NDR_CHECK(ndr_push_align(ndr, 4));
14369 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14370 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14371 break; }
14375 if (ndr_flags & NDR_BUFFERS) {
14376 int level = ndr_push_get_switch_value(ndr, r);
14377 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14378 switch (level) {
14379 case 1:
14380 break;
14382 default:
14383 break;
14387 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14388 return NDR_ERR_SUCCESS;
14391 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
14393 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14394 int level;
14395 level = ndr_pull_get_switch_value(ndr, r);
14396 if (ndr_flags & NDR_SCALARS) {
14397 NDR_CHECK(ndr_pull_union_align(ndr, 4));
14398 switch (level) {
14399 case 1: {
14400 NDR_CHECK(ndr_pull_align(ndr, 4));
14401 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14402 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14403 break; }
14405 default: {
14406 NDR_CHECK(ndr_pull_align(ndr, 4));
14407 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14408 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14409 break; }
14413 if (ndr_flags & NDR_BUFFERS) {
14414 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14415 switch (level) {
14416 case 1:
14417 break;
14419 default:
14420 break;
14424 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14425 return NDR_ERR_SUCCESS;
14428 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
14430 int level;
14431 level = ndr_print_get_switch_value(ndr, r);
14432 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
14433 switch (level) {
14434 case 1:
14435 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14436 break;
14438 default:
14439 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14440 break;
14445 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14447 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
14450 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
14452 if (ndr_flags & NDR_SCALARS) {
14453 NDR_CHECK(ndr_push_align(ndr, 5));
14455 uint32_t _flags_save_string = ndr->flags;
14456 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14457 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
14458 ndr->flags = _flags_save_string;
14460 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14462 if (ndr_flags & NDR_BUFFERS) {
14464 uint32_t _flags_save_string = ndr->flags;
14465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14466 if (r->print_processor_name) {
14467 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
14468 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
14470 ndr->flags = _flags_save_string;
14473 return NDR_ERR_SUCCESS;
14476 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
14478 uint32_t _ptr_print_processor_name;
14479 TALLOC_CTX *_mem_save_print_processor_name_0;
14480 if (ndr_flags & NDR_SCALARS) {
14481 NDR_CHECK(ndr_pull_align(ndr, 5));
14483 uint32_t _flags_save_string = ndr->flags;
14484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14485 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
14486 if (_ptr_print_processor_name) {
14487 NDR_PULL_ALLOC(ndr, r->print_processor_name);
14488 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
14489 } else {
14490 r->print_processor_name = NULL;
14492 ndr->flags = _flags_save_string;
14494 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14496 if (ndr_flags & NDR_BUFFERS) {
14498 uint32_t _flags_save_string = ndr->flags;
14499 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14500 if (r->print_processor_name) {
14501 uint32_t _relative_save_offset;
14502 _relative_save_offset = ndr->offset;
14503 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
14504 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14505 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
14506 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
14507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
14508 ndr->offset = _relative_save_offset;
14510 ndr->flags = _flags_save_string;
14513 return NDR_ERR_SUCCESS;
14516 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
14518 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
14519 ndr->depth++;
14520 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
14521 ndr->depth++;
14522 if (r->print_processor_name) {
14523 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
14525 ndr->depth--;
14526 ndr->depth--;
14529 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14531 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
14534 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
14536 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14537 if (ndr_flags & NDR_SCALARS) {
14538 int level = ndr_push_get_switch_value(ndr, r);
14539 NDR_CHECK(ndr_push_union_align(ndr, 5));
14540 switch (level) {
14541 case 1: {
14542 NDR_CHECK(ndr_push_align(ndr, 5));
14543 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14544 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14545 break; }
14547 default: {
14548 break; }
14552 if (ndr_flags & NDR_BUFFERS) {
14553 int level = ndr_push_get_switch_value(ndr, r);
14554 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14555 switch (level) {
14556 case 1:
14557 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14558 break;
14560 default:
14561 break;
14565 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14566 return NDR_ERR_SUCCESS;
14569 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
14571 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14572 int level;
14573 level = ndr_pull_get_switch_value(ndr, r);
14574 if (ndr_flags & NDR_SCALARS) {
14575 NDR_CHECK(ndr_pull_union_align(ndr, 5));
14576 switch (level) {
14577 case 1: {
14578 NDR_CHECK(ndr_pull_align(ndr, 5));
14579 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14580 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14581 break; }
14583 default: {
14584 break; }
14588 if (ndr_flags & NDR_BUFFERS) {
14589 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14590 switch (level) {
14591 case 1:
14592 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14593 break;
14595 default:
14596 break;
14600 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14601 return NDR_ERR_SUCCESS;
14604 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
14606 int level;
14607 level = ndr_print_get_switch_value(ndr, r);
14608 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
14609 switch (level) {
14610 case 1:
14611 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
14612 break;
14614 default:
14615 break;
14620 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14622 if (ndr_flags & NDR_SCALARS) {
14623 NDR_CHECK(ndr_push_align(ndr, 4));
14625 uint32_t _flags_save_string = ndr->flags;
14626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14627 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14628 ndr->flags = _flags_save_string;
14630 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
14632 if (ndr_flags & NDR_BUFFERS) {
14634 return NDR_ERR_SUCCESS;
14637 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
14639 if (ndr_flags & NDR_SCALARS) {
14640 NDR_CHECK(ndr_pull_align(ndr, 4));
14642 uint32_t _flags_save_string = ndr->flags;
14643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14644 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14645 ndr->flags = _flags_save_string;
14647 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
14649 if (ndr_flags & NDR_BUFFERS) {
14651 return NDR_ERR_SUCCESS;
14654 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14656 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
14657 ndr->depth++;
14658 ndr_print_string(ndr, "directory_name", r->directory_name);
14659 ndr->depth--;
14662 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14664 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
14667 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
14669 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14670 if (ndr_flags & NDR_SCALARS) {
14671 int level = ndr_push_get_switch_value(ndr, r);
14672 NDR_CHECK(ndr_push_union_align(ndr, 4));
14673 switch (level) {
14674 case 1: {
14675 NDR_CHECK(ndr_push_align(ndr, 4));
14676 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14677 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14678 break; }
14680 default: {
14681 NDR_CHECK(ndr_push_align(ndr, 4));
14682 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14683 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14684 break; }
14688 if (ndr_flags & NDR_BUFFERS) {
14689 int level = ndr_push_get_switch_value(ndr, r);
14690 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14691 switch (level) {
14692 case 1:
14693 break;
14695 default:
14696 break;
14700 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14701 return NDR_ERR_SUCCESS;
14704 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
14706 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14707 int level;
14708 level = ndr_pull_get_switch_value(ndr, r);
14709 if (ndr_flags & NDR_SCALARS) {
14710 NDR_CHECK(ndr_pull_union_align(ndr, 4));
14711 switch (level) {
14712 case 1: {
14713 NDR_CHECK(ndr_pull_align(ndr, 4));
14714 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14715 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14716 break; }
14718 default: {
14719 NDR_CHECK(ndr_pull_align(ndr, 4));
14720 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14721 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14722 break; }
14726 if (ndr_flags & NDR_BUFFERS) {
14727 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14728 switch (level) {
14729 case 1:
14730 break;
14732 default:
14733 break;
14737 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14738 return NDR_ERR_SUCCESS;
14741 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
14743 int level;
14744 level = ndr_print_get_switch_value(ndr, r);
14745 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
14746 switch (level) {
14747 case 1:
14748 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14749 break;
14751 default:
14752 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14753 break;
14758 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14760 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
14763 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
14765 if (ndr_flags & NDR_SCALARS) {
14766 NDR_CHECK(ndr_push_align(ndr, 5));
14767 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
14768 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
14769 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
14770 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14772 if (ndr_flags & NDR_BUFFERS) {
14773 if (r->document_name) {
14774 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14775 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14776 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14777 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14779 if (r->output_file) {
14780 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14781 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14782 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14783 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14785 if (r->datatype) {
14786 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14787 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
14788 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14789 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14792 return NDR_ERR_SUCCESS;
14795 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
14797 uint32_t _ptr_document_name;
14798 TALLOC_CTX *_mem_save_document_name_0;
14799 uint32_t _ptr_output_file;
14800 TALLOC_CTX *_mem_save_output_file_0;
14801 uint32_t _ptr_datatype;
14802 TALLOC_CTX *_mem_save_datatype_0;
14803 if (ndr_flags & NDR_SCALARS) {
14804 NDR_CHECK(ndr_pull_align(ndr, 5));
14805 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
14806 if (_ptr_document_name) {
14807 NDR_PULL_ALLOC(ndr, r->document_name);
14808 } else {
14809 r->document_name = NULL;
14811 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
14812 if (_ptr_output_file) {
14813 NDR_PULL_ALLOC(ndr, r->output_file);
14814 } else {
14815 r->output_file = NULL;
14817 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14818 if (_ptr_datatype) {
14819 NDR_PULL_ALLOC(ndr, r->datatype);
14820 } else {
14821 r->datatype = NULL;
14823 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14825 if (ndr_flags & NDR_BUFFERS) {
14826 if (r->document_name) {
14827 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14828 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
14829 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
14830 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
14831 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
14832 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));
14834 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
14835 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
14836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
14838 if (r->output_file) {
14839 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14840 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
14841 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
14842 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
14843 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
14844 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));
14846 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
14847 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
14848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
14850 if (r->datatype) {
14851 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14852 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
14853 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
14854 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
14855 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
14856 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));
14858 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
14859 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
14860 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14863 return NDR_ERR_SUCCESS;
14866 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
14868 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
14869 ndr->depth++;
14870 ndr_print_ptr(ndr, "document_name", r->document_name);
14871 ndr->depth++;
14872 if (r->document_name) {
14873 ndr_print_string(ndr, "document_name", r->document_name);
14875 ndr->depth--;
14876 ndr_print_ptr(ndr, "output_file", r->output_file);
14877 ndr->depth++;
14878 if (r->output_file) {
14879 ndr_print_string(ndr, "output_file", r->output_file);
14881 ndr->depth--;
14882 ndr_print_ptr(ndr, "datatype", r->datatype);
14883 ndr->depth++;
14884 if (r->datatype) {
14885 ndr_print_string(ndr, "datatype", r->datatype);
14887 ndr->depth--;
14888 ndr->depth--;
14891 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
14893 if (ndr_flags & NDR_SCALARS) {
14894 int level = ndr_push_get_switch_value(ndr, r);
14895 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14896 NDR_CHECK(ndr_push_union_align(ndr, 5));
14897 switch (level) {
14898 case 1: {
14899 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
14900 break; }
14902 case 2: {
14903 break; }
14905 case 3: {
14906 break; }
14908 default: {
14909 break; }
14913 if (ndr_flags & NDR_BUFFERS) {
14914 int level = ndr_push_get_switch_value(ndr, r);
14915 switch (level) {
14916 case 1:
14917 if (r->info1) {
14918 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14920 break;
14922 case 2:
14923 break;
14925 case 3:
14926 break;
14928 default:
14929 break;
14933 return NDR_ERR_SUCCESS;
14936 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
14938 int level;
14939 uint32_t _level;
14940 TALLOC_CTX *_mem_save_info1_0;
14941 level = ndr_pull_get_switch_value(ndr, r);
14942 if (ndr_flags & NDR_SCALARS) {
14943 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14944 if (_level != level) {
14945 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
14947 NDR_CHECK(ndr_pull_union_align(ndr, 5));
14948 switch (level) {
14949 case 1: {
14950 uint32_t _ptr_info1;
14951 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
14952 if (_ptr_info1) {
14953 NDR_PULL_ALLOC(ndr, r->info1);
14954 } else {
14955 r->info1 = NULL;
14957 break; }
14959 case 2: {
14960 break; }
14962 case 3: {
14963 break; }
14965 default: {
14966 break; }
14970 if (ndr_flags & NDR_BUFFERS) {
14971 switch (level) {
14972 case 1:
14973 if (r->info1) {
14974 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14975 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
14976 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
14979 break;
14981 case 2:
14982 break;
14984 case 3:
14985 break;
14987 default:
14988 break;
14992 return NDR_ERR_SUCCESS;
14995 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
14997 int level;
14998 level = ndr_print_get_switch_value(ndr, r);
14999 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
15000 switch (level) {
15001 case 1:
15002 ndr_print_ptr(ndr, "info1", r->info1);
15003 ndr->depth++;
15004 if (r->info1) {
15005 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
15007 ndr->depth--;
15008 break;
15010 case 2:
15011 break;
15013 case 3:
15014 break;
15016 default:
15017 break;
15022 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
15024 if (ndr_flags & NDR_SCALARS) {
15025 NDR_CHECK(ndr_push_align(ndr, 4));
15026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
15027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15032 uint32_t _flags_save_string = ndr->flags;
15033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15035 struct ndr_push *_ndr_extra_string;
15036 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15037 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15038 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15040 ndr->flags = _flags_save_string;
15042 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15044 if (ndr_flags & NDR_BUFFERS) {
15046 return NDR_ERR_SUCCESS;
15049 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
15051 if (ndr_flags & NDR_SCALARS) {
15052 NDR_CHECK(ndr_pull_align(ndr, 4));
15053 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15054 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15055 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15056 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15057 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15059 uint32_t _flags_save_string = ndr->flags;
15060 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15062 struct ndr_pull *_ndr_extra_string;
15063 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15064 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15065 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15067 ndr->flags = _flags_save_string;
15069 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15071 if (ndr_flags & NDR_BUFFERS) {
15073 return NDR_ERR_SUCCESS;
15076 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
15078 ndr_print_struct(ndr, name, "spoolss_OSVersion");
15079 ndr->depth++;
15080 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);
15081 ndr_print_uint32(ndr, "major", r->major);
15082 ndr_print_uint32(ndr, "minor", r->minor);
15083 ndr_print_uint32(ndr, "build", r->build);
15084 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15085 ndr_print_string(ndr, "extra_string", r->extra_string);
15086 ndr->depth--;
15089 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
15091 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
15094 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
15096 if (ndr_flags & NDR_SCALARS) {
15097 NDR_CHECK(ndr_push_align(ndr, 4));
15098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
15099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15104 uint32_t _flags_save_string = ndr->flags;
15105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15107 struct ndr_push *_ndr_extra_string;
15108 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15109 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15110 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15112 ndr->flags = _flags_save_string;
15114 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
15115 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
15116 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
15117 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
15118 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
15119 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15121 if (ndr_flags & NDR_BUFFERS) {
15123 return NDR_ERR_SUCCESS;
15126 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
15128 if (ndr_flags & NDR_SCALARS) {
15129 NDR_CHECK(ndr_pull_align(ndr, 4));
15130 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15131 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15132 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15133 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15134 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15136 uint32_t _flags_save_string = ndr->flags;
15137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15139 struct ndr_pull *_ndr_extra_string;
15140 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15141 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15142 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15144 ndr->flags = _flags_save_string;
15146 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
15147 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
15148 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
15149 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
15150 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
15151 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15153 if (ndr_flags & NDR_BUFFERS) {
15155 return NDR_ERR_SUCCESS;
15158 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
15160 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
15161 ndr->depth++;
15162 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);
15163 ndr_print_uint32(ndr, "major", r->major);
15164 ndr_print_uint32(ndr, "minor", r->minor);
15165 ndr_print_uint32(ndr, "build", r->build);
15166 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15167 ndr_print_string(ndr, "extra_string", r->extra_string);
15168 ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
15169 ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
15170 ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
15171 ndr_print_uint8(ndr, "product_type", r->product_type);
15172 ndr_print_uint8(ndr, "reserved", r->reserved);
15173 ndr->depth--;
15176 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
15178 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
15181 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
15183 if (ndr_flags & NDR_SCALARS) {
15184 int level = ndr_push_get_switch_value(ndr, r);
15185 NDR_CHECK(ndr_push_union_align(ndr, 4));
15186 switch (level) {
15187 case REG_NONE: {
15188 break; }
15190 case REG_SZ: {
15192 uint32_t _flags_save_string = ndr->flags;
15193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15194 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
15195 ndr->flags = _flags_save_string;
15197 break; }
15199 case REG_BINARY: {
15201 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15202 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15203 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
15204 ndr->flags = _flags_save_DATA_BLOB;
15206 break; }
15208 case REG_DWORD: {
15209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
15210 break; }
15212 case REG_MULTI_SZ: {
15214 uint32_t _flags_save_string_array = ndr->flags;
15215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15216 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
15217 ndr->flags = _flags_save_string_array;
15219 break; }
15221 default: {
15223 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15224 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15225 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
15226 ndr->flags = _flags_save_DATA_BLOB;
15228 break; }
15232 if (ndr_flags & NDR_BUFFERS) {
15233 int level = ndr_push_get_switch_value(ndr, r);
15234 switch (level) {
15235 case REG_NONE:
15236 break;
15238 case REG_SZ:
15239 break;
15241 case REG_BINARY:
15242 break;
15244 case REG_DWORD:
15245 break;
15247 case REG_MULTI_SZ:
15248 break;
15250 default:
15251 break;
15255 return NDR_ERR_SUCCESS;
15258 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
15260 int level;
15261 level = ndr_pull_get_switch_value(ndr, r);
15262 if (ndr_flags & NDR_SCALARS) {
15263 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15264 switch (level) {
15265 case REG_NONE: {
15266 break; }
15268 case REG_SZ: {
15270 uint32_t _flags_save_string = ndr->flags;
15271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15272 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
15273 ndr->flags = _flags_save_string;
15275 break; }
15277 case REG_BINARY: {
15279 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15280 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15281 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
15282 ndr->flags = _flags_save_DATA_BLOB;
15284 break; }
15286 case REG_DWORD: {
15287 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
15288 break; }
15290 case REG_MULTI_SZ: {
15292 uint32_t _flags_save_string_array = ndr->flags;
15293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15294 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
15295 ndr->flags = _flags_save_string_array;
15297 break; }
15299 default: {
15301 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15303 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
15304 ndr->flags = _flags_save_DATA_BLOB;
15306 break; }
15310 if (ndr_flags & NDR_BUFFERS) {
15311 switch (level) {
15312 case REG_NONE:
15313 break;
15315 case REG_SZ:
15316 break;
15318 case REG_BINARY:
15319 break;
15321 case REG_DWORD:
15322 break;
15324 case REG_MULTI_SZ:
15325 break;
15327 default:
15328 break;
15332 return NDR_ERR_SUCCESS;
15335 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
15337 int level;
15338 level = ndr_print_get_switch_value(ndr, r);
15339 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
15340 switch (level) {
15341 case REG_NONE:
15342 break;
15344 case REG_SZ:
15345 ndr_print_string(ndr, "string", r->string);
15346 break;
15348 case REG_BINARY:
15349 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
15350 break;
15352 case REG_DWORD:
15353 ndr_print_uint32(ndr, "value", r->value);
15354 break;
15356 case REG_MULTI_SZ:
15357 ndr_print_string_array(ndr, "string_array", r->string_array);
15358 break;
15360 default:
15361 ndr_print_DATA_BLOB(ndr, "data", r->data);
15362 break;
15367 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15369 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
15372 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
15374 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
15375 return NDR_ERR_SUCCESS;
15378 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
15380 uint32_t v;
15381 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
15382 *r = v;
15383 return NDR_ERR_SUCCESS;
15386 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
15388 const char *val = NULL;
15390 switch (r) {
15391 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
15392 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
15393 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
15395 ndr_print_enum(ndr, name, "ENUM", val, r);
15398 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
15400 if (ndr_flags & NDR_SCALARS) {
15401 NDR_CHECK(ndr_push_align(ndr, 4));
15402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
15403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
15404 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15406 if (ndr_flags & NDR_BUFFERS) {
15408 return NDR_ERR_SUCCESS;
15411 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
15413 if (ndr_flags & NDR_SCALARS) {
15414 NDR_CHECK(ndr_pull_align(ndr, 4));
15415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
15416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
15417 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15419 if (ndr_flags & NDR_BUFFERS) {
15421 return NDR_ERR_SUCCESS;
15424 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
15426 ndr_print_struct(ndr, name, "spoolss_FormSize");
15427 ndr->depth++;
15428 ndr_print_uint32(ndr, "width", r->width);
15429 ndr_print_uint32(ndr, "height", r->height);
15430 ndr->depth--;
15433 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
15435 if (ndr_flags & NDR_SCALARS) {
15436 NDR_CHECK(ndr_push_align(ndr, 4));
15437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
15438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
15439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
15440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
15441 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15443 if (ndr_flags & NDR_BUFFERS) {
15445 return NDR_ERR_SUCCESS;
15448 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
15450 if (ndr_flags & NDR_SCALARS) {
15451 NDR_CHECK(ndr_pull_align(ndr, 4));
15452 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
15453 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
15454 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
15455 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
15456 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15458 if (ndr_flags & NDR_BUFFERS) {
15460 return NDR_ERR_SUCCESS;
15463 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
15465 ndr_print_struct(ndr, name, "spoolss_FormArea");
15466 ndr->depth++;
15467 ndr_print_uint32(ndr, "left", r->left);
15468 ndr_print_uint32(ndr, "top", r->top);
15469 ndr_print_uint32(ndr, "right", r->right);
15470 ndr_print_uint32(ndr, "bottom", r->bottom);
15471 ndr->depth--;
15474 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
15476 if (ndr_flags & NDR_SCALARS) {
15477 NDR_CHECK(ndr_push_align(ndr, 5));
15478 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15480 uint32_t _flags_save_string = ndr->flags;
15481 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15482 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15483 ndr->flags = _flags_save_string;
15485 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15486 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15487 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15489 if (ndr_flags & NDR_BUFFERS) {
15491 uint32_t _flags_save_string = ndr->flags;
15492 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15493 if (r->form_name) {
15494 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15495 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15497 ndr->flags = _flags_save_string;
15500 return NDR_ERR_SUCCESS;
15503 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
15505 uint32_t _ptr_form_name;
15506 TALLOC_CTX *_mem_save_form_name_0;
15507 if (ndr_flags & NDR_SCALARS) {
15508 NDR_CHECK(ndr_pull_align(ndr, 5));
15509 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15511 uint32_t _flags_save_string = ndr->flags;
15512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15513 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15514 if (_ptr_form_name) {
15515 NDR_PULL_ALLOC(ndr, r->form_name);
15516 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15517 } else {
15518 r->form_name = NULL;
15520 ndr->flags = _flags_save_string;
15522 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15523 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15524 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15526 if (ndr_flags & NDR_BUFFERS) {
15528 uint32_t _flags_save_string = ndr->flags;
15529 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15530 if (r->form_name) {
15531 uint32_t _relative_save_offset;
15532 _relative_save_offset = ndr->offset;
15533 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15534 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15535 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15536 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15538 ndr->offset = _relative_save_offset;
15540 ndr->flags = _flags_save_string;
15543 return NDR_ERR_SUCCESS;
15546 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
15548 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
15549 ndr->depth++;
15550 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15551 ndr_print_ptr(ndr, "form_name", r->form_name);
15552 ndr->depth++;
15553 if (r->form_name) {
15554 ndr_print_string(ndr, "form_name", r->form_name);
15556 ndr->depth--;
15557 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15558 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15559 ndr->depth--;
15562 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15564 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
15567 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15570 return NDR_ERR_SUCCESS;
15573 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15575 uint32_t v;
15576 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15577 *r = v;
15578 return NDR_ERR_SUCCESS;
15581 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
15583 ndr_print_uint32(ndr, name, r);
15584 ndr->depth++;
15585 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
15586 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
15587 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
15588 ndr->depth--;
15591 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
15593 if (ndr_flags & NDR_SCALARS) {
15594 NDR_CHECK(ndr_push_align(ndr, 5));
15595 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15597 uint32_t _flags_save_string = ndr->flags;
15598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15599 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15600 ndr->flags = _flags_save_string;
15602 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15603 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15605 uint32_t _flags_save_string = ndr->flags;
15606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15607 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
15608 ndr->flags = _flags_save_string;
15610 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15612 uint32_t _flags_save_string = ndr->flags;
15613 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15614 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
15615 ndr->flags = _flags_save_string;
15617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15619 uint32_t _flags_save_string = ndr->flags;
15620 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15621 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
15622 ndr->flags = _flags_save_string;
15624 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lang_id));
15625 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unused));
15626 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15628 if (ndr_flags & NDR_BUFFERS) {
15630 uint32_t _flags_save_string = ndr->flags;
15631 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15632 if (r->form_name) {
15633 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15634 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15636 ndr->flags = _flags_save_string;
15639 uint32_t _flags_save_string = ndr->flags;
15640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15641 if (r->keyword) {
15642 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
15643 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
15645 ndr->flags = _flags_save_string;
15648 uint32_t _flags_save_string = ndr->flags;
15649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15650 if (r->mui_dll) {
15651 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
15652 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
15654 ndr->flags = _flags_save_string;
15657 uint32_t _flags_save_string = ndr->flags;
15658 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15659 if (r->display_name) {
15660 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
15661 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
15663 ndr->flags = _flags_save_string;
15666 return NDR_ERR_SUCCESS;
15669 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
15671 uint32_t _ptr_form_name;
15672 TALLOC_CTX *_mem_save_form_name_0;
15673 uint32_t _ptr_keyword;
15674 TALLOC_CTX *_mem_save_keyword_0;
15675 uint32_t _ptr_mui_dll;
15676 TALLOC_CTX *_mem_save_mui_dll_0;
15677 uint32_t _ptr_display_name;
15678 TALLOC_CTX *_mem_save_display_name_0;
15679 if (ndr_flags & NDR_SCALARS) {
15680 NDR_CHECK(ndr_pull_align(ndr, 5));
15681 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15683 uint32_t _flags_save_string = ndr->flags;
15684 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15686 if (_ptr_form_name) {
15687 NDR_PULL_ALLOC(ndr, r->form_name);
15688 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15689 } else {
15690 r->form_name = NULL;
15692 ndr->flags = _flags_save_string;
15694 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15695 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15697 uint32_t _flags_save_string = ndr->flags;
15698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15700 if (_ptr_keyword) {
15701 NDR_PULL_ALLOC(ndr, r->keyword);
15702 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
15703 } else {
15704 r->keyword = NULL;
15706 ndr->flags = _flags_save_string;
15708 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15710 uint32_t _flags_save_string = ndr->flags;
15711 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15712 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15713 if (_ptr_mui_dll) {
15714 NDR_PULL_ALLOC(ndr, r->mui_dll);
15715 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
15716 } else {
15717 r->mui_dll = NULL;
15719 ndr->flags = _flags_save_string;
15721 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15723 uint32_t _flags_save_string = ndr->flags;
15724 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15725 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15726 if (_ptr_display_name) {
15727 NDR_PULL_ALLOC(ndr, r->display_name);
15728 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
15729 } else {
15730 r->display_name = NULL;
15732 ndr->flags = _flags_save_string;
15734 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lang_id));
15735 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unused));
15736 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15738 if (ndr_flags & NDR_BUFFERS) {
15740 uint32_t _flags_save_string = ndr->flags;
15741 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15742 if (r->form_name) {
15743 uint32_t _relative_save_offset;
15744 _relative_save_offset = ndr->offset;
15745 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15746 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15747 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15748 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15749 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15750 ndr->offset = _relative_save_offset;
15752 ndr->flags = _flags_save_string;
15755 uint32_t _flags_save_string = ndr->flags;
15756 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15757 if (r->keyword) {
15758 uint32_t _relative_save_offset;
15759 _relative_save_offset = ndr->offset;
15760 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
15761 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15762 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15763 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
15764 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15765 ndr->offset = _relative_save_offset;
15767 ndr->flags = _flags_save_string;
15770 uint32_t _flags_save_string = ndr->flags;
15771 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15772 if (r->mui_dll) {
15773 uint32_t _relative_save_offset;
15774 _relative_save_offset = ndr->offset;
15775 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
15776 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15777 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15778 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
15779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15780 ndr->offset = _relative_save_offset;
15782 ndr->flags = _flags_save_string;
15785 uint32_t _flags_save_string = ndr->flags;
15786 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15787 if (r->display_name) {
15788 uint32_t _relative_save_offset;
15789 _relative_save_offset = ndr->offset;
15790 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
15791 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15792 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15793 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
15794 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15795 ndr->offset = _relative_save_offset;
15797 ndr->flags = _flags_save_string;
15800 return NDR_ERR_SUCCESS;
15803 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
15805 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
15806 ndr->depth++;
15807 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15808 ndr_print_ptr(ndr, "form_name", r->form_name);
15809 ndr->depth++;
15810 if (r->form_name) {
15811 ndr_print_string(ndr, "form_name", r->form_name);
15813 ndr->depth--;
15814 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15815 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15816 ndr_print_ptr(ndr, "keyword", r->keyword);
15817 ndr->depth++;
15818 if (r->keyword) {
15819 ndr_print_string(ndr, "keyword", r->keyword);
15821 ndr->depth--;
15822 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15823 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15824 ndr->depth++;
15825 if (r->mui_dll) {
15826 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15828 ndr->depth--;
15829 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15830 ndr_print_ptr(ndr, "display_name", r->display_name);
15831 ndr->depth++;
15832 if (r->display_name) {
15833 ndr_print_string(ndr, "display_name", r->display_name);
15835 ndr->depth--;
15836 ndr_print_uint16(ndr, "lang_id", r->lang_id);
15837 ndr_print_uint16(ndr, "unused", r->unused);
15838 ndr->depth--;
15841 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
15843 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
15846 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
15848 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15849 if (ndr_flags & NDR_SCALARS) {
15850 int level = ndr_push_get_switch_value(ndr, r);
15851 NDR_CHECK(ndr_push_union_align(ndr, 5));
15852 switch (level) {
15853 case 1: {
15854 NDR_CHECK(ndr_push_align(ndr, 5));
15855 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15856 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15857 break; }
15859 case 2: {
15860 NDR_CHECK(ndr_push_align(ndr, 5));
15861 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15862 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15863 break; }
15865 default: {
15866 break; }
15870 if (ndr_flags & NDR_BUFFERS) {
15871 int level = ndr_push_get_switch_value(ndr, r);
15872 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15873 switch (level) {
15874 case 1:
15875 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15876 break;
15878 case 2:
15879 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15880 break;
15882 default:
15883 break;
15887 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15888 return NDR_ERR_SUCCESS;
15891 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
15893 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15894 int level;
15895 level = ndr_pull_get_switch_value(ndr, r);
15896 if (ndr_flags & NDR_SCALARS) {
15897 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15898 switch (level) {
15899 case 1: {
15900 NDR_CHECK(ndr_pull_align(ndr, 5));
15901 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15902 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15903 break; }
15905 case 2: {
15906 NDR_CHECK(ndr_pull_align(ndr, 5));
15907 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15908 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15909 break; }
15911 default: {
15912 break; }
15916 if (ndr_flags & NDR_BUFFERS) {
15917 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15918 switch (level) {
15919 case 1:
15920 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15921 break;
15923 case 2:
15924 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15925 break;
15927 default:
15928 break;
15932 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15933 return NDR_ERR_SUCCESS;
15936 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
15938 int level;
15939 level = ndr_print_get_switch_value(ndr, r);
15940 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
15941 switch (level) {
15942 case 1:
15943 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
15944 break;
15946 case 2:
15947 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
15948 break;
15950 default:
15951 break;
15956 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15958 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
15961 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
15963 if (ndr_flags & NDR_SCALARS) {
15964 NDR_CHECK(ndr_push_align(ndr, 5));
15965 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15966 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15967 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15968 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15969 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15971 if (ndr_flags & NDR_BUFFERS) {
15972 if (r->form_name) {
15973 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15974 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15975 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15976 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15979 return NDR_ERR_SUCCESS;
15982 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
15984 uint32_t _ptr_form_name;
15985 TALLOC_CTX *_mem_save_form_name_0;
15986 if (ndr_flags & NDR_SCALARS) {
15987 NDR_CHECK(ndr_pull_align(ndr, 5));
15988 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15989 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15990 if (_ptr_form_name) {
15991 NDR_PULL_ALLOC(ndr, r->form_name);
15992 } else {
15993 r->form_name = NULL;
15995 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15996 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15997 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15999 if (ndr_flags & NDR_BUFFERS) {
16000 if (r->form_name) {
16001 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16002 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16003 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16004 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16005 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16006 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));
16008 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16009 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16013 return NDR_ERR_SUCCESS;
16016 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
16018 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
16019 ndr->depth++;
16020 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16021 ndr_print_ptr(ndr, "form_name", r->form_name);
16022 ndr->depth++;
16023 if (r->form_name) {
16024 ndr_print_string(ndr, "form_name", r->form_name);
16026 ndr->depth--;
16027 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16028 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16029 ndr->depth--;
16032 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
16034 if (ndr_flags & NDR_SCALARS) {
16035 NDR_CHECK(ndr_push_align(ndr, 5));
16036 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16037 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16038 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16039 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16040 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
16041 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16042 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
16043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16044 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
16045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
16046 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16048 if (ndr_flags & NDR_BUFFERS) {
16049 if (r->form_name) {
16050 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16051 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16052 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16053 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16055 if (r->keyword) {
16056 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16057 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16058 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16059 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
16061 if (r->mui_dll) {
16062 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16063 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16064 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16065 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16067 if (r->display_name) {
16068 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16069 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16070 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16071 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16074 return NDR_ERR_SUCCESS;
16077 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
16079 uint32_t _ptr_form_name;
16080 TALLOC_CTX *_mem_save_form_name_0;
16081 uint32_t _ptr_keyword;
16082 TALLOC_CTX *_mem_save_keyword_0;
16083 uint32_t _ptr_mui_dll;
16084 TALLOC_CTX *_mem_save_mui_dll_0;
16085 uint32_t _ptr_display_name;
16086 TALLOC_CTX *_mem_save_display_name_0;
16087 if (ndr_flags & NDR_SCALARS) {
16088 NDR_CHECK(ndr_pull_align(ndr, 5));
16089 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16090 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16091 if (_ptr_form_name) {
16092 NDR_PULL_ALLOC(ndr, r->form_name);
16093 } else {
16094 r->form_name = NULL;
16096 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16097 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16098 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16099 if (_ptr_keyword) {
16100 NDR_PULL_ALLOC(ndr, r->keyword);
16101 } else {
16102 r->keyword = NULL;
16104 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16106 if (_ptr_mui_dll) {
16107 NDR_PULL_ALLOC(ndr, r->mui_dll);
16108 } else {
16109 r->mui_dll = NULL;
16111 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16112 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16113 if (_ptr_display_name) {
16114 NDR_PULL_ALLOC(ndr, r->display_name);
16115 } else {
16116 r->display_name = NULL;
16118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16119 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16121 if (ndr_flags & NDR_BUFFERS) {
16122 if (r->form_name) {
16123 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16124 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16125 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16126 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16127 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16128 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));
16130 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16131 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16134 if (r->keyword) {
16135 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16136 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16137 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
16138 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
16139 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
16140 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));
16142 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
16143 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
16144 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16146 if (r->mui_dll) {
16147 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16148 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16149 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
16150 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
16151 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
16152 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));
16154 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
16155 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
16156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16158 if (r->display_name) {
16159 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16160 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16161 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
16162 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
16163 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
16164 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));
16166 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
16167 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
16168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16171 return NDR_ERR_SUCCESS;
16174 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
16176 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
16177 ndr->depth++;
16178 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16179 ndr_print_ptr(ndr, "form_name", r->form_name);
16180 ndr->depth++;
16181 if (r->form_name) {
16182 ndr_print_string(ndr, "form_name", r->form_name);
16184 ndr->depth--;
16185 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16186 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16187 ndr_print_ptr(ndr, "keyword", r->keyword);
16188 ndr->depth++;
16189 if (r->keyword) {
16190 ndr_print_string(ndr, "keyword", r->keyword);
16192 ndr->depth--;
16193 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16194 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16195 ndr->depth++;
16196 if (r->mui_dll) {
16197 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16199 ndr->depth--;
16200 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16201 ndr_print_ptr(ndr, "display_name", r->display_name);
16202 ndr->depth++;
16203 if (r->display_name) {
16204 ndr_print_string(ndr, "display_name", r->display_name);
16206 ndr->depth--;
16207 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16208 ndr->depth--;
16211 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
16213 if (ndr_flags & NDR_SCALARS) {
16214 int level = ndr_push_get_switch_value(ndr, r);
16215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
16216 NDR_CHECK(ndr_push_union_align(ndr, 5));
16217 switch (level) {
16218 case 1: {
16219 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
16220 break; }
16222 case 2: {
16223 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
16224 break; }
16226 default:
16227 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16230 if (ndr_flags & NDR_BUFFERS) {
16231 int level = ndr_push_get_switch_value(ndr, r);
16232 switch (level) {
16233 case 1:
16234 if (r->info1) {
16235 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16237 break;
16239 case 2:
16240 if (r->info2) {
16241 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16243 break;
16245 default:
16246 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16249 return NDR_ERR_SUCCESS;
16252 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
16254 int level;
16255 uint32_t _level;
16256 TALLOC_CTX *_mem_save_info1_0;
16257 TALLOC_CTX *_mem_save_info2_0;
16258 level = ndr_pull_get_switch_value(ndr, r);
16259 if (ndr_flags & NDR_SCALARS) {
16260 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16261 if (_level != level) {
16262 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
16264 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16265 switch (level) {
16266 case 1: {
16267 uint32_t _ptr_info1;
16268 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16269 if (_ptr_info1) {
16270 NDR_PULL_ALLOC(ndr, r->info1);
16271 } else {
16272 r->info1 = NULL;
16274 break; }
16276 case 2: {
16277 uint32_t _ptr_info2;
16278 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
16279 if (_ptr_info2) {
16280 NDR_PULL_ALLOC(ndr, r->info2);
16281 } else {
16282 r->info2 = NULL;
16284 break; }
16286 default:
16287 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16290 if (ndr_flags & NDR_BUFFERS) {
16291 switch (level) {
16292 case 1:
16293 if (r->info1) {
16294 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
16295 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
16296 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
16299 break;
16301 case 2:
16302 if (r->info2) {
16303 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
16304 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
16305 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
16308 break;
16310 default:
16311 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16314 return NDR_ERR_SUCCESS;
16317 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
16319 int level;
16320 level = ndr_print_get_switch_value(ndr, r);
16321 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
16322 switch (level) {
16323 case 1:
16324 ndr_print_ptr(ndr, "info1", r->info1);
16325 ndr->depth++;
16326 if (r->info1) {
16327 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
16329 ndr->depth--;
16330 break;
16332 case 2:
16333 ndr_print_ptr(ndr, "info2", r->info2);
16334 ndr->depth++;
16335 if (r->info2) {
16336 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
16338 ndr->depth--;
16339 break;
16341 default:
16342 ndr_print_bad_level(ndr, name, level);
16346 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
16348 if (ndr_flags & NDR_SCALARS) {
16349 NDR_CHECK(ndr_push_align(ndr, 5));
16351 uint32_t _flags_save_string = ndr->flags;
16352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16353 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16354 ndr->flags = _flags_save_string;
16356 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16358 if (ndr_flags & NDR_BUFFERS) {
16360 uint32_t _flags_save_string = ndr->flags;
16361 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16362 if (r->port_name) {
16363 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16364 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16366 ndr->flags = _flags_save_string;
16369 return NDR_ERR_SUCCESS;
16372 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
16374 uint32_t _ptr_port_name;
16375 TALLOC_CTX *_mem_save_port_name_0;
16376 if (ndr_flags & NDR_SCALARS) {
16377 NDR_CHECK(ndr_pull_align(ndr, 5));
16379 uint32_t _flags_save_string = ndr->flags;
16380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16381 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16382 if (_ptr_port_name) {
16383 NDR_PULL_ALLOC(ndr, r->port_name);
16384 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16385 } else {
16386 r->port_name = NULL;
16388 ndr->flags = _flags_save_string;
16390 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16392 if (ndr_flags & NDR_BUFFERS) {
16394 uint32_t _flags_save_string = ndr->flags;
16395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16396 if (r->port_name) {
16397 uint32_t _relative_save_offset;
16398 _relative_save_offset = ndr->offset;
16399 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16400 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16401 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16402 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16404 ndr->offset = _relative_save_offset;
16406 ndr->flags = _flags_save_string;
16409 return NDR_ERR_SUCCESS;
16412 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
16414 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
16415 ndr->depth++;
16416 ndr_print_ptr(ndr, "port_name", r->port_name);
16417 ndr->depth++;
16418 if (r->port_name) {
16419 ndr_print_string(ndr, "port_name", r->port_name);
16421 ndr->depth--;
16422 ndr->depth--;
16425 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16427 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
16430 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16433 return NDR_ERR_SUCCESS;
16436 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16438 uint32_t v;
16439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16440 *r = v;
16441 return NDR_ERR_SUCCESS;
16444 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
16446 ndr_print_uint32(ndr, name, r);
16447 ndr->depth++;
16448 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
16449 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
16450 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
16451 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
16452 ndr->depth--;
16455 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
16457 if (ndr_flags & NDR_SCALARS) {
16458 NDR_CHECK(ndr_push_align(ndr, 5));
16460 uint32_t _flags_save_string = ndr->flags;
16461 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16462 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16463 ndr->flags = _flags_save_string;
16466 uint32_t _flags_save_string = ndr->flags;
16467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16468 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16469 ndr->flags = _flags_save_string;
16472 uint32_t _flags_save_string = ndr->flags;
16473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16474 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
16475 ndr->flags = _flags_save_string;
16477 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
16478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
16479 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16481 if (ndr_flags & NDR_BUFFERS) {
16483 uint32_t _flags_save_string = ndr->flags;
16484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16485 if (r->port_name) {
16486 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16487 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16489 ndr->flags = _flags_save_string;
16492 uint32_t _flags_save_string = ndr->flags;
16493 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16494 if (r->monitor_name) {
16495 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16496 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16498 ndr->flags = _flags_save_string;
16501 uint32_t _flags_save_string = ndr->flags;
16502 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16503 if (r->description) {
16504 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
16505 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
16507 ndr->flags = _flags_save_string;
16510 return NDR_ERR_SUCCESS;
16513 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
16515 uint32_t _ptr_port_name;
16516 TALLOC_CTX *_mem_save_port_name_0;
16517 uint32_t _ptr_monitor_name;
16518 TALLOC_CTX *_mem_save_monitor_name_0;
16519 uint32_t _ptr_description;
16520 TALLOC_CTX *_mem_save_description_0;
16521 if (ndr_flags & NDR_SCALARS) {
16522 NDR_CHECK(ndr_pull_align(ndr, 5));
16524 uint32_t _flags_save_string = ndr->flags;
16525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16526 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16527 if (_ptr_port_name) {
16528 NDR_PULL_ALLOC(ndr, r->port_name);
16529 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16530 } else {
16531 r->port_name = NULL;
16533 ndr->flags = _flags_save_string;
16536 uint32_t _flags_save_string = ndr->flags;
16537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16538 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16539 if (_ptr_monitor_name) {
16540 NDR_PULL_ALLOC(ndr, r->monitor_name);
16541 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16542 } else {
16543 r->monitor_name = NULL;
16545 ndr->flags = _flags_save_string;
16548 uint32_t _flags_save_string = ndr->flags;
16549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16550 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
16551 if (_ptr_description) {
16552 NDR_PULL_ALLOC(ndr, r->description);
16553 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
16554 } else {
16555 r->description = NULL;
16557 ndr->flags = _flags_save_string;
16559 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
16560 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
16561 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16563 if (ndr_flags & NDR_BUFFERS) {
16565 uint32_t _flags_save_string = ndr->flags;
16566 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16567 if (r->port_name) {
16568 uint32_t _relative_save_offset;
16569 _relative_save_offset = ndr->offset;
16570 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16571 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16572 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16573 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16575 ndr->offset = _relative_save_offset;
16577 ndr->flags = _flags_save_string;
16580 uint32_t _flags_save_string = ndr->flags;
16581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16582 if (r->monitor_name) {
16583 uint32_t _relative_save_offset;
16584 _relative_save_offset = ndr->offset;
16585 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16586 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16587 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16588 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16589 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16590 ndr->offset = _relative_save_offset;
16592 ndr->flags = _flags_save_string;
16595 uint32_t _flags_save_string = ndr->flags;
16596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16597 if (r->description) {
16598 uint32_t _relative_save_offset;
16599 _relative_save_offset = ndr->offset;
16600 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
16601 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
16602 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
16603 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
16604 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
16605 ndr->offset = _relative_save_offset;
16607 ndr->flags = _flags_save_string;
16610 return NDR_ERR_SUCCESS;
16613 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
16615 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
16616 ndr->depth++;
16617 ndr_print_ptr(ndr, "port_name", r->port_name);
16618 ndr->depth++;
16619 if (r->port_name) {
16620 ndr_print_string(ndr, "port_name", r->port_name);
16622 ndr->depth--;
16623 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16624 ndr->depth++;
16625 if (r->monitor_name) {
16626 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16628 ndr->depth--;
16629 ndr_print_ptr(ndr, "description", r->description);
16630 ndr->depth++;
16631 if (r->description) {
16632 ndr_print_string(ndr, "description", r->description);
16634 ndr->depth--;
16635 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
16636 ndr_print_uint32(ndr, "reserved", r->reserved);
16637 ndr->depth--;
16640 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16642 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
16645 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
16647 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
16648 return NDR_ERR_SUCCESS;
16651 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
16653 uint32_t v;
16654 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
16655 *r = v;
16656 return NDR_ERR_SUCCESS;
16659 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
16661 const char *val = NULL;
16663 switch (r) {
16664 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
16665 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
16666 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
16667 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
16668 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16669 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
16670 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
16671 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
16672 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
16673 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
16674 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
16675 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
16676 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
16678 ndr_print_enum(ndr, name, "ENUM", val, r);
16681 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
16683 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
16684 return NDR_ERR_SUCCESS;
16687 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
16689 uint32_t v;
16690 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
16691 *r = v;
16692 return NDR_ERR_SUCCESS;
16695 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
16697 const char *val = NULL;
16699 switch (r) {
16700 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
16701 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
16702 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
16704 ndr_print_enum(ndr, name, "ENUM", val, r);
16707 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
16709 if (ndr_flags & NDR_SCALARS) {
16710 NDR_CHECK(ndr_push_align(ndr, 5));
16711 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
16713 uint32_t _flags_save_string = ndr->flags;
16714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16715 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
16716 ndr->flags = _flags_save_string;
16718 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
16719 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16721 if (ndr_flags & NDR_BUFFERS) {
16723 uint32_t _flags_save_string = ndr->flags;
16724 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16725 if (r->status_string) {
16726 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
16727 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
16729 ndr->flags = _flags_save_string;
16732 return NDR_ERR_SUCCESS;
16735 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
16737 uint32_t _ptr_status_string;
16738 TALLOC_CTX *_mem_save_status_string_0;
16739 if (ndr_flags & NDR_SCALARS) {
16740 NDR_CHECK(ndr_pull_align(ndr, 5));
16741 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
16743 uint32_t _flags_save_string = ndr->flags;
16744 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16745 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
16746 if (_ptr_status_string) {
16747 NDR_PULL_ALLOC(ndr, r->status_string);
16748 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
16749 } else {
16750 r->status_string = NULL;
16752 ndr->flags = _flags_save_string;
16754 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
16755 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16757 if (ndr_flags & NDR_BUFFERS) {
16759 uint32_t _flags_save_string = ndr->flags;
16760 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16761 if (r->status_string) {
16762 uint32_t _relative_save_offset;
16763 _relative_save_offset = ndr->offset;
16764 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
16765 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
16766 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
16767 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
16768 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
16769 ndr->offset = _relative_save_offset;
16771 ndr->flags = _flags_save_string;
16774 return NDR_ERR_SUCCESS;
16777 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
16779 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
16780 ndr->depth++;
16781 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
16782 ndr_print_ptr(ndr, "status_string", r->status_string);
16783 ndr->depth++;
16784 if (r->status_string) {
16785 ndr_print_string(ndr, "status_string", r->status_string);
16787 ndr->depth--;
16788 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
16789 ndr->depth--;
16792 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
16794 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
16797 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
16799 if (ndr_flags & NDR_SCALARS) {
16800 NDR_CHECK(ndr_push_align(ndr, 5));
16802 uint32_t _flags_save_string = ndr->flags;
16803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16804 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16805 ndr->flags = _flags_save_string;
16807 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
16808 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16810 if (ndr_flags & NDR_BUFFERS) {
16812 uint32_t _flags_save_string = ndr->flags;
16813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16814 if (r->port_name) {
16815 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16816 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16818 ndr->flags = _flags_save_string;
16821 return NDR_ERR_SUCCESS;
16824 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
16826 uint32_t _ptr_port_name;
16827 TALLOC_CTX *_mem_save_port_name_0;
16828 if (ndr_flags & NDR_SCALARS) {
16829 NDR_CHECK(ndr_pull_align(ndr, 5));
16831 uint32_t _flags_save_string = ndr->flags;
16832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16833 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16834 if (_ptr_port_name) {
16835 NDR_PULL_ALLOC(ndr, r->port_name);
16836 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16837 } else {
16838 r->port_name = NULL;
16840 ndr->flags = _flags_save_string;
16842 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
16843 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16845 if (ndr_flags & NDR_BUFFERS) {
16847 uint32_t _flags_save_string = ndr->flags;
16848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16849 if (r->port_name) {
16850 uint32_t _relative_save_offset;
16851 _relative_save_offset = ndr->offset;
16852 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16853 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16854 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16855 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16857 ndr->offset = _relative_save_offset;
16859 ndr->flags = _flags_save_string;
16862 return NDR_ERR_SUCCESS;
16865 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
16867 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
16868 ndr->depth++;
16869 ndr_print_ptr(ndr, "port_name", r->port_name);
16870 ndr->depth++;
16871 if (r->port_name) {
16872 ndr_print_string(ndr, "port_name", r->port_name);
16874 ndr->depth--;
16875 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
16876 ndr->depth--;
16879 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
16881 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
16884 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
16886 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16887 if (ndr_flags & NDR_SCALARS) {
16888 int level = ndr_push_get_switch_value(ndr, r);
16889 NDR_CHECK(ndr_push_union_align(ndr, 5));
16890 switch (level) {
16891 case 1: {
16892 NDR_CHECK(ndr_push_align(ndr, 5));
16893 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16894 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16895 break; }
16897 case 2: {
16898 NDR_CHECK(ndr_push_align(ndr, 5));
16899 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16900 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16901 break; }
16903 case 3: {
16904 NDR_CHECK(ndr_push_align(ndr, 5));
16905 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16906 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16907 break; }
16909 case 0xff: {
16910 NDR_CHECK(ndr_push_align(ndr, 5));
16911 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16912 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16913 break; }
16915 default: {
16916 break; }
16920 if (ndr_flags & NDR_BUFFERS) {
16921 int level = ndr_push_get_switch_value(ndr, r);
16922 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16923 switch (level) {
16924 case 1:
16925 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16926 break;
16928 case 2:
16929 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16930 break;
16932 case 3:
16933 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16934 break;
16936 case 0xff:
16937 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16938 break;
16940 default:
16941 break;
16945 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16946 return NDR_ERR_SUCCESS;
16949 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
16951 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16952 int level;
16953 level = ndr_pull_get_switch_value(ndr, r);
16954 if (ndr_flags & NDR_SCALARS) {
16955 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16956 switch (level) {
16957 case 1: {
16958 NDR_CHECK(ndr_pull_align(ndr, 5));
16959 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16960 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16961 break; }
16963 case 2: {
16964 NDR_CHECK(ndr_pull_align(ndr, 5));
16965 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16966 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16967 break; }
16969 case 3: {
16970 NDR_CHECK(ndr_pull_align(ndr, 5));
16971 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16972 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16973 break; }
16975 case 0xff: {
16976 NDR_CHECK(ndr_pull_align(ndr, 5));
16977 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16978 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16979 break; }
16981 default: {
16982 break; }
16986 if (ndr_flags & NDR_BUFFERS) {
16987 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16988 switch (level) {
16989 case 1:
16990 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16991 break;
16993 case 2:
16994 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16995 break;
16997 case 3:
16998 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16999 break;
17001 case 0xff:
17002 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17003 break;
17005 default:
17006 break;
17010 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17011 return NDR_ERR_SUCCESS;
17014 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
17016 int level;
17017 level = ndr_print_get_switch_value(ndr, r);
17018 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
17019 switch (level) {
17020 case 1:
17021 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
17022 break;
17024 case 2:
17025 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
17026 break;
17028 case 3:
17029 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
17030 break;
17032 case 0xff:
17033 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
17034 break;
17036 default:
17037 break;
17042 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
17044 if (ndr_flags & NDR_SCALARS) {
17045 NDR_CHECK(ndr_push_align(ndr, 5));
17047 uint32_t _flags_save_string = ndr->flags;
17048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17049 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17050 ndr->flags = _flags_save_string;
17052 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17054 if (ndr_flags & NDR_BUFFERS) {
17056 uint32_t _flags_save_string = ndr->flags;
17057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17058 if (r->monitor_name) {
17059 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17060 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17062 ndr->flags = _flags_save_string;
17065 return NDR_ERR_SUCCESS;
17068 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
17070 uint32_t _ptr_monitor_name;
17071 TALLOC_CTX *_mem_save_monitor_name_0;
17072 if (ndr_flags & NDR_SCALARS) {
17073 NDR_CHECK(ndr_pull_align(ndr, 5));
17075 uint32_t _flags_save_string = ndr->flags;
17076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17077 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17078 if (_ptr_monitor_name) {
17079 NDR_PULL_ALLOC(ndr, r->monitor_name);
17080 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17081 } else {
17082 r->monitor_name = NULL;
17084 ndr->flags = _flags_save_string;
17086 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17088 if (ndr_flags & NDR_BUFFERS) {
17090 uint32_t _flags_save_string = ndr->flags;
17091 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17092 if (r->monitor_name) {
17093 uint32_t _relative_save_offset;
17094 _relative_save_offset = ndr->offset;
17095 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17096 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17097 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17098 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17100 ndr->offset = _relative_save_offset;
17102 ndr->flags = _flags_save_string;
17105 return NDR_ERR_SUCCESS;
17108 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
17110 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
17111 ndr->depth++;
17112 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17113 ndr->depth++;
17114 if (r->monitor_name) {
17115 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17117 ndr->depth--;
17118 ndr->depth--;
17121 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17123 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
17126 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
17128 if (ndr_flags & NDR_SCALARS) {
17129 NDR_CHECK(ndr_push_align(ndr, 5));
17131 uint32_t _flags_save_string = ndr->flags;
17132 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17133 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17134 ndr->flags = _flags_save_string;
17137 uint32_t _flags_save_string = ndr->flags;
17138 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17139 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
17140 ndr->flags = _flags_save_string;
17143 uint32_t _flags_save_string = ndr->flags;
17144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17145 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
17146 ndr->flags = _flags_save_string;
17148 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17150 if (ndr_flags & NDR_BUFFERS) {
17152 uint32_t _flags_save_string = ndr->flags;
17153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17154 if (r->monitor_name) {
17155 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17156 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17158 ndr->flags = _flags_save_string;
17161 uint32_t _flags_save_string = ndr->flags;
17162 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17163 if (r->environment) {
17164 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
17165 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
17167 ndr->flags = _flags_save_string;
17170 uint32_t _flags_save_string = ndr->flags;
17171 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17172 if (r->dll_name) {
17173 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
17174 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
17176 ndr->flags = _flags_save_string;
17179 return NDR_ERR_SUCCESS;
17182 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
17184 uint32_t _ptr_monitor_name;
17185 TALLOC_CTX *_mem_save_monitor_name_0;
17186 uint32_t _ptr_environment;
17187 TALLOC_CTX *_mem_save_environment_0;
17188 uint32_t _ptr_dll_name;
17189 TALLOC_CTX *_mem_save_dll_name_0;
17190 if (ndr_flags & NDR_SCALARS) {
17191 NDR_CHECK(ndr_pull_align(ndr, 5));
17193 uint32_t _flags_save_string = ndr->flags;
17194 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17195 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17196 if (_ptr_monitor_name) {
17197 NDR_PULL_ALLOC(ndr, r->monitor_name);
17198 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17199 } else {
17200 r->monitor_name = NULL;
17202 ndr->flags = _flags_save_string;
17205 uint32_t _flags_save_string = ndr->flags;
17206 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17207 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17208 if (_ptr_environment) {
17209 NDR_PULL_ALLOC(ndr, r->environment);
17210 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
17211 } else {
17212 r->environment = NULL;
17214 ndr->flags = _flags_save_string;
17217 uint32_t _flags_save_string = ndr->flags;
17218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
17220 if (_ptr_dll_name) {
17221 NDR_PULL_ALLOC(ndr, r->dll_name);
17222 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
17223 } else {
17224 r->dll_name = NULL;
17226 ndr->flags = _flags_save_string;
17228 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17230 if (ndr_flags & NDR_BUFFERS) {
17232 uint32_t _flags_save_string = ndr->flags;
17233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17234 if (r->monitor_name) {
17235 uint32_t _relative_save_offset;
17236 _relative_save_offset = ndr->offset;
17237 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17238 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17239 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17240 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17241 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17242 ndr->offset = _relative_save_offset;
17244 ndr->flags = _flags_save_string;
17247 uint32_t _flags_save_string = ndr->flags;
17248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17249 if (r->environment) {
17250 uint32_t _relative_save_offset;
17251 _relative_save_offset = ndr->offset;
17252 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
17253 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
17254 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
17255 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
17256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
17257 ndr->offset = _relative_save_offset;
17259 ndr->flags = _flags_save_string;
17262 uint32_t _flags_save_string = ndr->flags;
17263 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17264 if (r->dll_name) {
17265 uint32_t _relative_save_offset;
17266 _relative_save_offset = ndr->offset;
17267 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
17268 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17269 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
17270 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
17271 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
17272 ndr->offset = _relative_save_offset;
17274 ndr->flags = _flags_save_string;
17277 return NDR_ERR_SUCCESS;
17280 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
17282 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
17283 ndr->depth++;
17284 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17285 ndr->depth++;
17286 if (r->monitor_name) {
17287 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17289 ndr->depth--;
17290 ndr_print_ptr(ndr, "environment", r->environment);
17291 ndr->depth++;
17292 if (r->environment) {
17293 ndr_print_string(ndr, "environment", r->environment);
17295 ndr->depth--;
17296 ndr_print_ptr(ndr, "dll_name", r->dll_name);
17297 ndr->depth++;
17298 if (r->dll_name) {
17299 ndr_print_string(ndr, "dll_name", r->dll_name);
17301 ndr->depth--;
17302 ndr->depth--;
17305 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17307 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
17310 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
17312 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17313 if (ndr_flags & NDR_SCALARS) {
17314 int level = ndr_push_get_switch_value(ndr, r);
17315 NDR_CHECK(ndr_push_union_align(ndr, 5));
17316 switch (level) {
17317 case 1: {
17318 NDR_CHECK(ndr_push_align(ndr, 5));
17319 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17320 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17321 break; }
17323 case 2: {
17324 NDR_CHECK(ndr_push_align(ndr, 5));
17325 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17326 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17327 break; }
17329 default: {
17330 break; }
17334 if (ndr_flags & NDR_BUFFERS) {
17335 int level = ndr_push_get_switch_value(ndr, r);
17336 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17337 switch (level) {
17338 case 1:
17339 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17340 break;
17342 case 2:
17343 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17344 break;
17346 default:
17347 break;
17351 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17352 return NDR_ERR_SUCCESS;
17355 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
17357 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17358 int level;
17359 level = ndr_pull_get_switch_value(ndr, r);
17360 if (ndr_flags & NDR_SCALARS) {
17361 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17362 switch (level) {
17363 case 1: {
17364 NDR_CHECK(ndr_pull_align(ndr, 5));
17365 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17366 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17367 break; }
17369 case 2: {
17370 NDR_CHECK(ndr_pull_align(ndr, 5));
17371 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17372 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17373 break; }
17375 default: {
17376 break; }
17380 if (ndr_flags & NDR_BUFFERS) {
17381 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17382 switch (level) {
17383 case 1:
17384 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17385 break;
17387 case 2:
17388 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17389 break;
17391 default:
17392 break;
17396 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17397 return NDR_ERR_SUCCESS;
17400 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
17402 int level;
17403 level = ndr_print_get_switch_value(ndr, r);
17404 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
17405 switch (level) {
17406 case 1:
17407 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
17408 break;
17410 case 2:
17411 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
17412 break;
17414 default:
17415 break;
17420 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
17422 if (ndr_flags & NDR_SCALARS) {
17423 NDR_CHECK(ndr_push_align(ndr, 5));
17425 uint32_t _flags_save_string = ndr->flags;
17426 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17427 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
17428 ndr->flags = _flags_save_string;
17430 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17432 if (ndr_flags & NDR_BUFFERS) {
17434 uint32_t _flags_save_string = ndr->flags;
17435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17436 if (r->name_array) {
17437 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name_array));
17438 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
17440 ndr->flags = _flags_save_string;
17443 return NDR_ERR_SUCCESS;
17446 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
17448 uint32_t _ptr_name_array;
17449 TALLOC_CTX *_mem_save_name_array_0;
17450 if (ndr_flags & NDR_SCALARS) {
17451 NDR_CHECK(ndr_pull_align(ndr, 5));
17453 uint32_t _flags_save_string = ndr->flags;
17454 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17455 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
17456 if (_ptr_name_array) {
17457 NDR_PULL_ALLOC(ndr, r->name_array);
17458 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
17459 } else {
17460 r->name_array = NULL;
17462 ndr->flags = _flags_save_string;
17464 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17466 if (ndr_flags & NDR_BUFFERS) {
17468 uint32_t _flags_save_string = ndr->flags;
17469 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17470 if (r->name_array) {
17471 uint32_t _relative_save_offset;
17472 _relative_save_offset = ndr->offset;
17473 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
17474 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
17475 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
17476 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
17477 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
17478 ndr->offset = _relative_save_offset;
17480 ndr->flags = _flags_save_string;
17483 return NDR_ERR_SUCCESS;
17486 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
17488 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
17489 ndr->depth++;
17490 ndr_print_ptr(ndr, "name_array", r->name_array);
17491 ndr->depth++;
17492 if (r->name_array) {
17493 ndr_print_string(ndr, "name_array", r->name_array);
17495 ndr->depth--;
17496 ndr->depth--;
17499 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17501 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
17504 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
17506 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17507 if (ndr_flags & NDR_SCALARS) {
17508 int level = ndr_push_get_switch_value(ndr, r);
17509 NDR_CHECK(ndr_push_union_align(ndr, 5));
17510 switch (level) {
17511 case 1: {
17512 NDR_CHECK(ndr_push_align(ndr, 5));
17513 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17514 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17515 break; }
17517 default: {
17518 break; }
17522 if (ndr_flags & NDR_BUFFERS) {
17523 int level = ndr_push_get_switch_value(ndr, r);
17524 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17525 switch (level) {
17526 case 1:
17527 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17528 break;
17530 default:
17531 break;
17535 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17536 return NDR_ERR_SUCCESS;
17539 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
17541 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17542 int level;
17543 level = ndr_pull_get_switch_value(ndr, r);
17544 if (ndr_flags & NDR_SCALARS) {
17545 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17546 switch (level) {
17547 case 1: {
17548 NDR_CHECK(ndr_pull_align(ndr, 5));
17549 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17550 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17551 break; }
17553 default: {
17554 break; }
17558 if (ndr_flags & NDR_BUFFERS) {
17559 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17560 switch (level) {
17561 case 1:
17562 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17563 break;
17565 default:
17566 break;
17570 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17571 return NDR_ERR_SUCCESS;
17574 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
17576 int level;
17577 level = ndr_print_get_switch_value(ndr, r);
17578 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
17579 switch (level) {
17580 case 1:
17581 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
17582 break;
17584 default:
17585 break;
17590 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17593 return NDR_ERR_SUCCESS;
17596 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17598 uint32_t v;
17599 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17600 *r = v;
17601 return NDR_ERR_SUCCESS;
17604 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17606 ndr_print_uint32(ndr, name, r);
17607 ndr->depth++;
17608 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
17609 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
17610 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
17611 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
17612 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
17613 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
17614 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
17615 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
17616 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
17617 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
17618 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
17619 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
17620 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
17621 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
17622 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
17623 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
17624 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
17625 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
17626 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
17627 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
17628 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
17629 ndr->depth--;
17632 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
17634 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
17635 return NDR_ERR_SUCCESS;
17638 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
17640 uint16_t v;
17641 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
17642 *r = v;
17643 return NDR_ERR_SUCCESS;
17646 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
17648 const char *val = NULL;
17650 switch (r) {
17651 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
17652 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
17653 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
17654 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
17655 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
17656 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
17657 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17658 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
17659 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
17660 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
17661 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
17662 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
17663 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17664 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
17665 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
17666 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
17667 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
17668 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
17669 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
17670 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
17671 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
17672 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
17673 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
17674 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
17676 ndr_print_enum(ndr, name, "ENUM", val, r);
17679 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
17681 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
17682 return NDR_ERR_SUCCESS;
17685 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
17687 uint16_t v;
17688 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
17689 *r = v;
17690 return NDR_ERR_SUCCESS;
17693 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
17695 const char *val = NULL;
17697 switch (r) {
17698 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
17699 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
17700 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
17701 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
17702 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
17703 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
17704 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
17705 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
17706 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
17707 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17708 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
17709 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
17710 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17711 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
17712 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
17713 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
17714 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
17715 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
17716 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
17717 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
17718 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
17719 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
17720 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
17721 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
17722 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
17723 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
17724 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
17725 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
17727 ndr_print_enum(ndr, name, "ENUM", val, r);
17730 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
17732 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
17733 return NDR_ERR_SUCCESS;
17736 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
17738 uint16_t v;
17739 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
17740 *r = v;
17741 return NDR_ERR_SUCCESS;
17744 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
17746 const char *val = NULL;
17748 switch (r) {
17749 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
17750 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
17752 ndr_print_enum(ndr, name, "ENUM", val, r);
17755 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
17757 if (ndr_flags & NDR_SCALARS) {
17758 int level = ndr_push_get_switch_value(ndr, r);
17759 NDR_CHECK(ndr_push_union_align(ndr, 2));
17760 switch (level) {
17761 case PRINTER_NOTIFY_TYPE: {
17762 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17763 break; }
17765 case JOB_NOTIFY_TYPE: {
17766 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17767 break; }
17769 default: {
17770 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17771 break; }
17775 if (ndr_flags & NDR_BUFFERS) {
17776 int level = ndr_push_get_switch_value(ndr, r);
17777 switch (level) {
17778 case PRINTER_NOTIFY_TYPE:
17779 break;
17781 case JOB_NOTIFY_TYPE:
17782 break;
17784 default:
17785 break;
17789 return NDR_ERR_SUCCESS;
17792 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
17794 int level;
17795 level = ndr_pull_get_switch_value(ndr, r);
17796 if (ndr_flags & NDR_SCALARS) {
17797 NDR_CHECK(ndr_pull_union_align(ndr, 2));
17798 switch (level) {
17799 case PRINTER_NOTIFY_TYPE: {
17800 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17801 break; }
17803 case JOB_NOTIFY_TYPE: {
17804 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17805 break; }
17807 default: {
17808 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17809 break; }
17813 if (ndr_flags & NDR_BUFFERS) {
17814 switch (level) {
17815 case PRINTER_NOTIFY_TYPE:
17816 break;
17818 case JOB_NOTIFY_TYPE:
17819 break;
17821 default:
17822 break;
17826 return NDR_ERR_SUCCESS;
17829 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
17831 uint32_t cntr_fields_1;
17832 if (ndr_flags & NDR_SCALARS) {
17833 NDR_CHECK(ndr_push_align(ndr, 5));
17834 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17835 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
17836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
17837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
17838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17839 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
17840 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17842 if (ndr_flags & NDR_BUFFERS) {
17843 if (r->fields) {
17844 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
17845 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17846 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
17847 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17851 return NDR_ERR_SUCCESS;
17854 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
17856 uint32_t _ptr_fields;
17857 uint32_t cntr_fields_1;
17858 TALLOC_CTX *_mem_save_fields_0;
17859 TALLOC_CTX *_mem_save_fields_1;
17860 if (ndr_flags & NDR_SCALARS) {
17861 NDR_CHECK(ndr_pull_align(ndr, 5));
17862 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17863 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
17864 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
17865 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
17866 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17867 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
17868 if (_ptr_fields) {
17869 NDR_PULL_ALLOC(ndr, r->fields);
17870 } else {
17871 r->fields = NULL;
17873 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17875 if (ndr_flags & NDR_BUFFERS) {
17876 if (r->fields) {
17877 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
17878 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17879 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
17880 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
17881 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
17882 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17883 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17884 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
17885 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17887 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
17888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
17890 if (r->fields) {
17891 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
17894 return NDR_ERR_SUCCESS;
17897 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
17899 uint32_t cntr_fields_1;
17900 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
17901 ndr->depth++;
17902 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17903 ndr_print_uint16(ndr, "u1", r->u1);
17904 ndr_print_uint32(ndr, "u2", r->u2);
17905 ndr_print_uint32(ndr, "u3", r->u3);
17906 ndr_print_uint32(ndr, "count", r->count);
17907 ndr_print_ptr(ndr, "fields", r->fields);
17908 ndr->depth++;
17909 if (r->fields) {
17910 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
17911 ndr->depth++;
17912 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
17913 char *idx_1=NULL;
17914 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
17915 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
17916 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
17917 free(idx_1);
17920 ndr->depth--;
17922 ndr->depth--;
17923 ndr->depth--;
17926 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17929 return NDR_ERR_SUCCESS;
17932 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17934 uint32_t v;
17935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17936 *r = v;
17937 return NDR_ERR_SUCCESS;
17940 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17942 ndr_print_uint32(ndr, name, r);
17943 ndr->depth++;
17944 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
17945 ndr->depth--;
17948 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
17950 uint32_t cntr_types_1;
17951 if (ndr_flags & NDR_SCALARS) {
17952 NDR_CHECK(ndr_push_align(ndr, 5));
17953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17954 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
17955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17956 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
17957 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17959 if (ndr_flags & NDR_BUFFERS) {
17960 if (r->types) {
17961 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
17962 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17963 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17965 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17966 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17970 return NDR_ERR_SUCCESS;
17973 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
17975 uint32_t _ptr_types;
17976 uint32_t cntr_types_1;
17977 TALLOC_CTX *_mem_save_types_0;
17978 TALLOC_CTX *_mem_save_types_1;
17979 if (ndr_flags & NDR_SCALARS) {
17980 NDR_CHECK(ndr_pull_align(ndr, 5));
17981 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17982 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
17983 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17984 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
17985 if (_ptr_types) {
17986 NDR_PULL_ALLOC(ndr, r->types);
17987 } else {
17988 r->types = NULL;
17990 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17992 if (ndr_flags & NDR_BUFFERS) {
17993 if (r->types) {
17994 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
17995 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17996 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
17997 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
17998 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
17999 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18000 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18001 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18003 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18004 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
18007 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
18009 if (r->types) {
18010 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
18013 return NDR_ERR_SUCCESS;
18016 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
18018 uint32_t cntr_types_1;
18019 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
18020 ndr->depth++;
18021 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18022 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
18023 ndr_print_uint32(ndr, "count", r->count);
18024 ndr_print_ptr(ndr, "types", r->types);
18025 ndr->depth++;
18026 if (r->types) {
18027 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
18028 ndr->depth++;
18029 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
18030 char *idx_1=NULL;
18031 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
18032 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
18033 free(idx_1);
18036 ndr->depth--;
18038 ndr->depth--;
18039 ndr->depth--;
18042 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
18044 if (ndr_flags & NDR_SCALARS) {
18045 NDR_CHECK(ndr_push_align(ndr, 5));
18046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18047 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
18048 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18050 if (ndr_flags & NDR_BUFFERS) {
18051 if (r->string) {
18052 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
18053 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
18056 return NDR_ERR_SUCCESS;
18059 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
18061 uint32_t _ptr_string;
18062 TALLOC_CTX *_mem_save_string_0;
18063 if (ndr_flags & NDR_SCALARS) {
18064 NDR_CHECK(ndr_pull_align(ndr, 5));
18065 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18066 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
18067 if (_ptr_string) {
18068 NDR_PULL_ALLOC(ndr, r->string);
18069 } else {
18070 r->string = NULL;
18072 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18074 if (ndr_flags & NDR_BUFFERS) {
18075 if (r->string) {
18076 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
18077 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
18078 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
18079 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
18080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
18082 if (r->string) {
18083 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
18086 return NDR_ERR_SUCCESS;
18089 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
18091 ndr_print_struct(ndr, name, "spoolss_NotifyString");
18092 ndr->depth++;
18093 ndr_print_uint32(ndr, "size", r->size);
18094 ndr_print_ptr(ndr, "string", r->string);
18095 ndr->depth++;
18096 if (r->string) {
18097 ndr_print_string(ndr, "string", r->string);
18099 ndr->depth--;
18100 ndr->depth--;
18103 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
18105 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
18106 return NDR_ERR_SUCCESS;
18109 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
18111 uint32_t v;
18112 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
18113 *r = v;
18114 return NDR_ERR_SUCCESS;
18117 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
18119 const char *val = NULL;
18121 switch (r) {
18122 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
18123 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
18124 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
18125 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
18126 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
18128 ndr_print_enum(ndr, name, "ENUM", val, r);
18131 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
18133 if (ndr_flags & NDR_SCALARS) {
18134 int level = ndr_push_get_switch_value(ndr, r);
18135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18136 NDR_CHECK(ndr_push_union_align(ndr, 5));
18137 switch (level) {
18138 case 1: {
18139 uint32_t cntr_integer_0;
18140 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
18143 break; }
18145 case 2: {
18146 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18147 break; }
18149 case 3: {
18150 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18151 break; }
18153 case 4: {
18154 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18155 break; }
18157 case 5: {
18158 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18159 break; }
18161 default:
18162 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18165 if (ndr_flags & NDR_BUFFERS) {
18166 int level = ndr_push_get_switch_value(ndr, r);
18167 switch (level) {
18168 case 1:
18169 break;
18171 case 2:
18172 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18173 break;
18175 case 3:
18176 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18177 break;
18179 case 4:
18180 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18181 break;
18183 case 5:
18184 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18185 break;
18187 default:
18188 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18191 return NDR_ERR_SUCCESS;
18194 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
18196 int level;
18197 uint32_t _level;
18198 level = ndr_pull_get_switch_value(ndr, r);
18199 if (ndr_flags & NDR_SCALARS) {
18200 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18201 if (_level != level) {
18202 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18204 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18205 switch (level) {
18206 case 1: {
18207 uint32_t cntr_integer_0;
18208 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18209 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
18211 break; }
18213 case 2: {
18214 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18215 break; }
18217 case 3: {
18218 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18219 break; }
18221 case 4: {
18222 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18223 break; }
18225 case 5: {
18226 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18227 break; }
18229 default:
18230 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18233 if (ndr_flags & NDR_BUFFERS) {
18234 switch (level) {
18235 case 1:
18236 break;
18238 case 2:
18239 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18240 break;
18242 case 3:
18243 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18244 break;
18246 case 4:
18247 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18248 break;
18250 case 5:
18251 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18252 break;
18254 default:
18255 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18258 return NDR_ERR_SUCCESS;
18261 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
18263 int level;
18264 uint32_t cntr_integer_0;
18265 level = ndr_print_get_switch_value(ndr, r);
18266 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
18267 switch (level) {
18268 case 1:
18269 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
18270 ndr->depth++;
18271 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
18272 char *idx_0=NULL;
18273 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
18274 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
18275 free(idx_0);
18278 ndr->depth--;
18279 break;
18281 case 2:
18282 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
18283 break;
18285 case 3:
18286 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
18287 break;
18289 case 4:
18290 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
18291 break;
18293 case 5:
18294 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
18295 break;
18297 default:
18298 ndr_print_bad_level(ndr, name, level);
18302 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
18304 if (ndr_flags & NDR_SCALARS) {
18305 NDR_CHECK(ndr_push_align(ndr, 5));
18306 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18307 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
18308 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18309 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
18310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
18311 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
18312 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18313 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18315 if (ndr_flags & NDR_BUFFERS) {
18316 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18318 return NDR_ERR_SUCCESS;
18321 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
18323 if (ndr_flags & NDR_SCALARS) {
18324 NDR_CHECK(ndr_pull_align(ndr, 5));
18325 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18326 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
18327 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18328 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
18329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
18330 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
18331 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18332 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18334 if (ndr_flags & NDR_BUFFERS) {
18335 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18337 return NDR_ERR_SUCCESS;
18340 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
18342 ndr_print_struct(ndr, name, "spoolss_Notify");
18343 ndr->depth++;
18344 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18345 ndr_print_set_switch_value(ndr, &r->field, r->type);
18346 ndr_print_spoolss_Field(ndr, "field", &r->field);
18347 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
18348 ndr_print_uint32(ndr, "job_id", r->job_id);
18349 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
18350 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
18351 ndr->depth--;
18354 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
18356 uint32_t cntr_notifies_0;
18357 if (ndr_flags & NDR_SCALARS) {
18358 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18359 NDR_CHECK(ndr_push_align(ndr, 5));
18360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18363 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18364 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18366 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18368 if (ndr_flags & NDR_BUFFERS) {
18369 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18370 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18373 return NDR_ERR_SUCCESS;
18376 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
18378 uint32_t cntr_notifies_0;
18379 TALLOC_CTX *_mem_save_notifies_0;
18380 if (ndr_flags & NDR_SCALARS) {
18381 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
18382 NDR_CHECK(ndr_pull_align(ndr, 5));
18383 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18384 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18386 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
18387 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18388 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18389 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18390 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18393 if (r->notifies) {
18394 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
18396 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18398 if (ndr_flags & NDR_BUFFERS) {
18399 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18400 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18401 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18402 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18404 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18406 return NDR_ERR_SUCCESS;
18409 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
18411 uint32_t cntr_notifies_0;
18412 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
18413 ndr->depth++;
18414 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18415 ndr_print_uint32(ndr, "flags", r->flags);
18416 ndr_print_uint32(ndr, "count", r->count);
18417 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
18418 ndr->depth++;
18419 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
18420 char *idx_0=NULL;
18421 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
18422 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
18423 free(idx_0);
18426 ndr->depth--;
18427 ndr->depth--;
18430 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
18432 if (ndr_flags & NDR_SCALARS) {
18433 int level = ndr_push_get_switch_value(ndr, r);
18434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18435 NDR_CHECK(ndr_push_union_align(ndr, 5));
18436 switch (level) {
18437 case 0: {
18438 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
18439 break; }
18441 default:
18442 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18445 if (ndr_flags & NDR_BUFFERS) {
18446 int level = ndr_push_get_switch_value(ndr, r);
18447 switch (level) {
18448 case 0:
18449 if (r->info0) {
18450 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18452 break;
18454 default:
18455 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18458 return NDR_ERR_SUCCESS;
18461 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
18463 int level;
18464 uint32_t _level;
18465 TALLOC_CTX *_mem_save_info0_0;
18466 level = ndr_pull_get_switch_value(ndr, r);
18467 if (ndr_flags & NDR_SCALARS) {
18468 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18469 if (_level != level) {
18470 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18472 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18473 switch (level) {
18474 case 0: {
18475 uint32_t _ptr_info0;
18476 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
18477 if (_ptr_info0) {
18478 NDR_PULL_ALLOC(ndr, r->info0);
18479 } else {
18480 r->info0 = NULL;
18482 break; }
18484 default:
18485 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18488 if (ndr_flags & NDR_BUFFERS) {
18489 switch (level) {
18490 case 0:
18491 if (r->info0) {
18492 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
18493 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
18494 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18495 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
18497 break;
18499 default:
18500 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18503 return NDR_ERR_SUCCESS;
18506 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
18508 int level;
18509 level = ndr_print_get_switch_value(ndr, r);
18510 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
18511 switch (level) {
18512 case 0:
18513 ndr_print_ptr(ndr, "info0", r->info0);
18514 ndr->depth++;
18515 if (r->info0) {
18516 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
18518 ndr->depth--;
18519 break;
18521 default:
18522 ndr_print_bad_level(ndr, name, level);
18526 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18529 return NDR_ERR_SUCCESS;
18532 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18534 uint32_t v;
18535 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18536 *r = v;
18537 return NDR_ERR_SUCCESS;
18540 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18542 ndr_print_uint32(ndr, name, r);
18543 ndr->depth++;
18544 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
18545 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
18546 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
18547 ndr->depth--;
18550 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
18552 if (ndr_flags & NDR_SCALARS) {
18553 NDR_CHECK(ndr_push_align(ndr, 5));
18554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18555 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18556 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18558 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18559 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18560 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18561 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18563 if (ndr_flags & NDR_BUFFERS) {
18564 if (r->client) {
18565 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18566 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18567 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18568 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18570 if (r->user) {
18571 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18572 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18573 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18574 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18577 return NDR_ERR_SUCCESS;
18580 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
18582 uint32_t _ptr_client;
18583 TALLOC_CTX *_mem_save_client_0;
18584 uint32_t _ptr_user;
18585 TALLOC_CTX *_mem_save_user_0;
18586 if (ndr_flags & NDR_SCALARS) {
18587 NDR_CHECK(ndr_pull_align(ndr, 5));
18588 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18589 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18590 if (_ptr_client) {
18591 NDR_PULL_ALLOC(ndr, r->client);
18592 } else {
18593 r->client = NULL;
18595 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
18596 if (_ptr_user) {
18597 NDR_PULL_ALLOC(ndr, r->user);
18598 } else {
18599 r->user = NULL;
18601 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
18602 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
18603 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
18604 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
18605 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18607 if (ndr_flags & NDR_BUFFERS) {
18608 if (r->client) {
18609 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
18610 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18611 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18612 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18613 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
18614 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));
18616 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
18617 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
18618 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18620 if (r->user) {
18621 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
18622 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18623 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18624 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18625 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
18626 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));
18628 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
18629 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
18630 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18633 return NDR_ERR_SUCCESS;
18636 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
18638 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
18639 ndr->depth++;
18640 ndr_print_uint32(ndr, "size", r->size);
18641 ndr_print_ptr(ndr, "client", r->client);
18642 ndr->depth++;
18643 if (r->client) {
18644 ndr_print_string(ndr, "client", r->client);
18646 ndr->depth--;
18647 ndr_print_ptr(ndr, "user", r->user);
18648 ndr->depth++;
18649 if (r->user) {
18650 ndr_print_string(ndr, "user", r->user);
18652 ndr->depth--;
18653 ndr_print_uint32(ndr, "build", r->build);
18654 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
18655 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
18656 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
18657 ndr->depth--;
18660 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
18662 if (ndr_flags & NDR_SCALARS) {
18663 NDR_CHECK(ndr_push_align(ndr, 4));
18664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
18665 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
18667 if (ndr_flags & NDR_BUFFERS) {
18669 return NDR_ERR_SUCCESS;
18672 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
18674 if (ndr_flags & NDR_SCALARS) {
18675 NDR_CHECK(ndr_pull_align(ndr, 4));
18676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
18677 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
18679 if (ndr_flags & NDR_BUFFERS) {
18681 return NDR_ERR_SUCCESS;
18684 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
18686 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
18687 ndr->depth++;
18688 ndr_print_uint32(ndr, "not_used", r->not_used);
18689 ndr->depth--;
18692 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
18694 if (ndr_flags & NDR_SCALARS) {
18695 NDR_CHECK(ndr_push_align(ndr, 5));
18696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18697 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18698 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
18699 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18700 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18702 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18703 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18704 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18705 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
18706 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18708 if (ndr_flags & NDR_BUFFERS) {
18709 if (r->client) {
18710 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18711 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18712 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18713 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18715 if (r->user) {
18716 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18717 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18718 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18719 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18722 return NDR_ERR_SUCCESS;
18725 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
18727 uint32_t _ptr_client;
18728 TALLOC_CTX *_mem_save_client_0;
18729 uint32_t _ptr_user;
18730 TALLOC_CTX *_mem_save_user_0;
18731 if (ndr_flags & NDR_SCALARS) {
18732 NDR_CHECK(ndr_pull_align(ndr, 5));
18733 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18734 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18735 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
18736 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18737 if (_ptr_client) {
18738 NDR_PULL_ALLOC(ndr, r->client);
18739 } else {
18740 r->client = NULL;
18742 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
18743 if (_ptr_user) {
18744 NDR_PULL_ALLOC(ndr, r->user);
18745 } else {
18746 r->user = NULL;
18748 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
18749 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
18750 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
18751 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
18752 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
18753 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18755 if (ndr_flags & NDR_BUFFERS) {
18756 if (r->client) {
18757 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
18758 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18759 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18760 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18761 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
18762 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));
18764 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
18765 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
18766 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18768 if (r->user) {
18769 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
18770 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18771 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18772 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18773 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
18774 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));
18776 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
18777 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
18778 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18781 return NDR_ERR_SUCCESS;
18784 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
18786 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
18787 ndr->depth++;
18788 ndr_print_uint32(ndr, "size", r->size);
18789 ndr_print_uint32(ndr, "flags", r->flags);
18790 ndr_print_uint32(ndr, "size2", r->size2);
18791 ndr_print_ptr(ndr, "client", r->client);
18792 ndr->depth++;
18793 if (r->client) {
18794 ndr_print_string(ndr, "client", r->client);
18796 ndr->depth--;
18797 ndr_print_ptr(ndr, "user", r->user);
18798 ndr->depth++;
18799 if (r->user) {
18800 ndr_print_string(ndr, "user", r->user);
18802 ndr->depth--;
18803 ndr_print_uint32(ndr, "build", r->build);
18804 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
18805 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
18806 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
18807 ndr_print_udlong(ndr, "reserved", r->reserved);
18808 ndr->depth--;
18811 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
18813 if (ndr_flags & NDR_SCALARS) {
18814 int level = ndr_push_get_switch_value(ndr, r);
18815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18816 NDR_CHECK(ndr_push_union_align(ndr, 5));
18817 switch (level) {
18818 case 1: {
18819 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
18820 break; }
18822 case 2: {
18823 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
18824 break; }
18826 case 3: {
18827 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
18828 break; }
18830 default:
18831 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18834 if (ndr_flags & NDR_BUFFERS) {
18835 int level = ndr_push_get_switch_value(ndr, r);
18836 switch (level) {
18837 case 1:
18838 if (r->level1) {
18839 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18841 break;
18843 case 2:
18844 if (r->level2) {
18845 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18847 break;
18849 case 3:
18850 if (r->level3) {
18851 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18853 break;
18855 default:
18856 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18859 return NDR_ERR_SUCCESS;
18862 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
18864 int level;
18865 uint32_t _level;
18866 TALLOC_CTX *_mem_save_level1_0;
18867 TALLOC_CTX *_mem_save_level2_0;
18868 TALLOC_CTX *_mem_save_level3_0;
18869 level = ndr_pull_get_switch_value(ndr, r);
18870 if (ndr_flags & NDR_SCALARS) {
18871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18872 if (_level != level) {
18873 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18875 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18876 switch (level) {
18877 case 1: {
18878 uint32_t _ptr_level1;
18879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
18880 if (_ptr_level1) {
18881 NDR_PULL_ALLOC(ndr, r->level1);
18882 } else {
18883 r->level1 = NULL;
18885 break; }
18887 case 2: {
18888 uint32_t _ptr_level2;
18889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
18890 if (_ptr_level2) {
18891 NDR_PULL_ALLOC(ndr, r->level2);
18892 } else {
18893 r->level2 = NULL;
18895 break; }
18897 case 3: {
18898 uint32_t _ptr_level3;
18899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
18900 if (_ptr_level3) {
18901 NDR_PULL_ALLOC(ndr, r->level3);
18902 } else {
18903 r->level3 = NULL;
18905 break; }
18907 default:
18908 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18911 if (ndr_flags & NDR_BUFFERS) {
18912 switch (level) {
18913 case 1:
18914 if (r->level1) {
18915 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
18916 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
18917 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
18920 break;
18922 case 2:
18923 if (r->level2) {
18924 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
18925 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
18926 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
18929 break;
18931 case 3:
18932 if (r->level3) {
18933 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
18934 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
18935 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
18938 break;
18940 default:
18941 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18944 return NDR_ERR_SUCCESS;
18947 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
18949 int level;
18950 level = ndr_print_get_switch_value(ndr, r);
18951 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
18952 switch (level) {
18953 case 1:
18954 ndr_print_ptr(ndr, "level1", r->level1);
18955 ndr->depth++;
18956 if (r->level1) {
18957 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
18959 ndr->depth--;
18960 break;
18962 case 2:
18963 ndr_print_ptr(ndr, "level2", r->level2);
18964 ndr->depth++;
18965 if (r->level2) {
18966 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
18968 ndr->depth--;
18969 break;
18971 case 3:
18972 ndr_print_ptr(ndr, "level3", r->level3);
18973 ndr->depth++;
18974 if (r->level3) {
18975 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
18977 ndr->depth--;
18978 break;
18980 default:
18981 ndr_print_bad_level(ndr, name, level);
18985 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
18987 if (ndr_flags & NDR_SCALARS) {
18988 NDR_CHECK(ndr_push_align(ndr, 5));
18989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
18990 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
18991 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18992 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18994 if (ndr_flags & NDR_BUFFERS) {
18995 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18997 return NDR_ERR_SUCCESS;
19000 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
19002 if (ndr_flags & NDR_SCALARS) {
19003 NDR_CHECK(ndr_pull_align(ndr, 5));
19004 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
19005 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
19006 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19007 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19009 if (ndr_flags & NDR_BUFFERS) {
19010 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19012 return NDR_ERR_SUCCESS;
19015 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
19017 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
19018 ndr->depth++;
19019 ndr_print_uint32(ndr, "level", r->level);
19020 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
19021 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
19022 ndr->depth--;
19025 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19028 return NDR_ERR_SUCCESS;
19031 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19033 uint32_t v;
19034 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19035 *r = v;
19036 return NDR_ERR_SUCCESS;
19039 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
19041 ndr_print_uint32(ndr, name, r);
19042 ndr->depth++;
19043 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
19044 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
19045 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
19046 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
19047 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
19048 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
19049 ndr->depth--;
19052 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
19054 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
19055 if (ndr_flags & NDR_SCALARS) {
19056 NDR_CHECK(ndr_push_align(ndr, 5));
19057 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19059 uint32_t _flags_save_string = ndr->flags;
19060 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19061 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
19062 ndr->flags = _flags_save_string;
19064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
19065 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
19066 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
19067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
19068 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19070 if (ndr_flags & NDR_BUFFERS) {
19071 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
19073 uint32_t _flags_save_string = ndr->flags;
19074 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19075 if (r->value_name) {
19076 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->value_name));
19077 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
19079 ndr->flags = _flags_save_string;
19081 if (r->data) {
19082 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data));
19084 struct ndr_push *_ndr_data;
19085 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19086 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
19087 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19088 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19092 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
19093 return NDR_ERR_SUCCESS;
19096 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
19098 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
19099 uint32_t _ptr_value_name;
19100 TALLOC_CTX *_mem_save_value_name_0;
19101 uint32_t _ptr_data;
19102 TALLOC_CTX *_mem_save_data_0;
19103 if (ndr_flags & NDR_SCALARS) {
19104 NDR_CHECK(ndr_pull_align(ndr, 5));
19105 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19107 uint32_t _flags_save_string = ndr->flags;
19108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
19110 if (_ptr_value_name) {
19111 NDR_PULL_ALLOC(ndr, r->value_name);
19112 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
19113 } else {
19114 r->value_name = NULL;
19116 ndr->flags = _flags_save_string;
19118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
19119 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
19120 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
19121 if (_ptr_data) {
19122 NDR_PULL_ALLOC(ndr, r->data);
19123 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
19124 } else {
19125 r->data = NULL;
19127 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
19128 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19130 if (ndr_flags & NDR_BUFFERS) {
19131 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19133 uint32_t _flags_save_string = ndr->flags;
19134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19135 if (r->value_name) {
19136 uint32_t _relative_save_offset;
19137 _relative_save_offset = ndr->offset;
19138 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
19139 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19140 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
19141 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
19142 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
19143 ndr->offset = _relative_save_offset;
19145 ndr->flags = _flags_save_string;
19147 if (r->data) {
19148 uint32_t _relative_save_offset;
19149 _relative_save_offset = ndr->offset;
19150 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
19151 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
19152 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
19154 struct ndr_pull *_ndr_data;
19155 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19156 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
19157 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19158 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19160 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
19161 ndr->offset = _relative_save_offset;
19164 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
19165 return NDR_ERR_SUCCESS;
19168 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
19170 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
19171 ndr->depth++;
19172 ndr_print_ptr(ndr, "value_name", r->value_name);
19173 ndr->depth++;
19174 if (r->value_name) {
19175 ndr_print_string(ndr, "value_name", r->value_name);
19177 ndr->depth--;
19178 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
19179 ndr_print_winreg_Type(ndr, "type", r->type);
19180 ndr_print_ptr(ndr, "data", r->data);
19181 ndr->depth++;
19182 if (r->data) {
19183 ndr_print_set_switch_value(ndr, r->data, r->type);
19184 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
19186 ndr->depth--;
19187 ndr_print_uint32(ndr, "data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags):r->data_length);
19188 ndr->depth--;
19191 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
19193 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
19196 static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr_flags, const union spoolss_KeyNames *r)
19198 if (ndr_flags & NDR_SCALARS) {
19199 int level = ndr_push_get_switch_value(ndr, r);
19200 NDR_CHECK(ndr_push_union_align(ndr, 4));
19201 switch (level) {
19202 case 0: {
19203 break; }
19205 case 1: {
19206 break; }
19208 default: {
19210 uint32_t _flags_save_string_array = ndr->flags;
19211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19212 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
19213 ndr->flags = _flags_save_string_array;
19215 break; }
19219 if (ndr_flags & NDR_BUFFERS) {
19220 int level = ndr_push_get_switch_value(ndr, r);
19221 switch (level) {
19222 case 0:
19223 break;
19225 case 1:
19226 break;
19228 default:
19229 break;
19233 return NDR_ERR_SUCCESS;
19236 static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr_flags, union spoolss_KeyNames *r)
19238 int level;
19239 level = ndr_pull_get_switch_value(ndr, r);
19240 if (ndr_flags & NDR_SCALARS) {
19241 NDR_CHECK(ndr_pull_union_align(ndr, 4));
19242 switch (level) {
19243 case 0: {
19244 break; }
19246 case 1: {
19247 break; }
19249 default: {
19251 uint32_t _flags_save_string_array = ndr->flags;
19252 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19253 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
19254 ndr->flags = _flags_save_string_array;
19256 break; }
19260 if (ndr_flags & NDR_BUFFERS) {
19261 switch (level) {
19262 case 0:
19263 break;
19265 case 1:
19266 break;
19268 default:
19269 break;
19273 return NDR_ERR_SUCCESS;
19276 _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
19278 int level;
19279 level = ndr_print_get_switch_value(ndr, r);
19280 ndr_print_union(ndr, name, level, "spoolss_KeyNames");
19281 switch (level) {
19282 case 0:
19283 break;
19285 case 1:
19286 break;
19288 default:
19289 ndr_print_string_array(ndr, "string_array", r->string_array);
19290 break;
19295 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19298 return NDR_ERR_SUCCESS;
19301 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19303 uint32_t v;
19304 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19305 *r = v;
19306 return NDR_ERR_SUCCESS;
19309 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19311 ndr_print_uint32(ndr, name, r);
19312 ndr->depth++;
19313 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
19314 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
19315 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
19316 ndr->depth--;
19319 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
19321 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
19322 return NDR_ERR_SUCCESS;
19325 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
19327 uint32_t v;
19328 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19329 *r = v;
19330 return NDR_ERR_SUCCESS;
19333 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
19335 const char *val = NULL;
19337 switch (r) {
19338 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
19339 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
19341 ndr_print_enum(ndr, name, "ENUM", val, r);
19344 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
19346 if (ndr_flags & NDR_SCALARS) {
19347 NDR_CHECK(ndr_push_align(ndr, 4));
19348 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
19350 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19353 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19354 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19356 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19357 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19358 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19359 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19363 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19365 if (ndr_flags & NDR_BUFFERS) {
19367 return NDR_ERR_SUCCESS;
19370 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
19372 if (ndr_flags & NDR_SCALARS) {
19373 NDR_CHECK(ndr_pull_align(ndr, 4));
19374 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19375 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19376 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19377 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19379 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19380 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19381 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19382 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19383 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19384 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19385 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19386 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19387 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19388 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19389 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19391 if (ndr_flags & NDR_BUFFERS) {
19393 return NDR_ERR_SUCCESS;
19396 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
19398 ndr_print_struct(ndr, name, "spoolss_PortData1");
19399 ndr->depth++;
19400 ndr_print_string(ndr, "portname", r->portname);
19401 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
19402 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19403 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19404 ndr_print_uint32(ndr, "reserved", r->reserved);
19405 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19406 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19407 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19408 ndr_print_string(ndr, "queue", r->queue);
19409 ndr_print_string(ndr, "ip_address", r->ip_address);
19410 ndr_print_string(ndr, "hardware_address", r->hardware_address);
19411 ndr_print_string(ndr, "device_type", r->device_type);
19412 ndr_print_uint32(ndr, "port_number", r->port_number);
19413 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19414 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19415 ndr->depth--;
19418 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
19420 if (ndr_flags & NDR_SCALARS) {
19421 NDR_CHECK(ndr_push_align(ndr, 4));
19422 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
19424 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19427 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19428 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19430 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19431 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
19436 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19438 if (ndr_flags & NDR_BUFFERS) {
19440 return NDR_ERR_SUCCESS;
19443 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
19445 if (ndr_flags & NDR_SCALARS) {
19446 NDR_CHECK(ndr_pull_align(ndr, 4));
19447 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19448 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19449 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19450 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19451 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19452 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19453 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19454 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19455 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19456 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19457 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19458 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19459 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19460 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
19461 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19463 if (ndr_flags & NDR_BUFFERS) {
19465 return NDR_ERR_SUCCESS;
19468 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
19470 ndr_print_struct(ndr, name, "spoolss_PortData2");
19471 ndr->depth++;
19472 ndr_print_string(ndr, "portname", r->portname);
19473 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
19474 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19475 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19476 ndr_print_uint32(ndr, "reserved", r->reserved);
19477 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19478 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19479 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19480 ndr_print_string(ndr, "queue", r->queue);
19481 ndr_print_string(ndr, "device_type", r->device_type);
19482 ndr_print_uint32(ndr, "port_number", r->port_number);
19483 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19484 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19485 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
19486 ndr->depth--;
19489 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
19491 if (ndr_flags & NDR_SCALARS) {
19492 NDR_CHECK(ndr_push_align(ndr, 4));
19494 uint32_t _flags_save_string = ndr->flags;
19495 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19496 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
19497 ndr->flags = _flags_save_string;
19499 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19501 if (ndr_flags & NDR_BUFFERS) {
19503 return NDR_ERR_SUCCESS;
19506 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
19508 if (ndr_flags & NDR_SCALARS) {
19509 NDR_CHECK(ndr_pull_align(ndr, 4));
19511 uint32_t _flags_save_string = ndr->flags;
19512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19513 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
19514 ndr->flags = _flags_save_string;
19516 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19518 if (ndr_flags & NDR_BUFFERS) {
19520 return NDR_ERR_SUCCESS;
19523 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
19525 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
19526 ndr->depth++;
19527 ndr_print_string(ndr, "dll_name", r->dll_name);
19528 ndr->depth--;
19531 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19534 return NDR_ERR_SUCCESS;
19537 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19539 uint32_t v;
19540 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19541 *r = v;
19542 return NDR_ERR_SUCCESS;
19545 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19547 ndr_print_uint32(ndr, name, r);
19548 ndr->depth++;
19549 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
19550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
19551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
19552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
19553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
19554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
19555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
19556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
19557 ndr->depth--;
19560 static enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, int ndr_flags, const struct spoolss_CorePrinterDriver *r)
19562 if (ndr_flags & NDR_SCALARS) {
19563 NDR_CHECK(ndr_push_align(ndr, 8));
19564 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
19565 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
19566 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
19567 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 520, sizeof(uint8_t), CH_UTF8));
19568 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
19570 if (ndr_flags & NDR_BUFFERS) {
19572 return NDR_ERR_SUCCESS;
19575 static enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, int ndr_flags, struct spoolss_CorePrinterDriver *r)
19577 if (ndr_flags & NDR_SCALARS) {
19578 NDR_CHECK(ndr_pull_align(ndr, 8));
19579 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
19580 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
19581 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
19582 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 520, sizeof(uint8_t), CH_UTF8));
19583 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
19585 if (ndr_flags & NDR_BUFFERS) {
19587 return NDR_ERR_SUCCESS;
19590 _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
19592 ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
19593 ndr->depth++;
19594 ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
19595 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
19596 ndr_print_hyper(ndr, "driver_version", r->driver_version);
19597 ndr_print_string(ndr, "formname", r->formname);
19598 ndr->depth--;
19601 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
19603 if (flags & NDR_IN) {
19604 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
19605 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19606 if (r->in.server) {
19607 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19608 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19609 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19610 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19613 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19614 if (r->in.buffer) {
19615 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19619 if (flags & NDR_OUT) {
19620 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19621 if (r->out.info) {
19622 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19624 if (r->out.needed == NULL) {
19625 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19628 if (r->out.count == NULL) {
19629 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19632 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19634 return NDR_ERR_SUCCESS;
19637 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
19639 uint32_t _ptr_server;
19640 uint32_t _ptr_buffer;
19641 uint32_t _ptr_info;
19642 TALLOC_CTX *_mem_save_server_0;
19643 TALLOC_CTX *_mem_save_buffer_0;
19644 TALLOC_CTX *_mem_save_info_0;
19645 TALLOC_CTX *_mem_save_needed_0;
19646 TALLOC_CTX *_mem_save_count_0;
19647 if (flags & NDR_IN) {
19648 ZERO_STRUCT(r->out);
19650 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
19651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19652 if (_ptr_server) {
19653 NDR_PULL_ALLOC(ndr, r->in.server);
19654 } else {
19655 r->in.server = NULL;
19657 if (r->in.server) {
19658 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19659 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19660 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19661 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19662 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19663 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));
19665 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19666 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19670 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19671 if (_ptr_buffer) {
19672 NDR_PULL_ALLOC(ndr, r->in.buffer);
19673 } else {
19674 r->in.buffer = NULL;
19676 if (r->in.buffer) {
19677 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19678 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19679 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19682 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19683 NDR_PULL_ALLOC(ndr, r->out.needed);
19684 ZERO_STRUCTP(r->out.needed);
19685 NDR_PULL_ALLOC(ndr, r->out.count);
19686 ZERO_STRUCTP(r->out.count);
19688 if (flags & NDR_OUT) {
19689 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19690 if (_ptr_info) {
19691 NDR_PULL_ALLOC(ndr, r->out.info);
19692 } else {
19693 r->out.info = NULL;
19695 if (r->out.info) {
19696 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19697 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19698 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19701 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19702 NDR_PULL_ALLOC(ndr, r->out.needed);
19704 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19705 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19706 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19707 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19708 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19709 NDR_PULL_ALLOC(ndr, r->out.count);
19711 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19712 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19713 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19715 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19717 return NDR_ERR_SUCCESS;
19720 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
19722 uint32_t cntr_info_0;
19723 if (flags & NDR_IN) {
19724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19727 if (flags & NDR_OUT) {
19728 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19729 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19730 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19732 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19733 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19736 return NDR_ERR_SUCCESS;
19739 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
19741 uint32_t cntr_info_0;
19742 TALLOC_CTX *_mem_save_info_0;
19743 if (flags & NDR_IN) {
19744 ZERO_STRUCT(r->out);
19746 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19747 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19749 if (flags & NDR_OUT) {
19750 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19751 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19752 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19753 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19754 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19755 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19757 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19758 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19760 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19762 return NDR_ERR_SUCCESS;
19765 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
19767 uint32_t cntr_info_2;
19768 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
19769 ndr->depth++;
19770 if (flags & NDR_SET_VALUES) {
19771 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19773 if (flags & NDR_IN) {
19774 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
19775 ndr->depth++;
19776 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
19777 ndr_print_ptr(ndr, "server", r->in.server);
19778 ndr->depth++;
19779 if (r->in.server) {
19780 ndr_print_string(ndr, "server", r->in.server);
19782 ndr->depth--;
19783 ndr_print_uint32(ndr, "level", r->in.level);
19784 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19785 ndr->depth++;
19786 if (r->in.buffer) {
19787 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19789 ndr->depth--;
19790 ndr_print_uint32(ndr, "offered", r->in.offered);
19791 ndr->depth--;
19793 if (flags & NDR_OUT) {
19794 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
19795 ndr->depth++;
19796 ndr_print_ptr(ndr, "count", r->out.count);
19797 ndr->depth++;
19798 ndr_print_uint32(ndr, "count", *r->out.count);
19799 ndr->depth--;
19800 ndr_print_ptr(ndr, "info", r->out.info);
19801 ndr->depth++;
19802 ndr_print_ptr(ndr, "info", *r->out.info);
19803 ndr->depth++;
19804 if (*r->out.info) {
19805 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19806 ndr->depth++;
19807 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19808 char *idx_2=NULL;
19809 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19810 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19811 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19812 free(idx_2);
19815 ndr->depth--;
19817 ndr->depth--;
19818 ndr->depth--;
19819 ndr_print_ptr(ndr, "needed", r->out.needed);
19820 ndr->depth++;
19821 ndr_print_uint32(ndr, "needed", *r->out.needed);
19822 ndr->depth--;
19823 ndr_print_WERROR(ndr, "result", r->out.result);
19824 ndr->depth--;
19826 ndr->depth--;
19829 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
19831 if (flags & NDR_IN) {
19832 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
19833 if (r->in.printername) {
19834 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
19835 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19836 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
19837 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19839 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
19840 if (r->in.datatype) {
19841 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
19842 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19843 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
19844 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19846 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
19847 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
19849 if (flags & NDR_OUT) {
19850 if (r->out.handle == NULL) {
19851 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19853 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19854 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19856 return NDR_ERR_SUCCESS;
19859 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
19861 uint32_t _ptr_printername;
19862 uint32_t _ptr_datatype;
19863 TALLOC_CTX *_mem_save_printername_0;
19864 TALLOC_CTX *_mem_save_datatype_0;
19865 TALLOC_CTX *_mem_save_handle_0;
19866 if (flags & NDR_IN) {
19867 ZERO_STRUCT(r->out);
19869 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
19870 if (_ptr_printername) {
19871 NDR_PULL_ALLOC(ndr, r->in.printername);
19872 } else {
19873 r->in.printername = NULL;
19875 if (r->in.printername) {
19876 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19877 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
19878 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
19879 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
19880 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
19881 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));
19883 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
19884 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
19885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
19887 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
19888 if (_ptr_datatype) {
19889 NDR_PULL_ALLOC(ndr, r->in.datatype);
19890 } else {
19891 r->in.datatype = NULL;
19893 if (r->in.datatype) {
19894 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
19895 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
19896 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
19897 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
19898 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
19899 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));
19901 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
19902 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
19903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
19905 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
19906 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
19907 NDR_PULL_ALLOC(ndr, r->out.handle);
19908 ZERO_STRUCTP(r->out.handle);
19910 if (flags & NDR_OUT) {
19911 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19912 NDR_PULL_ALLOC(ndr, r->out.handle);
19914 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19915 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
19916 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19918 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19920 return NDR_ERR_SUCCESS;
19923 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
19925 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
19926 ndr->depth++;
19927 if (flags & NDR_SET_VALUES) {
19928 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19930 if (flags & NDR_IN) {
19931 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
19932 ndr->depth++;
19933 ndr_print_ptr(ndr, "printername", r->in.printername);
19934 ndr->depth++;
19935 if (r->in.printername) {
19936 ndr_print_string(ndr, "printername", r->in.printername);
19938 ndr->depth--;
19939 ndr_print_ptr(ndr, "datatype", r->in.datatype);
19940 ndr->depth++;
19941 if (r->in.datatype) {
19942 ndr_print_string(ndr, "datatype", r->in.datatype);
19944 ndr->depth--;
19945 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
19946 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
19947 ndr->depth--;
19949 if (flags & NDR_OUT) {
19950 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
19951 ndr->depth++;
19952 ndr_print_ptr(ndr, "handle", r->out.handle);
19953 ndr->depth++;
19954 ndr_print_policy_handle(ndr, "handle", r->out.handle);
19955 ndr->depth--;
19956 ndr_print_WERROR(ndr, "result", r->out.result);
19957 ndr->depth--;
19959 ndr->depth--;
19962 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
19964 if (flags & NDR_IN) {
19965 if (r->in.handle == NULL) {
19966 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19968 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
19970 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
19971 if (r->in.ctr) {
19972 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
19974 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
19976 if (flags & NDR_OUT) {
19977 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19979 return NDR_ERR_SUCCESS;
19982 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
19984 uint32_t _ptr_ctr;
19985 TALLOC_CTX *_mem_save_handle_0;
19986 TALLOC_CTX *_mem_save_ctr_0;
19987 if (flags & NDR_IN) {
19988 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19989 NDR_PULL_ALLOC(ndr, r->in.handle);
19991 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19992 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19993 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19995 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
19996 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
19997 if (_ptr_ctr) {
19998 NDR_PULL_ALLOC(ndr, r->in.ctr);
19999 } else {
20000 r->in.ctr = NULL;
20002 if (r->in.ctr) {
20003 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20004 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
20005 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
20008 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
20010 if (flags & NDR_OUT) {
20011 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20013 return NDR_ERR_SUCCESS;
20016 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
20018 ndr_print_struct(ndr, name, "spoolss_SetJob");
20019 ndr->depth++;
20020 if (flags & NDR_SET_VALUES) {
20021 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20023 if (flags & NDR_IN) {
20024 ndr_print_struct(ndr, "in", "spoolss_SetJob");
20025 ndr->depth++;
20026 ndr_print_ptr(ndr, "handle", r->in.handle);
20027 ndr->depth++;
20028 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20029 ndr->depth--;
20030 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20031 ndr_print_ptr(ndr, "ctr", r->in.ctr);
20032 ndr->depth++;
20033 if (r->in.ctr) {
20034 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
20036 ndr->depth--;
20037 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
20038 ndr->depth--;
20040 if (flags & NDR_OUT) {
20041 ndr_print_struct(ndr, "out", "spoolss_SetJob");
20042 ndr->depth++;
20043 ndr_print_WERROR(ndr, "result", r->out.result);
20044 ndr->depth--;
20046 ndr->depth--;
20049 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
20051 if (flags & NDR_IN) {
20052 if (r->in.handle == NULL) {
20053 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20055 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20058 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20059 if (r->in.buffer) {
20060 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20064 if (flags & NDR_OUT) {
20065 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20066 if (r->out.info) {
20068 struct ndr_push *_ndr_info;
20069 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20070 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20071 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20072 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20075 if (r->out.needed == NULL) {
20076 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20079 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20081 return NDR_ERR_SUCCESS;
20084 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
20086 uint32_t _ptr_buffer;
20087 uint32_t _ptr_info;
20088 TALLOC_CTX *_mem_save_handle_0;
20089 TALLOC_CTX *_mem_save_buffer_0;
20090 TALLOC_CTX *_mem_save_info_0;
20091 TALLOC_CTX *_mem_save_needed_0;
20092 if (flags & NDR_IN) {
20093 ZERO_STRUCT(r->out);
20095 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20096 NDR_PULL_ALLOC(ndr, r->in.handle);
20098 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20099 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20100 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20101 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20102 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20103 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20104 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20105 if (_ptr_buffer) {
20106 NDR_PULL_ALLOC(ndr, r->in.buffer);
20107 } else {
20108 r->in.buffer = NULL;
20110 if (r->in.buffer) {
20111 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20112 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20113 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20116 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20117 NDR_PULL_ALLOC(ndr, r->out.needed);
20118 ZERO_STRUCTP(r->out.needed);
20120 if (flags & NDR_OUT) {
20121 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20122 if (_ptr_info) {
20123 NDR_PULL_ALLOC(ndr, r->out.info);
20124 } else {
20125 r->out.info = NULL;
20127 if (r->out.info) {
20128 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20129 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20131 struct ndr_pull *_ndr_info;
20132 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20133 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20134 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20135 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20139 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20140 NDR_PULL_ALLOC(ndr, r->out.needed);
20142 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20143 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20145 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20146 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20148 return NDR_ERR_SUCCESS;
20151 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
20153 ndr_print_struct(ndr, name, "spoolss_GetJob");
20154 ndr->depth++;
20155 if (flags & NDR_SET_VALUES) {
20156 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20158 if (flags & NDR_IN) {
20159 ndr_print_struct(ndr, "in", "spoolss_GetJob");
20160 ndr->depth++;
20161 ndr_print_ptr(ndr, "handle", r->in.handle);
20162 ndr->depth++;
20163 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20164 ndr->depth--;
20165 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20166 ndr_print_uint32(ndr, "level", r->in.level);
20167 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20168 ndr->depth++;
20169 if (r->in.buffer) {
20170 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20172 ndr->depth--;
20173 ndr_print_uint32(ndr, "offered", r->in.offered);
20174 ndr->depth--;
20176 if (flags & NDR_OUT) {
20177 ndr_print_struct(ndr, "out", "spoolss_GetJob");
20178 ndr->depth++;
20179 ndr_print_ptr(ndr, "info", r->out.info);
20180 ndr->depth++;
20181 if (r->out.info) {
20182 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20183 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
20185 ndr->depth--;
20186 ndr_print_ptr(ndr, "needed", r->out.needed);
20187 ndr->depth++;
20188 ndr_print_uint32(ndr, "needed", *r->out.needed);
20189 ndr->depth--;
20190 ndr_print_WERROR(ndr, "result", r->out.result);
20191 ndr->depth--;
20193 ndr->depth--;
20196 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
20198 if (flags & NDR_IN) {
20199 if (r->in.handle == NULL) {
20200 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20202 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
20204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
20205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20206 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20207 if (r->in.buffer) {
20208 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20212 if (flags & NDR_OUT) {
20213 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20214 if (r->out.info) {
20215 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20217 if (r->out.needed == NULL) {
20218 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20221 if (r->out.count == NULL) {
20222 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20225 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20227 return NDR_ERR_SUCCESS;
20230 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
20232 uint32_t _ptr_buffer;
20233 uint32_t _ptr_info;
20234 TALLOC_CTX *_mem_save_handle_0;
20235 TALLOC_CTX *_mem_save_buffer_0;
20236 TALLOC_CTX *_mem_save_info_0;
20237 TALLOC_CTX *_mem_save_needed_0;
20238 TALLOC_CTX *_mem_save_count_0;
20239 if (flags & NDR_IN) {
20240 ZERO_STRUCT(r->out);
20242 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20243 NDR_PULL_ALLOC(ndr, r->in.handle);
20245 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20246 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20247 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20248 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20249 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
20250 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
20251 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20252 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20253 if (_ptr_buffer) {
20254 NDR_PULL_ALLOC(ndr, r->in.buffer);
20255 } else {
20256 r->in.buffer = NULL;
20258 if (r->in.buffer) {
20259 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20260 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20261 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20264 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20265 NDR_PULL_ALLOC(ndr, r->out.needed);
20266 ZERO_STRUCTP(r->out.needed);
20267 NDR_PULL_ALLOC(ndr, r->out.count);
20268 ZERO_STRUCTP(r->out.count);
20270 if (flags & NDR_OUT) {
20271 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20272 if (_ptr_info) {
20273 NDR_PULL_ALLOC(ndr, r->out.info);
20274 } else {
20275 r->out.info = NULL;
20277 if (r->out.info) {
20278 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20279 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20280 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20283 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20284 NDR_PULL_ALLOC(ndr, r->out.needed);
20286 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20287 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20288 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20290 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20291 NDR_PULL_ALLOC(ndr, r->out.count);
20293 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20294 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20295 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20296 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20297 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20299 return NDR_ERR_SUCCESS;
20302 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
20304 uint32_t cntr_info_0;
20305 if (flags & NDR_IN) {
20306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20309 if (flags & NDR_OUT) {
20310 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20311 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20312 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20314 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20315 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20318 return NDR_ERR_SUCCESS;
20321 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
20323 uint32_t cntr_info_0;
20324 TALLOC_CTX *_mem_save_info_0;
20325 if (flags & NDR_IN) {
20326 ZERO_STRUCT(r->out);
20328 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20331 if (flags & NDR_OUT) {
20332 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20333 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20334 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20335 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20336 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20337 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20339 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20340 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20344 return NDR_ERR_SUCCESS;
20347 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
20349 uint32_t cntr_info_2;
20350 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
20351 ndr->depth++;
20352 if (flags & NDR_SET_VALUES) {
20353 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20355 if (flags & NDR_IN) {
20356 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
20357 ndr->depth++;
20358 ndr_print_ptr(ndr, "handle", r->in.handle);
20359 ndr->depth++;
20360 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20361 ndr->depth--;
20362 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
20363 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
20364 ndr_print_uint32(ndr, "level", r->in.level);
20365 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20366 ndr->depth++;
20367 if (r->in.buffer) {
20368 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20370 ndr->depth--;
20371 ndr_print_uint32(ndr, "offered", r->in.offered);
20372 ndr->depth--;
20374 if (flags & NDR_OUT) {
20375 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
20376 ndr->depth++;
20377 ndr_print_ptr(ndr, "count", r->out.count);
20378 ndr->depth++;
20379 ndr_print_uint32(ndr, "count", *r->out.count);
20380 ndr->depth--;
20381 ndr_print_ptr(ndr, "info", r->out.info);
20382 ndr->depth++;
20383 ndr_print_ptr(ndr, "info", *r->out.info);
20384 ndr->depth++;
20385 if (*r->out.info) {
20386 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20387 ndr->depth++;
20388 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20389 char *idx_2=NULL;
20390 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20391 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20392 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20393 free(idx_2);
20396 ndr->depth--;
20398 ndr->depth--;
20399 ndr->depth--;
20400 ndr_print_ptr(ndr, "needed", r->out.needed);
20401 ndr->depth++;
20402 ndr_print_uint32(ndr, "needed", *r->out.needed);
20403 ndr->depth--;
20404 ndr_print_WERROR(ndr, "result", r->out.result);
20405 ndr->depth--;
20407 ndr->depth--;
20410 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
20412 if (flags & NDR_IN) {
20413 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20414 if (r->in.server) {
20415 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20416 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20417 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20418 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20420 if (r->in.info_ctr == NULL) {
20421 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20423 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20424 if (r->in.devmode_ctr == NULL) {
20425 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20427 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20428 if (r->in.secdesc_ctr == NULL) {
20429 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20431 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20433 if (flags & NDR_OUT) {
20434 if (r->out.handle == NULL) {
20435 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20437 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20438 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20440 return NDR_ERR_SUCCESS;
20443 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
20445 uint32_t _ptr_server;
20446 TALLOC_CTX *_mem_save_server_0;
20447 TALLOC_CTX *_mem_save_info_ctr_0;
20448 TALLOC_CTX *_mem_save_devmode_ctr_0;
20449 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20450 TALLOC_CTX *_mem_save_handle_0;
20451 if (flags & NDR_IN) {
20452 ZERO_STRUCT(r->out);
20454 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20455 if (_ptr_server) {
20456 NDR_PULL_ALLOC(ndr, r->in.server);
20457 } else {
20458 r->in.server = NULL;
20460 if (r->in.server) {
20461 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20462 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20463 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20464 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20465 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20466 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));
20468 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20469 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20470 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20472 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20473 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20475 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20476 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20477 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20479 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20480 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20482 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20483 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20484 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20485 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20486 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20487 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20489 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20490 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20491 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20493 NDR_PULL_ALLOC(ndr, r->out.handle);
20494 ZERO_STRUCTP(r->out.handle);
20496 if (flags & NDR_OUT) {
20497 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20498 NDR_PULL_ALLOC(ndr, r->out.handle);
20500 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20501 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20502 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20504 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20506 return NDR_ERR_SUCCESS;
20509 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
20511 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
20512 ndr->depth++;
20513 if (flags & NDR_SET_VALUES) {
20514 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20516 if (flags & NDR_IN) {
20517 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
20518 ndr->depth++;
20519 ndr_print_ptr(ndr, "server", r->in.server);
20520 ndr->depth++;
20521 if (r->in.server) {
20522 ndr_print_string(ndr, "server", r->in.server);
20524 ndr->depth--;
20525 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20526 ndr->depth++;
20527 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20528 ndr->depth--;
20529 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20530 ndr->depth++;
20531 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20532 ndr->depth--;
20533 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20534 ndr->depth++;
20535 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20536 ndr->depth--;
20537 ndr->depth--;
20539 if (flags & NDR_OUT) {
20540 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
20541 ndr->depth++;
20542 ndr_print_ptr(ndr, "handle", r->out.handle);
20543 ndr->depth++;
20544 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20545 ndr->depth--;
20546 ndr_print_WERROR(ndr, "result", r->out.result);
20547 ndr->depth--;
20549 ndr->depth--;
20552 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
20554 if (flags & NDR_IN) {
20555 if (r->in.handle == NULL) {
20556 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20558 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20560 if (flags & NDR_OUT) {
20561 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20563 return NDR_ERR_SUCCESS;
20566 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
20568 TALLOC_CTX *_mem_save_handle_0;
20569 if (flags & NDR_IN) {
20570 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20571 NDR_PULL_ALLOC(ndr, r->in.handle);
20573 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20574 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20575 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20576 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20578 if (flags & NDR_OUT) {
20579 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20581 return NDR_ERR_SUCCESS;
20584 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
20586 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
20587 ndr->depth++;
20588 if (flags & NDR_SET_VALUES) {
20589 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20591 if (flags & NDR_IN) {
20592 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
20593 ndr->depth++;
20594 ndr_print_ptr(ndr, "handle", r->in.handle);
20595 ndr->depth++;
20596 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20597 ndr->depth--;
20598 ndr->depth--;
20600 if (flags & NDR_OUT) {
20601 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
20602 ndr->depth++;
20603 ndr_print_WERROR(ndr, "result", r->out.result);
20604 ndr->depth--;
20606 ndr->depth--;
20609 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
20611 if (flags & NDR_IN) {
20612 if (r->in.handle == NULL) {
20613 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20615 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20616 if (r->in.info_ctr == NULL) {
20617 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20619 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20620 if (r->in.devmode_ctr == NULL) {
20621 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20623 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20624 if (r->in.secdesc_ctr == NULL) {
20625 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20627 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20628 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
20630 if (flags & NDR_OUT) {
20631 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20633 return NDR_ERR_SUCCESS;
20636 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
20638 TALLOC_CTX *_mem_save_handle_0;
20639 TALLOC_CTX *_mem_save_info_ctr_0;
20640 TALLOC_CTX *_mem_save_devmode_ctr_0;
20641 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20642 if (flags & NDR_IN) {
20643 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20644 NDR_PULL_ALLOC(ndr, r->in.handle);
20646 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20647 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20648 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20650 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20651 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20653 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20654 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20655 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20656 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20657 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20658 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20660 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20661 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20662 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20664 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20665 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20667 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20668 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20669 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20670 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20671 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
20673 if (flags & NDR_OUT) {
20674 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20676 return NDR_ERR_SUCCESS;
20679 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
20681 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
20682 ndr->depth++;
20683 if (flags & NDR_SET_VALUES) {
20684 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20686 if (flags & NDR_IN) {
20687 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
20688 ndr->depth++;
20689 ndr_print_ptr(ndr, "handle", r->in.handle);
20690 ndr->depth++;
20691 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20692 ndr->depth--;
20693 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20694 ndr->depth++;
20695 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20696 ndr->depth--;
20697 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20698 ndr->depth++;
20699 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20700 ndr->depth--;
20701 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20702 ndr->depth++;
20703 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20704 ndr->depth--;
20705 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
20706 ndr->depth--;
20708 if (flags & NDR_OUT) {
20709 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
20710 ndr->depth++;
20711 ndr_print_WERROR(ndr, "result", r->out.result);
20712 ndr->depth--;
20714 ndr->depth--;
20717 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
20719 if (flags & NDR_IN) {
20720 if (r->in.handle == NULL) {
20721 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20723 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20725 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20726 if (r->in.buffer) {
20727 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20731 if (flags & NDR_OUT) {
20732 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20733 if (r->out.info) {
20735 struct ndr_push *_ndr_info;
20736 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20737 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20738 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20739 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20742 if (r->out.needed == NULL) {
20743 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20746 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20748 return NDR_ERR_SUCCESS;
20751 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
20753 uint32_t _ptr_buffer;
20754 uint32_t _ptr_info;
20755 TALLOC_CTX *_mem_save_handle_0;
20756 TALLOC_CTX *_mem_save_buffer_0;
20757 TALLOC_CTX *_mem_save_info_0;
20758 TALLOC_CTX *_mem_save_needed_0;
20759 if (flags & NDR_IN) {
20760 ZERO_STRUCT(r->out);
20762 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20763 NDR_PULL_ALLOC(ndr, r->in.handle);
20765 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20766 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20767 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20768 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20770 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20771 if (_ptr_buffer) {
20772 NDR_PULL_ALLOC(ndr, r->in.buffer);
20773 } else {
20774 r->in.buffer = NULL;
20776 if (r->in.buffer) {
20777 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20778 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20779 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20782 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20783 NDR_PULL_ALLOC(ndr, r->out.needed);
20784 ZERO_STRUCTP(r->out.needed);
20786 if (flags & NDR_OUT) {
20787 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20788 if (_ptr_info) {
20789 NDR_PULL_ALLOC(ndr, r->out.info);
20790 } else {
20791 r->out.info = NULL;
20793 if (r->out.info) {
20794 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20795 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20797 struct ndr_pull *_ndr_info;
20798 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20799 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20800 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20801 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20805 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20806 NDR_PULL_ALLOC(ndr, r->out.needed);
20808 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20809 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20810 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20812 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20814 return NDR_ERR_SUCCESS;
20817 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
20819 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
20820 ndr->depth++;
20821 if (flags & NDR_SET_VALUES) {
20822 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20824 if (flags & NDR_IN) {
20825 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
20826 ndr->depth++;
20827 ndr_print_ptr(ndr, "handle", r->in.handle);
20828 ndr->depth++;
20829 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20830 ndr->depth--;
20831 ndr_print_uint32(ndr, "level", r->in.level);
20832 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20833 ndr->depth++;
20834 if (r->in.buffer) {
20835 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20837 ndr->depth--;
20838 ndr_print_uint32(ndr, "offered", r->in.offered);
20839 ndr->depth--;
20841 if (flags & NDR_OUT) {
20842 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
20843 ndr->depth++;
20844 ndr_print_ptr(ndr, "info", r->out.info);
20845 ndr->depth++;
20846 if (r->out.info) {
20847 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20848 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
20850 ndr->depth--;
20851 ndr_print_ptr(ndr, "needed", r->out.needed);
20852 ndr->depth++;
20853 ndr_print_uint32(ndr, "needed", *r->out.needed);
20854 ndr->depth--;
20855 ndr_print_WERROR(ndr, "result", r->out.result);
20856 ndr->depth--;
20858 ndr->depth--;
20861 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
20863 if (flags & NDR_IN) {
20864 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
20865 if (r->in.servername) {
20866 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20867 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20868 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20869 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20871 if (r->in.info_ctr == NULL) {
20872 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20874 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20876 if (flags & NDR_OUT) {
20877 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20879 return NDR_ERR_SUCCESS;
20882 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
20884 uint32_t _ptr_servername;
20885 TALLOC_CTX *_mem_save_servername_0;
20886 TALLOC_CTX *_mem_save_info_ctr_0;
20887 if (flags & NDR_IN) {
20888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
20889 if (_ptr_servername) {
20890 NDR_PULL_ALLOC(ndr, r->in.servername);
20891 } else {
20892 r->in.servername = NULL;
20894 if (r->in.servername) {
20895 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20896 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
20897 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20898 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20899 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
20900 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));
20902 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
20903 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
20904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
20906 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20907 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20909 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20910 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20911 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20914 if (flags & NDR_OUT) {
20915 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20917 return NDR_ERR_SUCCESS;
20920 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
20922 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
20923 ndr->depth++;
20924 if (flags & NDR_SET_VALUES) {
20925 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20927 if (flags & NDR_IN) {
20928 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
20929 ndr->depth++;
20930 ndr_print_ptr(ndr, "servername", r->in.servername);
20931 ndr->depth++;
20932 if (r->in.servername) {
20933 ndr_print_string(ndr, "servername", r->in.servername);
20935 ndr->depth--;
20936 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20937 ndr->depth++;
20938 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20939 ndr->depth--;
20940 ndr->depth--;
20942 if (flags & NDR_OUT) {
20943 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
20944 ndr->depth++;
20945 ndr_print_WERROR(ndr, "result", r->out.result);
20946 ndr->depth--;
20948 ndr->depth--;
20951 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
20953 if (flags & NDR_IN) {
20954 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20955 if (r->in.server) {
20956 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20957 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20958 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20959 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20961 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20962 if (r->in.environment) {
20963 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20964 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20965 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20966 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20969 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20970 if (r->in.buffer) {
20971 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20973 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20975 if (flags & NDR_OUT) {
20976 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20977 if (r->out.info) {
20978 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20980 if (r->out.needed == NULL) {
20981 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20984 if (r->out.count == NULL) {
20985 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20988 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20990 return NDR_ERR_SUCCESS;
20993 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
20995 uint32_t _ptr_server;
20996 uint32_t _ptr_environment;
20997 uint32_t _ptr_buffer;
20998 uint32_t _ptr_info;
20999 TALLOC_CTX *_mem_save_server_0;
21000 TALLOC_CTX *_mem_save_environment_0;
21001 TALLOC_CTX *_mem_save_buffer_0;
21002 TALLOC_CTX *_mem_save_info_0;
21003 TALLOC_CTX *_mem_save_needed_0;
21004 TALLOC_CTX *_mem_save_count_0;
21005 if (flags & NDR_IN) {
21006 ZERO_STRUCT(r->out);
21008 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21009 if (_ptr_server) {
21010 NDR_PULL_ALLOC(ndr, r->in.server);
21011 } else {
21012 r->in.server = NULL;
21014 if (r->in.server) {
21015 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21016 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21017 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21018 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21019 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21020 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));
21022 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21023 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21026 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21027 if (_ptr_environment) {
21028 NDR_PULL_ALLOC(ndr, r->in.environment);
21029 } else {
21030 r->in.environment = NULL;
21032 if (r->in.environment) {
21033 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21034 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21035 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21036 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21037 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21038 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));
21040 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21041 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21044 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21046 if (_ptr_buffer) {
21047 NDR_PULL_ALLOC(ndr, r->in.buffer);
21048 } else {
21049 r->in.buffer = NULL;
21051 if (r->in.buffer) {
21052 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21053 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21054 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21055 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21057 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21058 NDR_PULL_ALLOC(ndr, r->out.needed);
21059 ZERO_STRUCTP(r->out.needed);
21060 NDR_PULL_ALLOC(ndr, r->out.count);
21061 ZERO_STRUCTP(r->out.count);
21063 if (flags & NDR_OUT) {
21064 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21065 if (_ptr_info) {
21066 NDR_PULL_ALLOC(ndr, r->out.info);
21067 } else {
21068 r->out.info = NULL;
21070 if (r->out.info) {
21071 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21072 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21073 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21076 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21077 NDR_PULL_ALLOC(ndr, r->out.needed);
21079 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21080 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21081 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21083 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21084 NDR_PULL_ALLOC(ndr, r->out.count);
21086 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21087 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21088 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21089 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21090 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21092 return NDR_ERR_SUCCESS;
21095 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
21097 uint32_t cntr_info_0;
21098 if (flags & NDR_IN) {
21099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21102 if (flags & NDR_OUT) {
21103 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21104 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21105 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21107 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21108 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21111 return NDR_ERR_SUCCESS;
21114 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
21116 uint32_t cntr_info_0;
21117 TALLOC_CTX *_mem_save_info_0;
21118 if (flags & NDR_IN) {
21119 ZERO_STRUCT(r->out);
21121 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21122 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21124 if (flags & NDR_OUT) {
21125 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21126 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21127 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21128 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21129 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21130 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21132 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21133 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21137 return NDR_ERR_SUCCESS;
21140 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
21142 uint32_t cntr_info_2;
21143 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
21144 ndr->depth++;
21145 if (flags & NDR_SET_VALUES) {
21146 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21148 if (flags & NDR_IN) {
21149 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
21150 ndr->depth++;
21151 ndr_print_ptr(ndr, "server", r->in.server);
21152 ndr->depth++;
21153 if (r->in.server) {
21154 ndr_print_string(ndr, "server", r->in.server);
21156 ndr->depth--;
21157 ndr_print_ptr(ndr, "environment", r->in.environment);
21158 ndr->depth++;
21159 if (r->in.environment) {
21160 ndr_print_string(ndr, "environment", r->in.environment);
21162 ndr->depth--;
21163 ndr_print_uint32(ndr, "level", r->in.level);
21164 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21165 ndr->depth++;
21166 if (r->in.buffer) {
21167 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21169 ndr->depth--;
21170 ndr_print_uint32(ndr, "offered", r->in.offered);
21171 ndr->depth--;
21173 if (flags & NDR_OUT) {
21174 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
21175 ndr->depth++;
21176 ndr_print_ptr(ndr, "count", r->out.count);
21177 ndr->depth++;
21178 ndr_print_uint32(ndr, "count", *r->out.count);
21179 ndr->depth--;
21180 ndr_print_ptr(ndr, "info", r->out.info);
21181 ndr->depth++;
21182 ndr_print_ptr(ndr, "info", *r->out.info);
21183 ndr->depth++;
21184 if (*r->out.info) {
21185 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21186 ndr->depth++;
21187 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21188 char *idx_2=NULL;
21189 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21190 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21191 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21192 free(idx_2);
21195 ndr->depth--;
21197 ndr->depth--;
21198 ndr->depth--;
21199 ndr_print_ptr(ndr, "needed", r->out.needed);
21200 ndr->depth++;
21201 ndr_print_uint32(ndr, "needed", *r->out.needed);
21202 ndr->depth--;
21203 ndr_print_WERROR(ndr, "result", r->out.result);
21204 ndr->depth--;
21206 ndr->depth--;
21209 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
21211 if (flags & NDR_IN) {
21212 if (r->in.handle == NULL) {
21213 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21215 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21216 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
21217 if (r->in.architecture) {
21218 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21219 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21220 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21221 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21224 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21225 if (r->in.buffer) {
21226 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21228 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21230 if (flags & NDR_OUT) {
21231 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21232 if (r->out.info) {
21234 struct ndr_push *_ndr_info;
21235 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21236 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21237 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21238 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21241 if (r->out.needed == NULL) {
21242 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21245 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21247 return NDR_ERR_SUCCESS;
21250 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
21252 uint32_t _ptr_architecture;
21253 uint32_t _ptr_buffer;
21254 uint32_t _ptr_info;
21255 TALLOC_CTX *_mem_save_handle_0;
21256 TALLOC_CTX *_mem_save_architecture_0;
21257 TALLOC_CTX *_mem_save_buffer_0;
21258 TALLOC_CTX *_mem_save_info_0;
21259 TALLOC_CTX *_mem_save_needed_0;
21260 if (flags & NDR_IN) {
21261 ZERO_STRUCT(r->out);
21263 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21264 NDR_PULL_ALLOC(ndr, r->in.handle);
21266 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21267 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21268 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21269 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21270 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
21271 if (_ptr_architecture) {
21272 NDR_PULL_ALLOC(ndr, r->in.architecture);
21273 } else {
21274 r->in.architecture = NULL;
21276 if (r->in.architecture) {
21277 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
21278 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
21279 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21280 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21281 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21282 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));
21284 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21285 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
21288 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21289 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21290 if (_ptr_buffer) {
21291 NDR_PULL_ALLOC(ndr, r->in.buffer);
21292 } else {
21293 r->in.buffer = NULL;
21295 if (r->in.buffer) {
21296 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21297 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21298 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21301 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21302 NDR_PULL_ALLOC(ndr, r->out.needed);
21303 ZERO_STRUCTP(r->out.needed);
21305 if (flags & NDR_OUT) {
21306 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21307 if (_ptr_info) {
21308 NDR_PULL_ALLOC(ndr, r->out.info);
21309 } else {
21310 r->out.info = NULL;
21312 if (r->out.info) {
21313 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21314 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21316 struct ndr_pull *_ndr_info;
21317 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21318 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21319 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21320 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21324 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21325 NDR_PULL_ALLOC(ndr, r->out.needed);
21327 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21328 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21331 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21333 return NDR_ERR_SUCCESS;
21336 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
21338 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
21339 ndr->depth++;
21340 if (flags & NDR_SET_VALUES) {
21341 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21343 if (flags & NDR_IN) {
21344 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
21345 ndr->depth++;
21346 ndr_print_ptr(ndr, "handle", r->in.handle);
21347 ndr->depth++;
21348 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21349 ndr->depth--;
21350 ndr_print_ptr(ndr, "architecture", r->in.architecture);
21351 ndr->depth++;
21352 if (r->in.architecture) {
21353 ndr_print_string(ndr, "architecture", r->in.architecture);
21355 ndr->depth--;
21356 ndr_print_uint32(ndr, "level", r->in.level);
21357 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21358 ndr->depth++;
21359 if (r->in.buffer) {
21360 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21362 ndr->depth--;
21363 ndr_print_uint32(ndr, "offered", r->in.offered);
21364 ndr->depth--;
21366 if (flags & NDR_OUT) {
21367 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
21368 ndr->depth++;
21369 ndr_print_ptr(ndr, "info", r->out.info);
21370 ndr->depth++;
21371 if (r->out.info) {
21372 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21373 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
21375 ndr->depth--;
21376 ndr_print_ptr(ndr, "needed", r->out.needed);
21377 ndr->depth++;
21378 ndr_print_uint32(ndr, "needed", *r->out.needed);
21379 ndr->depth--;
21380 ndr_print_WERROR(ndr, "result", r->out.result);
21381 ndr->depth--;
21383 ndr->depth--;
21386 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21388 if (flags & NDR_IN) {
21389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21390 if (r->in.server) {
21391 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21392 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21393 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21394 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21396 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21397 if (r->in.environment) {
21398 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21399 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21400 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21401 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21404 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21405 if (r->in.buffer) {
21406 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
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.info));
21412 if (r->out.info) {
21414 struct ndr_push *_ndr_info;
21415 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21416 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21417 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21418 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21421 if (r->out.needed == NULL) {
21422 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21425 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21427 return NDR_ERR_SUCCESS;
21430 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
21432 uint32_t _ptr_server;
21433 uint32_t _ptr_environment;
21434 uint32_t _ptr_buffer;
21435 uint32_t _ptr_info;
21436 TALLOC_CTX *_mem_save_server_0;
21437 TALLOC_CTX *_mem_save_environment_0;
21438 TALLOC_CTX *_mem_save_buffer_0;
21439 TALLOC_CTX *_mem_save_info_0;
21440 TALLOC_CTX *_mem_save_needed_0;
21441 if (flags & NDR_IN) {
21442 ZERO_STRUCT(r->out);
21444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21445 if (_ptr_server) {
21446 NDR_PULL_ALLOC(ndr, r->in.server);
21447 } else {
21448 r->in.server = NULL;
21450 if (r->in.server) {
21451 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21452 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21453 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21454 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21455 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21456 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));
21458 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21459 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21462 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21463 if (_ptr_environment) {
21464 NDR_PULL_ALLOC(ndr, r->in.environment);
21465 } else {
21466 r->in.environment = NULL;
21468 if (r->in.environment) {
21469 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21470 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21471 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21472 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21473 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21474 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));
21476 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21477 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21480 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21481 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21482 if (_ptr_buffer) {
21483 NDR_PULL_ALLOC(ndr, r->in.buffer);
21484 } else {
21485 r->in.buffer = NULL;
21487 if (r->in.buffer) {
21488 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21489 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21490 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21494 NDR_PULL_ALLOC(ndr, r->out.needed);
21495 ZERO_STRUCTP(r->out.needed);
21497 if (flags & NDR_OUT) {
21498 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21499 if (_ptr_info) {
21500 NDR_PULL_ALLOC(ndr, r->out.info);
21501 } else {
21502 r->out.info = NULL;
21504 if (r->out.info) {
21505 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21506 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21508 struct ndr_pull *_ndr_info;
21509 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21510 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21511 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21512 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21514 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21516 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21517 NDR_PULL_ALLOC(ndr, r->out.needed);
21519 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21520 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21523 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21525 return NDR_ERR_SUCCESS;
21528 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21530 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
21531 ndr->depth++;
21532 if (flags & NDR_SET_VALUES) {
21533 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21535 if (flags & NDR_IN) {
21536 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
21537 ndr->depth++;
21538 ndr_print_ptr(ndr, "server", r->in.server);
21539 ndr->depth++;
21540 if (r->in.server) {
21541 ndr_print_string(ndr, "server", r->in.server);
21543 ndr->depth--;
21544 ndr_print_ptr(ndr, "environment", r->in.environment);
21545 ndr->depth++;
21546 if (r->in.environment) {
21547 ndr_print_string(ndr, "environment", r->in.environment);
21549 ndr->depth--;
21550 ndr_print_uint32(ndr, "level", r->in.level);
21551 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21552 ndr->depth++;
21553 if (r->in.buffer) {
21554 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21556 ndr->depth--;
21557 ndr_print_uint32(ndr, "offered", r->in.offered);
21558 ndr->depth--;
21560 if (flags & NDR_OUT) {
21561 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
21562 ndr->depth++;
21563 ndr_print_ptr(ndr, "info", r->out.info);
21564 ndr->depth++;
21565 if (r->out.info) {
21566 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21567 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
21569 ndr->depth--;
21570 ndr_print_ptr(ndr, "needed", r->out.needed);
21571 ndr->depth++;
21572 ndr_print_uint32(ndr, "needed", *r->out.needed);
21573 ndr->depth--;
21574 ndr_print_WERROR(ndr, "result", r->out.result);
21575 ndr->depth--;
21577 ndr->depth--;
21580 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
21582 if (flags & NDR_IN) {
21583 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21584 if (r->in.server) {
21585 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21586 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21587 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21588 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21590 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21591 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21592 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21593 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21594 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21595 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21596 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21597 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21599 if (flags & NDR_OUT) {
21600 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21602 return NDR_ERR_SUCCESS;
21605 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
21607 uint32_t _ptr_server;
21608 TALLOC_CTX *_mem_save_server_0;
21609 if (flags & NDR_IN) {
21610 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21611 if (_ptr_server) {
21612 NDR_PULL_ALLOC(ndr, r->in.server);
21613 } else {
21614 r->in.server = NULL;
21616 if (r->in.server) {
21617 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21618 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21619 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21620 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21621 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21622 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));
21624 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21625 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21628 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21629 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21630 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21631 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));
21633 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21634 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21635 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
21636 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
21637 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
21638 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));
21640 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
21641 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
21643 if (flags & NDR_OUT) {
21644 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21646 return NDR_ERR_SUCCESS;
21649 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
21651 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
21652 ndr->depth++;
21653 if (flags & NDR_SET_VALUES) {
21654 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21656 if (flags & NDR_IN) {
21657 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
21658 ndr->depth++;
21659 ndr_print_ptr(ndr, "server", r->in.server);
21660 ndr->depth++;
21661 if (r->in.server) {
21662 ndr_print_string(ndr, "server", r->in.server);
21664 ndr->depth--;
21665 ndr_print_string(ndr, "architecture", r->in.architecture);
21666 ndr_print_string(ndr, "driver", r->in.driver);
21667 ndr->depth--;
21669 if (flags & NDR_OUT) {
21670 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
21671 ndr->depth++;
21672 ndr_print_WERROR(ndr, "result", r->out.result);
21673 ndr->depth--;
21675 ndr->depth--;
21678 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
21680 if (flags & NDR_IN) {
21681 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21682 if (r->in.server) {
21683 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21684 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21685 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21686 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21688 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21689 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21690 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21691 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21692 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
21693 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21694 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
21695 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));
21696 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
21697 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21698 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
21699 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));
21701 if (flags & NDR_OUT) {
21702 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21704 return NDR_ERR_SUCCESS;
21707 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
21709 uint32_t _ptr_server;
21710 TALLOC_CTX *_mem_save_server_0;
21711 if (flags & NDR_IN) {
21712 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21713 if (_ptr_server) {
21714 NDR_PULL_ALLOC(ndr, r->in.server);
21715 } else {
21716 r->in.server = NULL;
21718 if (r->in.server) {
21719 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21720 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21721 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21722 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21723 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21724 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));
21726 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21727 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21728 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21730 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21731 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21732 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21733 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));
21735 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21736 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21737 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
21738 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
21739 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
21740 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));
21742 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
21743 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));
21744 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
21745 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
21746 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
21747 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));
21749 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
21750 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));
21752 if (flags & NDR_OUT) {
21753 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21755 return NDR_ERR_SUCCESS;
21758 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
21760 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
21761 ndr->depth++;
21762 if (flags & NDR_SET_VALUES) {
21763 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21765 if (flags & NDR_IN) {
21766 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
21767 ndr->depth++;
21768 ndr_print_ptr(ndr, "server", r->in.server);
21769 ndr->depth++;
21770 if (r->in.server) {
21771 ndr_print_string(ndr, "server", r->in.server);
21773 ndr->depth--;
21774 ndr_print_string(ndr, "architecture", r->in.architecture);
21775 ndr_print_string(ndr, "path_name", r->in.path_name);
21776 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
21777 ndr->depth--;
21779 if (flags & NDR_OUT) {
21780 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
21781 ndr->depth++;
21782 ndr_print_WERROR(ndr, "result", r->out.result);
21783 ndr->depth--;
21785 ndr->depth--;
21788 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
21790 if (flags & NDR_IN) {
21791 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21792 if (r->in.servername) {
21793 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21794 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21795 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21796 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21798 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21799 if (r->in.environment) {
21800 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21801 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21802 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21803 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21807 if (r->in.buffer) {
21808 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21812 if (flags & NDR_OUT) {
21813 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21814 if (r->out.info) {
21815 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21817 if (r->out.needed == NULL) {
21818 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21821 if (r->out.count == NULL) {
21822 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21825 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21827 return NDR_ERR_SUCCESS;
21830 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
21832 uint32_t _ptr_servername;
21833 uint32_t _ptr_environment;
21834 uint32_t _ptr_buffer;
21835 uint32_t _ptr_info;
21836 TALLOC_CTX *_mem_save_servername_0;
21837 TALLOC_CTX *_mem_save_environment_0;
21838 TALLOC_CTX *_mem_save_buffer_0;
21839 TALLOC_CTX *_mem_save_info_0;
21840 TALLOC_CTX *_mem_save_needed_0;
21841 TALLOC_CTX *_mem_save_count_0;
21842 if (flags & NDR_IN) {
21843 ZERO_STRUCT(r->out);
21845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
21846 if (_ptr_servername) {
21847 NDR_PULL_ALLOC(ndr, r->in.servername);
21848 } else {
21849 r->in.servername = NULL;
21851 if (r->in.servername) {
21852 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21853 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21854 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21855 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21856 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
21857 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));
21859 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
21860 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
21861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21863 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21864 if (_ptr_environment) {
21865 NDR_PULL_ALLOC(ndr, r->in.environment);
21866 } else {
21867 r->in.environment = NULL;
21869 if (r->in.environment) {
21870 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21871 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21872 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21873 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21874 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21875 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));
21877 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21878 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21881 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21883 if (_ptr_buffer) {
21884 NDR_PULL_ALLOC(ndr, r->in.buffer);
21885 } else {
21886 r->in.buffer = NULL;
21888 if (r->in.buffer) {
21889 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21890 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21891 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21895 NDR_PULL_ALLOC(ndr, r->out.needed);
21896 ZERO_STRUCTP(r->out.needed);
21897 NDR_PULL_ALLOC(ndr, r->out.count);
21898 ZERO_STRUCTP(r->out.count);
21900 if (flags & NDR_OUT) {
21901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21902 if (_ptr_info) {
21903 NDR_PULL_ALLOC(ndr, r->out.info);
21904 } else {
21905 r->out.info = NULL;
21907 if (r->out.info) {
21908 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21909 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21910 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21913 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21914 NDR_PULL_ALLOC(ndr, r->out.needed);
21916 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21917 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21918 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21920 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21921 NDR_PULL_ALLOC(ndr, r->out.count);
21923 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21924 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21925 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21926 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21927 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21929 return NDR_ERR_SUCCESS;
21932 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
21934 uint32_t cntr_info_0;
21935 if (flags & NDR_IN) {
21936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21937 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21939 if (flags & NDR_OUT) {
21940 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21941 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21942 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21944 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21945 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21948 return NDR_ERR_SUCCESS;
21951 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
21953 uint32_t cntr_info_0;
21954 TALLOC_CTX *_mem_save_info_0;
21955 if (flags & NDR_IN) {
21956 ZERO_STRUCT(r->out);
21958 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21959 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21961 if (flags & NDR_OUT) {
21962 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21963 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21964 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21965 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21966 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21967 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21969 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21970 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21974 return NDR_ERR_SUCCESS;
21977 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
21979 uint32_t cntr_info_2;
21980 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
21981 ndr->depth++;
21982 if (flags & NDR_SET_VALUES) {
21983 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21985 if (flags & NDR_IN) {
21986 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
21987 ndr->depth++;
21988 ndr_print_ptr(ndr, "servername", r->in.servername);
21989 ndr->depth++;
21990 if (r->in.servername) {
21991 ndr_print_string(ndr, "servername", r->in.servername);
21993 ndr->depth--;
21994 ndr_print_ptr(ndr, "environment", r->in.environment);
21995 ndr->depth++;
21996 if (r->in.environment) {
21997 ndr_print_string(ndr, "environment", r->in.environment);
21999 ndr->depth--;
22000 ndr_print_uint32(ndr, "level", r->in.level);
22001 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22002 ndr->depth++;
22003 if (r->in.buffer) {
22004 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22006 ndr->depth--;
22007 ndr_print_uint32(ndr, "offered", r->in.offered);
22008 ndr->depth--;
22010 if (flags & NDR_OUT) {
22011 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
22012 ndr->depth++;
22013 ndr_print_ptr(ndr, "count", r->out.count);
22014 ndr->depth++;
22015 ndr_print_uint32(ndr, "count", *r->out.count);
22016 ndr->depth--;
22017 ndr_print_ptr(ndr, "info", r->out.info);
22018 ndr->depth++;
22019 ndr_print_ptr(ndr, "info", *r->out.info);
22020 ndr->depth++;
22021 if (*r->out.info) {
22022 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22023 ndr->depth++;
22024 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22025 char *idx_2=NULL;
22026 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22027 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22028 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22029 free(idx_2);
22032 ndr->depth--;
22034 ndr->depth--;
22035 ndr->depth--;
22036 ndr_print_ptr(ndr, "needed", r->out.needed);
22037 ndr->depth++;
22038 ndr_print_uint32(ndr, "needed", *r->out.needed);
22039 ndr->depth--;
22040 ndr_print_WERROR(ndr, "result", r->out.result);
22041 ndr->depth--;
22043 ndr->depth--;
22046 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22048 if (flags & NDR_IN) {
22049 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22050 if (r->in.server) {
22051 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22052 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22053 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22054 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22056 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22057 if (r->in.environment) {
22058 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22059 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22060 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22061 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22064 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22065 if (r->in.buffer) {
22066 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22068 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22070 if (flags & NDR_OUT) {
22071 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22072 if (r->out.info) {
22074 struct ndr_push *_ndr_info;
22075 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22076 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22077 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22078 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22081 if (r->out.needed == NULL) {
22082 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22085 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22087 return NDR_ERR_SUCCESS;
22090 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
22092 uint32_t _ptr_server;
22093 uint32_t _ptr_environment;
22094 uint32_t _ptr_buffer;
22095 uint32_t _ptr_info;
22096 TALLOC_CTX *_mem_save_server_0;
22097 TALLOC_CTX *_mem_save_environment_0;
22098 TALLOC_CTX *_mem_save_buffer_0;
22099 TALLOC_CTX *_mem_save_info_0;
22100 TALLOC_CTX *_mem_save_needed_0;
22101 if (flags & NDR_IN) {
22102 ZERO_STRUCT(r->out);
22104 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22105 if (_ptr_server) {
22106 NDR_PULL_ALLOC(ndr, r->in.server);
22107 } else {
22108 r->in.server = NULL;
22110 if (r->in.server) {
22111 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22112 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22113 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22114 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22115 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22116 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));
22118 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22119 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22122 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22123 if (_ptr_environment) {
22124 NDR_PULL_ALLOC(ndr, r->in.environment);
22125 } else {
22126 r->in.environment = NULL;
22128 if (r->in.environment) {
22129 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22130 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22131 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22132 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22133 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22134 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));
22136 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22137 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22138 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22140 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22142 if (_ptr_buffer) {
22143 NDR_PULL_ALLOC(ndr, r->in.buffer);
22144 } else {
22145 r->in.buffer = NULL;
22147 if (r->in.buffer) {
22148 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22149 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22150 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22154 NDR_PULL_ALLOC(ndr, r->out.needed);
22155 ZERO_STRUCTP(r->out.needed);
22157 if (flags & NDR_OUT) {
22158 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22159 if (_ptr_info) {
22160 NDR_PULL_ALLOC(ndr, r->out.info);
22161 } else {
22162 r->out.info = NULL;
22164 if (r->out.info) {
22165 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22166 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22168 struct ndr_pull *_ndr_info;
22169 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22170 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22171 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22172 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22176 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22177 NDR_PULL_ALLOC(ndr, r->out.needed);
22179 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22180 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22181 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22183 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22185 return NDR_ERR_SUCCESS;
22188 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22190 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
22191 ndr->depth++;
22192 if (flags & NDR_SET_VALUES) {
22193 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22195 if (flags & NDR_IN) {
22196 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
22197 ndr->depth++;
22198 ndr_print_ptr(ndr, "server", r->in.server);
22199 ndr->depth++;
22200 if (r->in.server) {
22201 ndr_print_string(ndr, "server", r->in.server);
22203 ndr->depth--;
22204 ndr_print_ptr(ndr, "environment", r->in.environment);
22205 ndr->depth++;
22206 if (r->in.environment) {
22207 ndr_print_string(ndr, "environment", r->in.environment);
22209 ndr->depth--;
22210 ndr_print_uint32(ndr, "level", r->in.level);
22211 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22212 ndr->depth++;
22213 if (r->in.buffer) {
22214 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22216 ndr->depth--;
22217 ndr_print_uint32(ndr, "offered", r->in.offered);
22218 ndr->depth--;
22220 if (flags & NDR_OUT) {
22221 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
22222 ndr->depth++;
22223 ndr_print_ptr(ndr, "info", r->out.info);
22224 ndr->depth++;
22225 if (r->out.info) {
22226 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22227 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
22229 ndr->depth--;
22230 ndr_print_ptr(ndr, "needed", r->out.needed);
22231 ndr->depth++;
22232 ndr_print_uint32(ndr, "needed", *r->out.needed);
22233 ndr->depth--;
22234 ndr_print_WERROR(ndr, "result", r->out.result);
22235 ndr->depth--;
22237 ndr->depth--;
22240 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
22242 if (flags & NDR_IN) {
22243 if (r->in.handle == NULL) {
22244 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22246 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22248 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22249 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22251 if (flags & NDR_OUT) {
22252 if (r->out.job_id == NULL) {
22253 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
22256 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22258 return NDR_ERR_SUCCESS;
22261 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
22263 TALLOC_CTX *_mem_save_handle_0;
22264 TALLOC_CTX *_mem_save_job_id_0;
22265 if (flags & NDR_IN) {
22266 ZERO_STRUCT(r->out);
22268 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22269 NDR_PULL_ALLOC(ndr, r->in.handle);
22271 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22272 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22273 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22274 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22276 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22277 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22278 NDR_PULL_ALLOC(ndr, r->out.job_id);
22279 ZERO_STRUCTP(r->out.job_id);
22281 if (flags & NDR_OUT) {
22282 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22283 NDR_PULL_ALLOC(ndr, r->out.job_id);
22285 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
22286 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
22287 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
22288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
22289 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22291 return NDR_ERR_SUCCESS;
22294 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
22296 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
22297 ndr->depth++;
22298 if (flags & NDR_SET_VALUES) {
22299 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22301 if (flags & NDR_IN) {
22302 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
22303 ndr->depth++;
22304 ndr_print_ptr(ndr, "handle", r->in.handle);
22305 ndr->depth++;
22306 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22307 ndr->depth--;
22308 ndr_print_uint32(ndr, "level", r->in.level);
22309 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22310 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
22311 ndr->depth--;
22313 if (flags & NDR_OUT) {
22314 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
22315 ndr->depth++;
22316 ndr_print_ptr(ndr, "job_id", r->out.job_id);
22317 ndr->depth++;
22318 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
22319 ndr->depth--;
22320 ndr_print_WERROR(ndr, "result", r->out.result);
22321 ndr->depth--;
22323 ndr->depth--;
22326 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
22328 if (flags & NDR_IN) {
22329 if (r->in.handle == NULL) {
22330 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22332 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22334 if (flags & NDR_OUT) {
22335 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22337 return NDR_ERR_SUCCESS;
22340 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
22342 TALLOC_CTX *_mem_save_handle_0;
22343 if (flags & NDR_IN) {
22344 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22345 NDR_PULL_ALLOC(ndr, r->in.handle);
22347 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22348 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22349 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22352 if (flags & NDR_OUT) {
22353 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22355 return NDR_ERR_SUCCESS;
22358 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
22360 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
22361 ndr->depth++;
22362 if (flags & NDR_SET_VALUES) {
22363 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22365 if (flags & NDR_IN) {
22366 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
22367 ndr->depth++;
22368 ndr_print_ptr(ndr, "handle", r->in.handle);
22369 ndr->depth++;
22370 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22371 ndr->depth--;
22372 ndr->depth--;
22374 if (flags & NDR_OUT) {
22375 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
22376 ndr->depth++;
22377 ndr_print_WERROR(ndr, "result", r->out.result);
22378 ndr->depth--;
22380 ndr->depth--;
22383 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
22385 if (flags & NDR_IN) {
22386 if (r->in.handle == NULL) {
22387 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22389 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22390 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
22391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
22393 if (flags & NDR_OUT) {
22394 if (r->out.num_written == NULL) {
22395 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
22398 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22400 return NDR_ERR_SUCCESS;
22403 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
22405 TALLOC_CTX *_mem_save_handle_0;
22406 TALLOC_CTX *_mem_save_num_written_0;
22407 if (flags & NDR_IN) {
22408 ZERO_STRUCT(r->out);
22410 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22411 NDR_PULL_ALLOC(ndr, r->in.handle);
22413 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22414 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22415 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22417 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
22418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
22419 NDR_PULL_ALLOC(ndr, r->out.num_written);
22420 ZERO_STRUCTP(r->out.num_written);
22422 if (flags & NDR_OUT) {
22423 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22424 NDR_PULL_ALLOC(ndr, r->out.num_written);
22426 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
22427 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
22428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
22429 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
22430 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22432 return NDR_ERR_SUCCESS;
22435 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
22437 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
22438 ndr->depth++;
22439 if (flags & NDR_SET_VALUES) {
22440 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22442 if (flags & NDR_IN) {
22443 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
22444 ndr->depth++;
22445 ndr_print_ptr(ndr, "handle", r->in.handle);
22446 ndr->depth++;
22447 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22448 ndr->depth--;
22449 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
22450 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
22451 ndr->depth--;
22453 if (flags & NDR_OUT) {
22454 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
22455 ndr->depth++;
22456 ndr_print_ptr(ndr, "num_written", r->out.num_written);
22457 ndr->depth++;
22458 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
22459 ndr->depth--;
22460 ndr_print_WERROR(ndr, "result", r->out.result);
22461 ndr->depth--;
22463 ndr->depth--;
22466 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
22468 if (flags & NDR_IN) {
22469 if (r->in.handle == NULL) {
22470 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22472 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22474 if (flags & NDR_OUT) {
22475 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22477 return NDR_ERR_SUCCESS;
22480 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
22482 TALLOC_CTX *_mem_save_handle_0;
22483 if (flags & NDR_IN) {
22484 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22485 NDR_PULL_ALLOC(ndr, r->in.handle);
22487 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22488 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22489 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22492 if (flags & NDR_OUT) {
22493 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22495 return NDR_ERR_SUCCESS;
22498 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
22500 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
22501 ndr->depth++;
22502 if (flags & NDR_SET_VALUES) {
22503 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22505 if (flags & NDR_IN) {
22506 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
22507 ndr->depth++;
22508 ndr_print_ptr(ndr, "handle", r->in.handle);
22509 ndr->depth++;
22510 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22511 ndr->depth--;
22512 ndr->depth--;
22514 if (flags & NDR_OUT) {
22515 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
22516 ndr->depth++;
22517 ndr_print_WERROR(ndr, "result", r->out.result);
22518 ndr->depth--;
22520 ndr->depth--;
22523 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
22525 if (flags & NDR_IN) {
22526 if (r->in.handle == NULL) {
22527 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22529 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22531 if (flags & NDR_OUT) {
22532 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22534 return NDR_ERR_SUCCESS;
22537 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
22539 TALLOC_CTX *_mem_save_handle_0;
22540 if (flags & NDR_IN) {
22541 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22542 NDR_PULL_ALLOC(ndr, r->in.handle);
22544 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22545 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22546 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22549 if (flags & NDR_OUT) {
22550 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22552 return NDR_ERR_SUCCESS;
22555 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
22557 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
22558 ndr->depth++;
22559 if (flags & NDR_SET_VALUES) {
22560 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22562 if (flags & NDR_IN) {
22563 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
22564 ndr->depth++;
22565 ndr_print_ptr(ndr, "handle", r->in.handle);
22566 ndr->depth++;
22567 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22568 ndr->depth--;
22569 ndr->depth--;
22571 if (flags & NDR_OUT) {
22572 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
22573 ndr->depth++;
22574 ndr_print_WERROR(ndr, "result", r->out.result);
22575 ndr->depth--;
22577 ndr->depth--;
22580 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
22582 if (flags & NDR_IN) {
22583 if (r->in.handle == NULL) {
22584 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22586 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
22589 if (flags & NDR_OUT) {
22590 if (r->out.data == NULL) {
22591 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22593 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
22594 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
22595 if (r->out._data_size == NULL) {
22596 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
22599 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22601 return NDR_ERR_SUCCESS;
22604 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
22606 TALLOC_CTX *_mem_save_handle_0;
22607 TALLOC_CTX *_mem_save__data_size_0;
22608 if (flags & NDR_IN) {
22609 ZERO_STRUCT(r->out);
22611 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22612 NDR_PULL_ALLOC(ndr, r->in.handle);
22614 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22615 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22616 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22618 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
22619 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
22620 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
22621 NDR_PULL_ALLOC(ndr, r->out._data_size);
22622 ZERO_STRUCTP(r->out._data_size);
22624 if (flags & NDR_OUT) {
22625 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
22626 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22627 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
22629 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
22630 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22631 NDR_PULL_ALLOC(ndr, r->out._data_size);
22633 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
22634 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
22635 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
22636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
22637 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22638 if (r->out.data) {
22639 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
22642 return NDR_ERR_SUCCESS;
22645 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
22647 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
22648 ndr->depth++;
22649 if (flags & NDR_SET_VALUES) {
22650 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22652 if (flags & NDR_IN) {
22653 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
22654 ndr->depth++;
22655 ndr_print_ptr(ndr, "handle", r->in.handle);
22656 ndr->depth++;
22657 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22658 ndr->depth--;
22659 ndr_print_uint32(ndr, "data_size", r->in.data_size);
22660 ndr->depth--;
22662 if (flags & NDR_OUT) {
22663 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
22664 ndr->depth++;
22665 ndr_print_ptr(ndr, "data", r->out.data);
22666 ndr->depth++;
22667 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
22668 ndr->depth--;
22669 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
22670 ndr->depth++;
22671 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
22672 ndr->depth--;
22673 ndr_print_WERROR(ndr, "result", r->out.result);
22674 ndr->depth--;
22676 ndr->depth--;
22679 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
22681 if (flags & NDR_IN) {
22682 if (r->in.handle == NULL) {
22683 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22685 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22687 if (flags & NDR_OUT) {
22688 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22690 return NDR_ERR_SUCCESS;
22693 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
22695 TALLOC_CTX *_mem_save_handle_0;
22696 if (flags & NDR_IN) {
22697 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22698 NDR_PULL_ALLOC(ndr, r->in.handle);
22700 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22701 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22702 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22705 if (flags & NDR_OUT) {
22706 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22708 return NDR_ERR_SUCCESS;
22711 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
22713 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
22714 ndr->depth++;
22715 if (flags & NDR_SET_VALUES) {
22716 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22718 if (flags & NDR_IN) {
22719 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
22720 ndr->depth++;
22721 ndr_print_ptr(ndr, "handle", r->in.handle);
22722 ndr->depth++;
22723 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22724 ndr->depth--;
22725 ndr->depth--;
22727 if (flags & NDR_OUT) {
22728 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
22729 ndr->depth++;
22730 ndr_print_WERROR(ndr, "result", r->out.result);
22731 ndr->depth--;
22733 ndr->depth--;
22736 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
22738 if (flags & NDR_IN) {
22739 if (r->in.handle == NULL) {
22740 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22742 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22744 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22745 if (r->in.buffer) {
22746 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
22747 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
22749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22751 if (flags & NDR_OUT) {
22752 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
22753 if (r->out.buffer) {
22754 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
22755 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
22757 if (r->out.needed == NULL) {
22758 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22761 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22763 return NDR_ERR_SUCCESS;
22766 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
22768 uint32_t _ptr_buffer;
22769 TALLOC_CTX *_mem_save_handle_0;
22770 TALLOC_CTX *_mem_save_buffer_0;
22771 TALLOC_CTX *_mem_save_needed_0;
22772 if (flags & NDR_IN) {
22773 ZERO_STRUCT(r->out);
22775 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22776 NDR_PULL_ALLOC(ndr, r->in.handle);
22778 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22779 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22780 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22781 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22782 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22784 if (_ptr_buffer) {
22785 NDR_PULL_ALLOC(ndr, r->in.buffer);
22786 } else {
22787 r->in.buffer = NULL;
22789 if (r->in.buffer) {
22790 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22791 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22792 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
22793 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
22794 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
22795 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22797 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22798 NDR_PULL_ALLOC(ndr, r->out.needed);
22799 ZERO_STRUCTP(r->out.needed);
22800 if (r->in.buffer) {
22801 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
22804 if (flags & NDR_OUT) {
22805 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22806 if (_ptr_buffer) {
22807 NDR_PULL_ALLOC(ndr, r->out.buffer);
22808 } else {
22809 r->out.buffer = NULL;
22811 if (r->out.buffer) {
22812 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22813 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
22814 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
22815 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
22816 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
22817 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22819 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22820 NDR_PULL_ALLOC(ndr, r->out.needed);
22822 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22823 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22825 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22826 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22827 if (r->out.buffer) {
22828 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
22831 return NDR_ERR_SUCCESS;
22834 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
22836 ndr_print_struct(ndr, name, "spoolss_AddJob");
22837 ndr->depth++;
22838 if (flags & NDR_SET_VALUES) {
22839 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22841 if (flags & NDR_IN) {
22842 ndr_print_struct(ndr, "in", "spoolss_AddJob");
22843 ndr->depth++;
22844 ndr_print_ptr(ndr, "handle", r->in.handle);
22845 ndr->depth++;
22846 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22847 ndr->depth--;
22848 ndr_print_uint32(ndr, "level", r->in.level);
22849 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22850 ndr->depth++;
22851 if (r->in.buffer) {
22852 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
22854 ndr->depth--;
22855 ndr_print_uint32(ndr, "offered", r->in.offered);
22856 ndr->depth--;
22858 if (flags & NDR_OUT) {
22859 ndr_print_struct(ndr, "out", "spoolss_AddJob");
22860 ndr->depth++;
22861 ndr_print_ptr(ndr, "buffer", r->out.buffer);
22862 ndr->depth++;
22863 if (r->out.buffer) {
22864 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
22866 ndr->depth--;
22867 ndr_print_ptr(ndr, "needed", r->out.needed);
22868 ndr->depth++;
22869 ndr_print_uint32(ndr, "needed", *r->out.needed);
22870 ndr->depth--;
22871 ndr_print_WERROR(ndr, "result", r->out.result);
22872 ndr->depth--;
22874 ndr->depth--;
22877 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
22879 if (flags & NDR_IN) {
22880 if (r->in.handle == NULL) {
22881 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22883 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
22886 if (flags & NDR_OUT) {
22887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22889 return NDR_ERR_SUCCESS;
22892 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
22894 TALLOC_CTX *_mem_save_handle_0;
22895 if (flags & NDR_IN) {
22896 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22897 NDR_PULL_ALLOC(ndr, r->in.handle);
22899 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22900 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22901 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22903 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
22905 if (flags & NDR_OUT) {
22906 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22908 return NDR_ERR_SUCCESS;
22911 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
22913 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
22914 ndr->depth++;
22915 if (flags & NDR_SET_VALUES) {
22916 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22918 if (flags & NDR_IN) {
22919 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
22920 ndr->depth++;
22921 ndr_print_ptr(ndr, "handle", r->in.handle);
22922 ndr->depth++;
22923 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22924 ndr->depth--;
22925 ndr_print_uint32(ndr, "jobid", r->in.jobid);
22926 ndr->depth--;
22928 if (flags & NDR_OUT) {
22929 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
22930 ndr->depth++;
22931 ndr_print_WERROR(ndr, "result", r->out.result);
22932 ndr->depth--;
22934 ndr->depth--;
22937 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
22939 if (flags & NDR_IN) {
22940 if (r->in.handle == NULL) {
22941 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22943 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22944 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22945 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22946 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22947 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));
22948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22950 if (flags & NDR_OUT) {
22951 if (r->out.type == NULL) {
22952 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22954 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
22955 if (r->out.data == NULL) {
22956 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22958 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
22959 if (r->out.needed == NULL) {
22960 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22963 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22965 return NDR_ERR_SUCCESS;
22968 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
22970 TALLOC_CTX *_mem_save_handle_0;
22971 TALLOC_CTX *_mem_save_type_0;
22972 TALLOC_CTX *_mem_save_data_0;
22973 TALLOC_CTX *_mem_save_needed_0;
22974 if (flags & NDR_IN) {
22975 ZERO_STRUCT(r->out);
22977 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22978 NDR_PULL_ALLOC(ndr, r->in.handle);
22980 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22981 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22982 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22983 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22984 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22985 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22986 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22987 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));
22989 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22990 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));
22991 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22992 NDR_PULL_ALLOC(ndr, r->out.type);
22993 ZERO_STRUCTP(r->out.type);
22994 NDR_PULL_ALLOC(ndr, r->out.data);
22995 ZERO_STRUCTP(r->out.data);
22996 NDR_PULL_ALLOC(ndr, r->out.needed);
22997 ZERO_STRUCTP(r->out.needed);
22999 if (flags & NDR_OUT) {
23000 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23001 NDR_PULL_ALLOC(ndr, r->out.type);
23003 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23004 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
23005 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
23006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
23007 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23008 NDR_PULL_ALLOC(ndr, r->out.data);
23010 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23011 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23012 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
23013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23014 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23015 NDR_PULL_ALLOC(ndr, r->out.needed);
23017 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23018 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23021 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23023 return NDR_ERR_SUCCESS;
23026 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
23028 if (flags & NDR_IN) {
23029 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23031 if (flags & NDR_OUT) {
23032 if (r->out.data == NULL) {
23033 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23035 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23036 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23038 return NDR_ERR_SUCCESS;
23041 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
23043 TALLOC_CTX *_mem_save_data_0;
23044 if (flags & NDR_IN) {
23045 ZERO_STRUCT(r->out);
23047 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23048 NDR_PULL_ALLOC(ndr, r->out.data);
23049 ZERO_STRUCTP(r->out.data);
23051 if (flags & NDR_OUT) {
23052 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23053 NDR_PULL_ALLOC(ndr, r->out.data);
23055 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23056 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23057 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
23058 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23061 return NDR_ERR_SUCCESS;
23064 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
23066 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
23067 ndr->depth++;
23068 if (flags & NDR_SET_VALUES) {
23069 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23071 if (flags & NDR_IN) {
23072 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
23073 ndr->depth++;
23074 ndr_print_ptr(ndr, "handle", r->in.handle);
23075 ndr->depth++;
23076 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23077 ndr->depth--;
23078 ndr_print_string(ndr, "value_name", r->in.value_name);
23079 ndr_print_uint32(ndr, "offered", r->in.offered);
23080 ndr->depth--;
23082 if (flags & NDR_OUT) {
23083 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
23084 ndr->depth++;
23085 ndr_print_ptr(ndr, "type", r->out.type);
23086 ndr->depth++;
23087 ndr_print_winreg_Type(ndr, "type", *r->out.type);
23088 ndr->depth--;
23089 ndr_print_ptr(ndr, "data", r->out.data);
23090 ndr->depth++;
23091 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
23092 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
23093 ndr->depth--;
23094 ndr_print_ptr(ndr, "needed", r->out.needed);
23095 ndr->depth++;
23096 ndr_print_uint32(ndr, "needed", *r->out.needed);
23097 ndr->depth--;
23098 ndr_print_WERROR(ndr, "result", r->out.result);
23099 ndr->depth--;
23101 ndr->depth--;
23104 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
23106 if (flags & NDR_IN) {
23107 if (r->in.handle == NULL) {
23108 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23110 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23111 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23112 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23113 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23114 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));
23115 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23116 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
23119 if (flags & NDR_OUT) {
23120 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23122 return NDR_ERR_SUCCESS;
23125 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
23127 if (flags & NDR_IN) {
23128 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23130 if (flags & NDR_OUT) {
23131 if (r->out.data == NULL) {
23132 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23134 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23135 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23137 return NDR_ERR_SUCCESS;
23140 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
23142 TALLOC_CTX *_mem_save_handle_0;
23143 if (flags & NDR_IN) {
23144 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23145 NDR_PULL_ALLOC(ndr, r->in.handle);
23147 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23148 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23149 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23151 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23152 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23153 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23154 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));
23156 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23157 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));
23158 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23160 struct ndr_pull *_ndr_data;
23161 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
23162 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
23163 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
23164 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
23166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
23168 if (flags & NDR_OUT) {
23169 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23171 return NDR_ERR_SUCCESS;
23174 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
23176 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
23177 ndr->depth++;
23178 if (flags & NDR_SET_VALUES) {
23179 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23181 if (flags & NDR_IN) {
23182 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
23183 ndr->depth++;
23184 ndr_print_ptr(ndr, "handle", r->in.handle);
23185 ndr->depth++;
23186 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23187 ndr->depth--;
23188 ndr_print_string(ndr, "value_name", r->in.value_name);
23189 ndr_print_winreg_Type(ndr, "type", r->in.type);
23190 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
23191 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
23192 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);
23193 ndr->depth--;
23195 if (flags & NDR_OUT) {
23196 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
23197 ndr->depth++;
23198 ndr_print_WERROR(ndr, "result", r->out.result);
23199 ndr->depth--;
23201 ndr->depth--;
23204 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
23206 if (flags & NDR_IN) {
23208 if (flags & NDR_OUT) {
23209 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23211 return NDR_ERR_SUCCESS;
23214 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
23216 if (flags & NDR_IN) {
23218 if (flags & NDR_OUT) {
23219 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23221 return NDR_ERR_SUCCESS;
23224 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
23226 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
23227 ndr->depth++;
23228 if (flags & NDR_SET_VALUES) {
23229 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23231 if (flags & NDR_IN) {
23232 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
23233 ndr->depth++;
23234 ndr->depth--;
23236 if (flags & NDR_OUT) {
23237 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
23238 ndr->depth++;
23239 ndr_print_WERROR(ndr, "result", r->out.result);
23240 ndr->depth--;
23242 ndr->depth--;
23245 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
23247 if (flags & NDR_IN) {
23248 if (r->in.handle == NULL) {
23249 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23251 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23253 if (flags & NDR_OUT) {
23254 if (r->out.handle == NULL) {
23255 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23257 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23258 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23260 return NDR_ERR_SUCCESS;
23263 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
23265 TALLOC_CTX *_mem_save_handle_0;
23266 if (flags & NDR_IN) {
23267 ZERO_STRUCT(r->out);
23269 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23270 NDR_PULL_ALLOC(ndr, r->in.handle);
23272 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23273 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23274 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23276 NDR_PULL_ALLOC(ndr, r->out.handle);
23277 *r->out.handle = *r->in.handle;
23279 if (flags & NDR_OUT) {
23280 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23281 NDR_PULL_ALLOC(ndr, r->out.handle);
23283 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23284 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
23285 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23287 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23289 return NDR_ERR_SUCCESS;
23292 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
23294 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
23295 ndr->depth++;
23296 if (flags & NDR_SET_VALUES) {
23297 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23299 if (flags & NDR_IN) {
23300 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
23301 ndr->depth++;
23302 ndr_print_ptr(ndr, "handle", r->in.handle);
23303 ndr->depth++;
23304 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23305 ndr->depth--;
23306 ndr->depth--;
23308 if (flags & NDR_OUT) {
23309 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
23310 ndr->depth++;
23311 ndr_print_ptr(ndr, "handle", r->out.handle);
23312 ndr->depth++;
23313 ndr_print_policy_handle(ndr, "handle", r->out.handle);
23314 ndr->depth--;
23315 ndr_print_WERROR(ndr, "result", r->out.result);
23316 ndr->depth--;
23318 ndr->depth--;
23321 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
23323 if (flags & NDR_IN) {
23324 if (r->in.handle == NULL) {
23325 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23327 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23329 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23330 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23332 if (flags & NDR_OUT) {
23333 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23335 return NDR_ERR_SUCCESS;
23338 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
23340 TALLOC_CTX *_mem_save_handle_0;
23341 if (flags & NDR_IN) {
23342 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23343 NDR_PULL_ALLOC(ndr, r->in.handle);
23345 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23346 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23347 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23350 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23351 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23353 if (flags & NDR_OUT) {
23354 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23356 return NDR_ERR_SUCCESS;
23359 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
23361 ndr_print_struct(ndr, name, "spoolss_AddForm");
23362 ndr->depth++;
23363 if (flags & NDR_SET_VALUES) {
23364 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23366 if (flags & NDR_IN) {
23367 ndr_print_struct(ndr, "in", "spoolss_AddForm");
23368 ndr->depth++;
23369 ndr_print_ptr(ndr, "handle", r->in.handle);
23370 ndr->depth++;
23371 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23372 ndr->depth--;
23373 ndr_print_uint32(ndr, "level", r->in.level);
23374 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23375 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23376 ndr->depth--;
23378 if (flags & NDR_OUT) {
23379 ndr_print_struct(ndr, "out", "spoolss_AddForm");
23380 ndr->depth++;
23381 ndr_print_WERROR(ndr, "result", r->out.result);
23382 ndr->depth--;
23384 ndr->depth--;
23387 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
23389 if (flags & NDR_IN) {
23390 if (r->in.handle == NULL) {
23391 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23393 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23394 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23395 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23396 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23397 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));
23399 if (flags & NDR_OUT) {
23400 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23402 return NDR_ERR_SUCCESS;
23405 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
23407 TALLOC_CTX *_mem_save_handle_0;
23408 if (flags & NDR_IN) {
23409 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23410 NDR_PULL_ALLOC(ndr, r->in.handle);
23412 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23413 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23414 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23416 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23417 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23418 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23419 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));
23421 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23422 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));
23424 if (flags & NDR_OUT) {
23425 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23427 return NDR_ERR_SUCCESS;
23430 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
23432 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
23433 ndr->depth++;
23434 if (flags & NDR_SET_VALUES) {
23435 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23437 if (flags & NDR_IN) {
23438 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
23439 ndr->depth++;
23440 ndr_print_ptr(ndr, "handle", r->in.handle);
23441 ndr->depth++;
23442 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23443 ndr->depth--;
23444 ndr_print_string(ndr, "form_name", r->in.form_name);
23445 ndr->depth--;
23447 if (flags & NDR_OUT) {
23448 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
23449 ndr->depth++;
23450 ndr_print_WERROR(ndr, "result", r->out.result);
23451 ndr->depth--;
23453 ndr->depth--;
23456 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
23458 if (flags & NDR_IN) {
23459 if (r->in.handle == NULL) {
23460 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23462 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23463 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23464 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23465 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23466 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));
23467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23468 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23469 if (r->in.buffer) {
23470 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23474 if (flags & NDR_OUT) {
23475 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23476 if (r->out.info) {
23478 struct ndr_push *_ndr_info;
23479 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23480 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23481 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23482 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23485 if (r->out.needed == NULL) {
23486 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23489 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23491 return NDR_ERR_SUCCESS;
23494 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
23496 uint32_t _ptr_buffer;
23497 uint32_t _ptr_info;
23498 TALLOC_CTX *_mem_save_handle_0;
23499 TALLOC_CTX *_mem_save_buffer_0;
23500 TALLOC_CTX *_mem_save_info_0;
23501 TALLOC_CTX *_mem_save_needed_0;
23502 if (flags & NDR_IN) {
23503 ZERO_STRUCT(r->out);
23505 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23506 NDR_PULL_ALLOC(ndr, r->in.handle);
23508 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23509 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23510 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23512 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23513 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23514 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23515 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));
23517 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23518 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));
23519 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23520 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23521 if (_ptr_buffer) {
23522 NDR_PULL_ALLOC(ndr, r->in.buffer);
23523 } else {
23524 r->in.buffer = NULL;
23526 if (r->in.buffer) {
23527 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23528 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23529 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23533 NDR_PULL_ALLOC(ndr, r->out.needed);
23534 ZERO_STRUCTP(r->out.needed);
23536 if (flags & NDR_OUT) {
23537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23538 if (_ptr_info) {
23539 NDR_PULL_ALLOC(ndr, r->out.info);
23540 } else {
23541 r->out.info = NULL;
23543 if (r->out.info) {
23544 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23545 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23547 struct ndr_pull *_ndr_info;
23548 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23549 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23550 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23551 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23555 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23556 NDR_PULL_ALLOC(ndr, r->out.needed);
23558 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23559 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23560 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23562 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23564 return NDR_ERR_SUCCESS;
23567 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
23569 ndr_print_struct(ndr, name, "spoolss_GetForm");
23570 ndr->depth++;
23571 if (flags & NDR_SET_VALUES) {
23572 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23574 if (flags & NDR_IN) {
23575 ndr_print_struct(ndr, "in", "spoolss_GetForm");
23576 ndr->depth++;
23577 ndr_print_ptr(ndr, "handle", r->in.handle);
23578 ndr->depth++;
23579 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23580 ndr->depth--;
23581 ndr_print_string(ndr, "form_name", r->in.form_name);
23582 ndr_print_uint32(ndr, "level", r->in.level);
23583 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23584 ndr->depth++;
23585 if (r->in.buffer) {
23586 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23588 ndr->depth--;
23589 ndr_print_uint32(ndr, "offered", r->in.offered);
23590 ndr->depth--;
23592 if (flags & NDR_OUT) {
23593 ndr_print_struct(ndr, "out", "spoolss_GetForm");
23594 ndr->depth++;
23595 ndr_print_ptr(ndr, "info", r->out.info);
23596 ndr->depth++;
23597 if (r->out.info) {
23598 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23599 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
23601 ndr->depth--;
23602 ndr_print_ptr(ndr, "needed", r->out.needed);
23603 ndr->depth++;
23604 ndr_print_uint32(ndr, "needed", *r->out.needed);
23605 ndr->depth--;
23606 ndr_print_WERROR(ndr, "result", r->out.result);
23607 ndr->depth--;
23609 ndr->depth--;
23612 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
23614 if (flags & NDR_IN) {
23615 if (r->in.handle == NULL) {
23616 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23618 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23619 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23620 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23621 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23622 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));
23623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23624 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23625 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23627 if (flags & NDR_OUT) {
23628 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23630 return NDR_ERR_SUCCESS;
23633 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
23635 TALLOC_CTX *_mem_save_handle_0;
23636 if (flags & NDR_IN) {
23637 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23638 NDR_PULL_ALLOC(ndr, r->in.handle);
23640 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23641 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23642 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23643 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23644 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23645 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23646 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23647 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));
23649 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23650 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));
23651 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23652 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23653 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23655 if (flags & NDR_OUT) {
23656 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23658 return NDR_ERR_SUCCESS;
23661 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
23663 ndr_print_struct(ndr, name, "spoolss_SetForm");
23664 ndr->depth++;
23665 if (flags & NDR_SET_VALUES) {
23666 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23668 if (flags & NDR_IN) {
23669 ndr_print_struct(ndr, "in", "spoolss_SetForm");
23670 ndr->depth++;
23671 ndr_print_ptr(ndr, "handle", r->in.handle);
23672 ndr->depth++;
23673 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23674 ndr->depth--;
23675 ndr_print_string(ndr, "form_name", r->in.form_name);
23676 ndr_print_uint32(ndr, "level", r->in.level);
23677 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23678 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23679 ndr->depth--;
23681 if (flags & NDR_OUT) {
23682 ndr_print_struct(ndr, "out", "spoolss_SetForm");
23683 ndr->depth++;
23684 ndr_print_WERROR(ndr, "result", r->out.result);
23685 ndr->depth--;
23687 ndr->depth--;
23690 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
23692 if (flags & NDR_IN) {
23693 if (r->in.handle == NULL) {
23694 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23696 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23697 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23698 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23699 if (r->in.buffer) {
23700 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23704 if (flags & NDR_OUT) {
23705 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23706 if (r->out.info) {
23707 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23709 if (r->out.needed == NULL) {
23710 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23713 if (r->out.count == NULL) {
23714 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23717 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23719 return NDR_ERR_SUCCESS;
23722 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
23724 uint32_t _ptr_buffer;
23725 uint32_t _ptr_info;
23726 TALLOC_CTX *_mem_save_handle_0;
23727 TALLOC_CTX *_mem_save_buffer_0;
23728 TALLOC_CTX *_mem_save_info_0;
23729 TALLOC_CTX *_mem_save_needed_0;
23730 TALLOC_CTX *_mem_save_count_0;
23731 if (flags & NDR_IN) {
23732 ZERO_STRUCT(r->out);
23734 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23735 NDR_PULL_ALLOC(ndr, r->in.handle);
23737 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23738 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23739 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23740 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23741 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23742 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23743 if (_ptr_buffer) {
23744 NDR_PULL_ALLOC(ndr, r->in.buffer);
23745 } else {
23746 r->in.buffer = NULL;
23748 if (r->in.buffer) {
23749 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23750 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23751 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23754 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23755 NDR_PULL_ALLOC(ndr, r->out.needed);
23756 ZERO_STRUCTP(r->out.needed);
23757 NDR_PULL_ALLOC(ndr, r->out.count);
23758 ZERO_STRUCTP(r->out.count);
23760 if (flags & NDR_OUT) {
23761 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23762 if (_ptr_info) {
23763 NDR_PULL_ALLOC(ndr, r->out.info);
23764 } else {
23765 r->out.info = NULL;
23767 if (r->out.info) {
23768 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23769 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23770 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23773 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23774 NDR_PULL_ALLOC(ndr, r->out.needed);
23776 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23777 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23778 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23780 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23781 NDR_PULL_ALLOC(ndr, r->out.count);
23783 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23784 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23785 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23787 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23789 return NDR_ERR_SUCCESS;
23792 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
23794 uint32_t cntr_info_0;
23795 if (flags & NDR_IN) {
23796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23799 if (flags & NDR_OUT) {
23800 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23801 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23802 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23804 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23805 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23808 return NDR_ERR_SUCCESS;
23811 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
23813 uint32_t cntr_info_0;
23814 TALLOC_CTX *_mem_save_info_0;
23815 if (flags & NDR_IN) {
23816 ZERO_STRUCT(r->out);
23818 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23819 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23821 if (flags & NDR_OUT) {
23822 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23823 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23824 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23825 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23826 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23827 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23829 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23830 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23832 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23834 return NDR_ERR_SUCCESS;
23837 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
23839 uint32_t cntr_info_2;
23840 ndr_print_struct(ndr, name, "spoolss_EnumForms");
23841 ndr->depth++;
23842 if (flags & NDR_SET_VALUES) {
23843 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23845 if (flags & NDR_IN) {
23846 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
23847 ndr->depth++;
23848 ndr_print_ptr(ndr, "handle", r->in.handle);
23849 ndr->depth++;
23850 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23851 ndr->depth--;
23852 ndr_print_uint32(ndr, "level", r->in.level);
23853 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23854 ndr->depth++;
23855 if (r->in.buffer) {
23856 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23858 ndr->depth--;
23859 ndr_print_uint32(ndr, "offered", r->in.offered);
23860 ndr->depth--;
23862 if (flags & NDR_OUT) {
23863 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
23864 ndr->depth++;
23865 ndr_print_ptr(ndr, "count", r->out.count);
23866 ndr->depth++;
23867 ndr_print_uint32(ndr, "count", *r->out.count);
23868 ndr->depth--;
23869 ndr_print_ptr(ndr, "info", r->out.info);
23870 ndr->depth++;
23871 ndr_print_ptr(ndr, "info", *r->out.info);
23872 ndr->depth++;
23873 if (*r->out.info) {
23874 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23875 ndr->depth++;
23876 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23877 char *idx_2=NULL;
23878 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23879 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23880 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23881 free(idx_2);
23884 ndr->depth--;
23886 ndr->depth--;
23887 ndr->depth--;
23888 ndr_print_ptr(ndr, "needed", r->out.needed);
23889 ndr->depth++;
23890 ndr_print_uint32(ndr, "needed", *r->out.needed);
23891 ndr->depth--;
23892 ndr_print_WERROR(ndr, "result", r->out.result);
23893 ndr->depth--;
23895 ndr->depth--;
23898 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
23900 if (flags & NDR_IN) {
23901 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23902 if (r->in.servername) {
23903 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23904 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23905 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23906 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23909 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23910 if (r->in.buffer) {
23911 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23915 if (flags & NDR_OUT) {
23916 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23917 if (r->out.info) {
23918 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23920 if (r->out.needed == NULL) {
23921 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23924 if (r->out.count == NULL) {
23925 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23928 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23930 return NDR_ERR_SUCCESS;
23933 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
23935 uint32_t _ptr_servername;
23936 uint32_t _ptr_buffer;
23937 uint32_t _ptr_info;
23938 TALLOC_CTX *_mem_save_servername_0;
23939 TALLOC_CTX *_mem_save_buffer_0;
23940 TALLOC_CTX *_mem_save_info_0;
23941 TALLOC_CTX *_mem_save_needed_0;
23942 TALLOC_CTX *_mem_save_count_0;
23943 if (flags & NDR_IN) {
23944 ZERO_STRUCT(r->out);
23946 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23947 if (_ptr_servername) {
23948 NDR_PULL_ALLOC(ndr, r->in.servername);
23949 } else {
23950 r->in.servername = NULL;
23952 if (r->in.servername) {
23953 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23954 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23955 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23956 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23957 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23958 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));
23960 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23961 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23962 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23964 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23965 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23966 if (_ptr_buffer) {
23967 NDR_PULL_ALLOC(ndr, r->in.buffer);
23968 } else {
23969 r->in.buffer = NULL;
23971 if (r->in.buffer) {
23972 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23973 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23974 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23977 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23978 NDR_PULL_ALLOC(ndr, r->out.needed);
23979 ZERO_STRUCTP(r->out.needed);
23980 NDR_PULL_ALLOC(ndr, r->out.count);
23981 ZERO_STRUCTP(r->out.count);
23983 if (flags & NDR_OUT) {
23984 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23985 if (_ptr_info) {
23986 NDR_PULL_ALLOC(ndr, r->out.info);
23987 } else {
23988 r->out.info = NULL;
23990 if (r->out.info) {
23991 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23992 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23993 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23996 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23997 NDR_PULL_ALLOC(ndr, r->out.needed);
23999 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24000 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24001 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24003 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24004 NDR_PULL_ALLOC(ndr, r->out.count);
24006 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24007 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24008 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24010 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24012 return NDR_ERR_SUCCESS;
24015 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
24017 uint32_t cntr_info_0;
24018 if (flags & NDR_IN) {
24019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24022 if (flags & NDR_OUT) {
24023 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24024 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24025 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24027 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24028 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24031 return NDR_ERR_SUCCESS;
24034 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
24036 uint32_t cntr_info_0;
24037 TALLOC_CTX *_mem_save_info_0;
24038 if (flags & NDR_IN) {
24039 ZERO_STRUCT(r->out);
24041 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24042 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24044 if (flags & NDR_OUT) {
24045 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24046 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24047 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24048 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24049 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24050 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24052 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24053 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24055 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24057 return NDR_ERR_SUCCESS;
24060 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
24062 uint32_t cntr_info_2;
24063 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
24064 ndr->depth++;
24065 if (flags & NDR_SET_VALUES) {
24066 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24068 if (flags & NDR_IN) {
24069 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
24070 ndr->depth++;
24071 ndr_print_ptr(ndr, "servername", r->in.servername);
24072 ndr->depth++;
24073 if (r->in.servername) {
24074 ndr_print_string(ndr, "servername", r->in.servername);
24076 ndr->depth--;
24077 ndr_print_uint32(ndr, "level", r->in.level);
24078 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24079 ndr->depth++;
24080 if (r->in.buffer) {
24081 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24083 ndr->depth--;
24084 ndr_print_uint32(ndr, "offered", r->in.offered);
24085 ndr->depth--;
24087 if (flags & NDR_OUT) {
24088 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
24089 ndr->depth++;
24090 ndr_print_ptr(ndr, "count", r->out.count);
24091 ndr->depth++;
24092 ndr_print_uint32(ndr, "count", *r->out.count);
24093 ndr->depth--;
24094 ndr_print_ptr(ndr, "info", r->out.info);
24095 ndr->depth++;
24096 ndr_print_ptr(ndr, "info", *r->out.info);
24097 ndr->depth++;
24098 if (*r->out.info) {
24099 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24100 ndr->depth++;
24101 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24102 char *idx_2=NULL;
24103 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24104 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24105 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24106 free(idx_2);
24109 ndr->depth--;
24111 ndr->depth--;
24112 ndr->depth--;
24113 ndr_print_ptr(ndr, "needed", r->out.needed);
24114 ndr->depth++;
24115 ndr_print_uint32(ndr, "needed", *r->out.needed);
24116 ndr->depth--;
24117 ndr_print_WERROR(ndr, "result", r->out.result);
24118 ndr->depth--;
24120 ndr->depth--;
24123 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
24125 if (flags & NDR_IN) {
24126 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24127 if (r->in.servername) {
24128 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24129 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24130 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24131 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24134 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24135 if (r->in.buffer) {
24136 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24140 if (flags & NDR_OUT) {
24141 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24142 if (r->out.info) {
24143 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24145 if (r->out.needed == NULL) {
24146 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24149 if (r->out.count == NULL) {
24150 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24153 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24155 return NDR_ERR_SUCCESS;
24158 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
24160 uint32_t _ptr_servername;
24161 uint32_t _ptr_buffer;
24162 uint32_t _ptr_info;
24163 TALLOC_CTX *_mem_save_servername_0;
24164 TALLOC_CTX *_mem_save_buffer_0;
24165 TALLOC_CTX *_mem_save_info_0;
24166 TALLOC_CTX *_mem_save_needed_0;
24167 TALLOC_CTX *_mem_save_count_0;
24168 if (flags & NDR_IN) {
24169 ZERO_STRUCT(r->out);
24171 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24172 if (_ptr_servername) {
24173 NDR_PULL_ALLOC(ndr, r->in.servername);
24174 } else {
24175 r->in.servername = NULL;
24177 if (r->in.servername) {
24178 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24179 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24180 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24181 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24182 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24183 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));
24185 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24186 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24187 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24189 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24190 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24191 if (_ptr_buffer) {
24192 NDR_PULL_ALLOC(ndr, r->in.buffer);
24193 } else {
24194 r->in.buffer = NULL;
24196 if (r->in.buffer) {
24197 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24198 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24199 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24202 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24203 NDR_PULL_ALLOC(ndr, r->out.needed);
24204 ZERO_STRUCTP(r->out.needed);
24205 NDR_PULL_ALLOC(ndr, r->out.count);
24206 ZERO_STRUCTP(r->out.count);
24208 if (flags & NDR_OUT) {
24209 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24210 if (_ptr_info) {
24211 NDR_PULL_ALLOC(ndr, r->out.info);
24212 } else {
24213 r->out.info = NULL;
24215 if (r->out.info) {
24216 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24217 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24218 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24221 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24222 NDR_PULL_ALLOC(ndr, r->out.needed);
24224 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24225 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24226 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24228 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24229 NDR_PULL_ALLOC(ndr, r->out.count);
24231 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24232 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24233 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24234 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24235 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24237 return NDR_ERR_SUCCESS;
24240 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
24242 uint32_t cntr_info_0;
24243 if (flags & NDR_IN) {
24244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24247 if (flags & NDR_OUT) {
24248 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24249 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24250 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24252 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24253 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24256 return NDR_ERR_SUCCESS;
24259 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
24261 uint32_t cntr_info_0;
24262 TALLOC_CTX *_mem_save_info_0;
24263 if (flags & NDR_IN) {
24264 ZERO_STRUCT(r->out);
24266 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24267 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24269 if (flags & NDR_OUT) {
24270 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24271 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24272 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24273 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24274 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24275 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24277 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24278 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24280 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24282 return NDR_ERR_SUCCESS;
24285 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
24287 uint32_t cntr_info_2;
24288 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
24289 ndr->depth++;
24290 if (flags & NDR_SET_VALUES) {
24291 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24293 if (flags & NDR_IN) {
24294 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
24295 ndr->depth++;
24296 ndr_print_ptr(ndr, "servername", r->in.servername);
24297 ndr->depth++;
24298 if (r->in.servername) {
24299 ndr_print_string(ndr, "servername", r->in.servername);
24301 ndr->depth--;
24302 ndr_print_uint32(ndr, "level", r->in.level);
24303 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24304 ndr->depth++;
24305 if (r->in.buffer) {
24306 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24308 ndr->depth--;
24309 ndr_print_uint32(ndr, "offered", r->in.offered);
24310 ndr->depth--;
24312 if (flags & NDR_OUT) {
24313 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
24314 ndr->depth++;
24315 ndr_print_ptr(ndr, "count", r->out.count);
24316 ndr->depth++;
24317 ndr_print_uint32(ndr, "count", *r->out.count);
24318 ndr->depth--;
24319 ndr_print_ptr(ndr, "info", r->out.info);
24320 ndr->depth++;
24321 ndr_print_ptr(ndr, "info", *r->out.info);
24322 ndr->depth++;
24323 if (*r->out.info) {
24324 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24325 ndr->depth++;
24326 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24327 char *idx_2=NULL;
24328 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24329 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24330 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24331 free(idx_2);
24334 ndr->depth--;
24336 ndr->depth--;
24337 ndr->depth--;
24338 ndr_print_ptr(ndr, "needed", r->out.needed);
24339 ndr->depth++;
24340 ndr_print_uint32(ndr, "needed", *r->out.needed);
24341 ndr->depth--;
24342 ndr_print_WERROR(ndr, "result", r->out.result);
24343 ndr->depth--;
24345 ndr->depth--;
24348 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
24350 if (flags & NDR_IN) {
24351 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
24352 if (r->in.server_name) {
24353 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24354 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24355 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24356 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));
24358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
24359 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24360 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24361 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24362 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));
24364 if (flags & NDR_OUT) {
24365 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24367 return NDR_ERR_SUCCESS;
24370 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
24372 uint32_t _ptr_server_name;
24373 TALLOC_CTX *_mem_save_server_name_0;
24374 if (flags & NDR_IN) {
24375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
24376 if (_ptr_server_name) {
24377 NDR_PULL_ALLOC(ndr, r->in.server_name);
24378 } else {
24379 r->in.server_name = NULL;
24381 if (r->in.server_name) {
24382 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
24383 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
24384 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24385 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24386 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
24387 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));
24389 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
24390 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));
24391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
24393 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
24394 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
24395 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
24396 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
24397 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));
24399 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
24400 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));
24402 if (flags & NDR_OUT) {
24403 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24405 return NDR_ERR_SUCCESS;
24408 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
24410 ndr_print_struct(ndr, name, "spoolss_AddPort");
24411 ndr->depth++;
24412 if (flags & NDR_SET_VALUES) {
24413 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24415 if (flags & NDR_IN) {
24416 ndr_print_struct(ndr, "in", "spoolss_AddPort");
24417 ndr->depth++;
24418 ndr_print_ptr(ndr, "server_name", r->in.server_name);
24419 ndr->depth++;
24420 if (r->in.server_name) {
24421 ndr_print_string(ndr, "server_name", r->in.server_name);
24423 ndr->depth--;
24424 ndr_print_uint32(ndr, "unknown", r->in.unknown);
24425 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
24426 ndr->depth--;
24428 if (flags & NDR_OUT) {
24429 ndr_print_struct(ndr, "out", "spoolss_AddPort");
24430 ndr->depth++;
24431 ndr_print_WERROR(ndr, "result", r->out.result);
24432 ndr->depth--;
24434 ndr->depth--;
24437 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
24439 if (flags & NDR_IN) {
24441 if (flags & NDR_OUT) {
24442 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24444 return NDR_ERR_SUCCESS;
24447 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
24449 if (flags & NDR_IN) {
24451 if (flags & NDR_OUT) {
24452 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24454 return NDR_ERR_SUCCESS;
24457 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
24459 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
24460 ndr->depth++;
24461 if (flags & NDR_SET_VALUES) {
24462 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24464 if (flags & NDR_IN) {
24465 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
24466 ndr->depth++;
24467 ndr->depth--;
24469 if (flags & NDR_OUT) {
24470 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
24471 ndr->depth++;
24472 ndr_print_WERROR(ndr, "result", r->out.result);
24473 ndr->depth--;
24475 ndr->depth--;
24478 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
24480 if (flags & NDR_IN) {
24482 if (flags & NDR_OUT) {
24483 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24485 return NDR_ERR_SUCCESS;
24488 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
24490 if (flags & NDR_IN) {
24492 if (flags & NDR_OUT) {
24493 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24495 return NDR_ERR_SUCCESS;
24498 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
24500 ndr_print_struct(ndr, name, "spoolss_DeletePort");
24501 ndr->depth++;
24502 if (flags & NDR_SET_VALUES) {
24503 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24505 if (flags & NDR_IN) {
24506 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
24507 ndr->depth++;
24508 ndr->depth--;
24510 if (flags & NDR_OUT) {
24511 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
24512 ndr->depth++;
24513 ndr_print_WERROR(ndr, "result", r->out.result);
24514 ndr->depth--;
24516 ndr->depth--;
24519 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
24521 if (flags & NDR_IN) {
24522 if (r->in.handle == NULL) {
24523 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24525 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24526 if (r->in.devmode_ctr == NULL) {
24527 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24529 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24531 if (flags & NDR_OUT) {
24532 if (r->out.gdi_handle == NULL) {
24533 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24535 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24536 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24538 return NDR_ERR_SUCCESS;
24541 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
24543 TALLOC_CTX *_mem_save_handle_0;
24544 TALLOC_CTX *_mem_save_gdi_handle_0;
24545 TALLOC_CTX *_mem_save_devmode_ctr_0;
24546 if (flags & NDR_IN) {
24547 ZERO_STRUCT(r->out);
24549 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24550 NDR_PULL_ALLOC(ndr, r->in.handle);
24552 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24553 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24554 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24556 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24557 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
24559 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24560 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
24561 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24563 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24564 ZERO_STRUCTP(r->out.gdi_handle);
24566 if (flags & NDR_OUT) {
24567 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24568 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24570 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24571 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24572 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24573 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24574 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24576 return NDR_ERR_SUCCESS;
24579 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
24581 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
24582 ndr->depth++;
24583 if (flags & NDR_SET_VALUES) {
24584 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24586 if (flags & NDR_IN) {
24587 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
24588 ndr->depth++;
24589 ndr_print_ptr(ndr, "handle", r->in.handle);
24590 ndr->depth++;
24591 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24592 ndr->depth--;
24593 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
24594 ndr->depth++;
24595 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
24596 ndr->depth--;
24597 ndr->depth--;
24599 if (flags & NDR_OUT) {
24600 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
24601 ndr->depth++;
24602 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
24603 ndr->depth++;
24604 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
24605 ndr->depth--;
24606 ndr_print_WERROR(ndr, "result", r->out.result);
24607 ndr->depth--;
24609 ndr->depth--;
24612 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24614 if (flags & NDR_IN) {
24616 if (flags & NDR_OUT) {
24617 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24619 return NDR_ERR_SUCCESS;
24622 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
24624 if (flags & NDR_IN) {
24626 if (flags & NDR_OUT) {
24627 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24629 return NDR_ERR_SUCCESS;
24632 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24634 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
24635 ndr->depth++;
24636 if (flags & NDR_SET_VALUES) {
24637 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24639 if (flags & NDR_IN) {
24640 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
24641 ndr->depth++;
24642 ndr->depth--;
24644 if (flags & NDR_OUT) {
24645 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
24646 ndr->depth++;
24647 ndr_print_WERROR(ndr, "result", r->out.result);
24648 ndr->depth--;
24650 ndr->depth--;
24653 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
24655 if (flags & NDR_IN) {
24656 if (r->in.gdi_handle == NULL) {
24657 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24659 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
24661 if (flags & NDR_OUT) {
24662 if (r->out.gdi_handle == NULL) {
24663 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24665 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24666 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24668 return NDR_ERR_SUCCESS;
24671 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
24673 TALLOC_CTX *_mem_save_gdi_handle_0;
24674 if (flags & NDR_IN) {
24675 ZERO_STRUCT(r->out);
24677 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24678 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
24680 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24681 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24682 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
24683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24684 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24685 *r->out.gdi_handle = *r->in.gdi_handle;
24687 if (flags & NDR_OUT) {
24688 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24689 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24691 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24692 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24693 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24695 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24697 return NDR_ERR_SUCCESS;
24700 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
24702 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
24703 ndr->depth++;
24704 if (flags & NDR_SET_VALUES) {
24705 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24707 if (flags & NDR_IN) {
24708 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
24709 ndr->depth++;
24710 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
24711 ndr->depth++;
24712 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
24713 ndr->depth--;
24714 ndr->depth--;
24716 if (flags & NDR_OUT) {
24717 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
24718 ndr->depth++;
24719 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
24720 ndr->depth++;
24721 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
24722 ndr->depth--;
24723 ndr_print_WERROR(ndr, "result", r->out.result);
24724 ndr->depth--;
24726 ndr->depth--;
24729 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
24731 if (flags & NDR_IN) {
24733 if (flags & NDR_OUT) {
24734 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24736 return NDR_ERR_SUCCESS;
24739 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
24741 if (flags & NDR_IN) {
24743 if (flags & NDR_OUT) {
24744 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24746 return NDR_ERR_SUCCESS;
24749 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
24751 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
24752 ndr->depth++;
24753 if (flags & NDR_SET_VALUES) {
24754 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24756 if (flags & NDR_IN) {
24757 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
24758 ndr->depth++;
24759 ndr->depth--;
24761 if (flags & NDR_OUT) {
24762 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
24763 ndr->depth++;
24764 ndr_print_WERROR(ndr, "result", r->out.result);
24765 ndr->depth--;
24767 ndr->depth--;
24770 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
24772 if (flags & NDR_IN) {
24774 if (flags & NDR_OUT) {
24775 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24777 return NDR_ERR_SUCCESS;
24780 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
24782 if (flags & NDR_IN) {
24784 if (flags & NDR_OUT) {
24785 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24787 return NDR_ERR_SUCCESS;
24790 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
24792 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
24793 ndr->depth++;
24794 if (flags & NDR_SET_VALUES) {
24795 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24797 if (flags & NDR_IN) {
24798 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
24799 ndr->depth++;
24800 ndr->depth--;
24802 if (flags & NDR_OUT) {
24803 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
24804 ndr->depth++;
24805 ndr_print_WERROR(ndr, "result", r->out.result);
24806 ndr->depth--;
24808 ndr->depth--;
24811 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
24813 if (flags & NDR_IN) {
24815 if (flags & NDR_OUT) {
24816 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24818 return NDR_ERR_SUCCESS;
24821 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
24823 if (flags & NDR_IN) {
24825 if (flags & NDR_OUT) {
24826 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24828 return NDR_ERR_SUCCESS;
24831 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
24833 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
24834 ndr->depth++;
24835 if (flags & NDR_SET_VALUES) {
24836 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24838 if (flags & NDR_IN) {
24839 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
24840 ndr->depth++;
24841 ndr->depth--;
24843 if (flags & NDR_OUT) {
24844 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
24845 ndr->depth++;
24846 ndr_print_WERROR(ndr, "result", r->out.result);
24847 ndr->depth--;
24849 ndr->depth--;
24852 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
24854 if (flags & NDR_IN) {
24856 if (flags & NDR_OUT) {
24857 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24859 return NDR_ERR_SUCCESS;
24862 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
24864 if (flags & NDR_IN) {
24866 if (flags & NDR_OUT) {
24867 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24869 return NDR_ERR_SUCCESS;
24872 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
24874 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
24875 ndr->depth++;
24876 if (flags & NDR_SET_VALUES) {
24877 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24879 if (flags & NDR_IN) {
24880 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
24881 ndr->depth++;
24882 ndr->depth--;
24884 if (flags & NDR_OUT) {
24885 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
24886 ndr->depth++;
24887 ndr_print_WERROR(ndr, "result", r->out.result);
24888 ndr->depth--;
24890 ndr->depth--;
24893 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
24895 if (flags & NDR_IN) {
24897 if (flags & NDR_OUT) {
24898 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24900 return NDR_ERR_SUCCESS;
24903 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
24905 if (flags & NDR_IN) {
24907 if (flags & NDR_OUT) {
24908 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24910 return NDR_ERR_SUCCESS;
24913 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
24915 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
24916 ndr->depth++;
24917 if (flags & NDR_SET_VALUES) {
24918 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24920 if (flags & NDR_IN) {
24921 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
24922 ndr->depth++;
24923 ndr->depth--;
24925 if (flags & NDR_OUT) {
24926 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
24927 ndr->depth++;
24928 ndr_print_WERROR(ndr, "result", r->out.result);
24929 ndr->depth--;
24931 ndr->depth--;
24934 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
24936 if (flags & NDR_IN) {
24938 if (flags & NDR_OUT) {
24939 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24941 return NDR_ERR_SUCCESS;
24944 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
24946 if (flags & NDR_IN) {
24948 if (flags & NDR_OUT) {
24949 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24951 return NDR_ERR_SUCCESS;
24954 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
24956 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
24957 ndr->depth++;
24958 if (flags & NDR_SET_VALUES) {
24959 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24961 if (flags & NDR_IN) {
24962 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
24963 ndr->depth++;
24964 ndr->depth--;
24966 if (flags & NDR_OUT) {
24967 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
24968 ndr->depth++;
24969 ndr_print_WERROR(ndr, "result", r->out.result);
24970 ndr->depth--;
24972 ndr->depth--;
24975 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
24977 if (flags & NDR_IN) {
24979 if (flags & NDR_OUT) {
24980 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24982 return NDR_ERR_SUCCESS;
24985 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
24987 if (flags & NDR_IN) {
24989 if (flags & NDR_OUT) {
24990 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24992 return NDR_ERR_SUCCESS;
24995 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
24997 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
24998 ndr->depth++;
24999 if (flags & NDR_SET_VALUES) {
25000 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25002 if (flags & NDR_IN) {
25003 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
25004 ndr->depth++;
25005 ndr->depth--;
25007 if (flags & NDR_OUT) {
25008 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
25009 ndr->depth++;
25010 ndr_print_WERROR(ndr, "result", r->out.result);
25011 ndr->depth--;
25013 ndr->depth--;
25016 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
25018 if (flags & NDR_IN) {
25020 if (flags & NDR_OUT) {
25021 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25023 return NDR_ERR_SUCCESS;
25026 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
25028 if (flags & NDR_IN) {
25030 if (flags & NDR_OUT) {
25031 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25033 return NDR_ERR_SUCCESS;
25036 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
25038 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
25039 ndr->depth++;
25040 if (flags & NDR_SET_VALUES) {
25041 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25043 if (flags & NDR_IN) {
25044 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
25045 ndr->depth++;
25046 ndr->depth--;
25048 if (flags & NDR_OUT) {
25049 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
25050 ndr->depth++;
25051 ndr_print_WERROR(ndr, "result", r->out.result);
25052 ndr->depth--;
25054 ndr->depth--;
25057 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
25059 if (flags & NDR_IN) {
25060 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25061 if (r->in.servername) {
25062 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25063 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25064 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25065 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25067 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
25068 if (r->in.print_processor_name) {
25069 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25070 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25071 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25072 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));
25074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25075 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25076 if (r->in.buffer) {
25077 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25081 if (flags & NDR_OUT) {
25082 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25083 if (r->out.info) {
25084 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25086 if (r->out.needed == NULL) {
25087 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25090 if (r->out.count == NULL) {
25091 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25094 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25096 return NDR_ERR_SUCCESS;
25099 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
25101 uint32_t _ptr_servername;
25102 uint32_t _ptr_print_processor_name;
25103 uint32_t _ptr_buffer;
25104 uint32_t _ptr_info;
25105 TALLOC_CTX *_mem_save_servername_0;
25106 TALLOC_CTX *_mem_save_print_processor_name_0;
25107 TALLOC_CTX *_mem_save_buffer_0;
25108 TALLOC_CTX *_mem_save_info_0;
25109 TALLOC_CTX *_mem_save_needed_0;
25110 TALLOC_CTX *_mem_save_count_0;
25111 if (flags & NDR_IN) {
25112 ZERO_STRUCT(r->out);
25114 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25115 if (_ptr_servername) {
25116 NDR_PULL_ALLOC(ndr, r->in.servername);
25117 } else {
25118 r->in.servername = NULL;
25120 if (r->in.servername) {
25121 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25122 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25123 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25124 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25125 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25126 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));
25128 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25129 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25130 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25132 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
25133 if (_ptr_print_processor_name) {
25134 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
25135 } else {
25136 r->in.print_processor_name = NULL;
25138 if (r->in.print_processor_name) {
25139 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25140 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
25141 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
25142 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
25143 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
25144 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));
25146 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
25147 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));
25148 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
25150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25152 if (_ptr_buffer) {
25153 NDR_PULL_ALLOC(ndr, r->in.buffer);
25154 } else {
25155 r->in.buffer = NULL;
25157 if (r->in.buffer) {
25158 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25159 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25160 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25164 NDR_PULL_ALLOC(ndr, r->out.needed);
25165 ZERO_STRUCTP(r->out.needed);
25166 NDR_PULL_ALLOC(ndr, r->out.count);
25167 ZERO_STRUCTP(r->out.count);
25169 if (flags & NDR_OUT) {
25170 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25171 if (_ptr_info) {
25172 NDR_PULL_ALLOC(ndr, r->out.info);
25173 } else {
25174 r->out.info = NULL;
25176 if (r->out.info) {
25177 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25178 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25179 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25182 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25183 NDR_PULL_ALLOC(ndr, r->out.needed);
25185 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25186 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25187 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25189 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25190 NDR_PULL_ALLOC(ndr, r->out.count);
25192 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25193 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25194 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25196 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25198 return NDR_ERR_SUCCESS;
25201 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
25203 uint32_t cntr_info_0;
25204 if (flags & NDR_IN) {
25205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25208 if (flags & NDR_OUT) {
25209 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25210 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25211 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25213 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25214 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25217 return NDR_ERR_SUCCESS;
25220 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
25222 uint32_t cntr_info_0;
25223 TALLOC_CTX *_mem_save_info_0;
25224 if (flags & NDR_IN) {
25225 ZERO_STRUCT(r->out);
25227 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25228 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25230 if (flags & NDR_OUT) {
25231 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25232 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25233 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25234 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25235 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25236 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25238 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25239 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25241 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25243 return NDR_ERR_SUCCESS;
25246 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
25248 uint32_t cntr_info_2;
25249 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
25250 ndr->depth++;
25251 if (flags & NDR_SET_VALUES) {
25252 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25254 if (flags & NDR_IN) {
25255 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
25256 ndr->depth++;
25257 ndr_print_ptr(ndr, "servername", r->in.servername);
25258 ndr->depth++;
25259 if (r->in.servername) {
25260 ndr_print_string(ndr, "servername", r->in.servername);
25262 ndr->depth--;
25263 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
25264 ndr->depth++;
25265 if (r->in.print_processor_name) {
25266 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
25268 ndr->depth--;
25269 ndr_print_uint32(ndr, "level", r->in.level);
25270 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25271 ndr->depth++;
25272 if (r->in.buffer) {
25273 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25275 ndr->depth--;
25276 ndr_print_uint32(ndr, "offered", r->in.offered);
25277 ndr->depth--;
25279 if (flags & NDR_OUT) {
25280 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
25281 ndr->depth++;
25282 ndr_print_ptr(ndr, "count", r->out.count);
25283 ndr->depth++;
25284 ndr_print_uint32(ndr, "count", *r->out.count);
25285 ndr->depth--;
25286 ndr_print_ptr(ndr, "info", r->out.info);
25287 ndr->depth++;
25288 ndr_print_ptr(ndr, "info", *r->out.info);
25289 ndr->depth++;
25290 if (*r->out.info) {
25291 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25292 ndr->depth++;
25293 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25294 char *idx_2=NULL;
25295 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25296 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25297 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25298 free(idx_2);
25301 ndr->depth--;
25303 ndr->depth--;
25304 ndr->depth--;
25305 ndr_print_ptr(ndr, "needed", r->out.needed);
25306 ndr->depth++;
25307 ndr_print_uint32(ndr, "needed", *r->out.needed);
25308 ndr->depth--;
25309 ndr_print_WERROR(ndr, "result", r->out.result);
25310 ndr->depth--;
25312 ndr->depth--;
25315 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
25317 if (flags & NDR_IN) {
25318 if (r->in.handle == NULL) {
25319 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25321 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25322 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
25323 if (r->in.data_type) {
25324 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25325 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25326 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25327 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));
25329 if (r->in.devmode_ctr == NULL) {
25330 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25332 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25334 if (flags & NDR_OUT) {
25335 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25337 return NDR_ERR_SUCCESS;
25340 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
25342 uint32_t _ptr_data_type;
25343 TALLOC_CTX *_mem_save_handle_0;
25344 TALLOC_CTX *_mem_save_data_type_0;
25345 TALLOC_CTX *_mem_save_devmode_ctr_0;
25346 if (flags & NDR_IN) {
25347 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25348 NDR_PULL_ALLOC(ndr, r->in.handle);
25350 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25351 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25352 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25353 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25354 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
25355 if (_ptr_data_type) {
25356 NDR_PULL_ALLOC(ndr, r->in.data_type);
25357 } else {
25358 r->in.data_type = NULL;
25360 if (r->in.data_type) {
25361 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25362 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
25363 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
25364 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
25365 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
25366 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));
25368 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
25369 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));
25370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
25372 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25373 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25375 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25376 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25377 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25380 if (flags & NDR_OUT) {
25381 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25383 return NDR_ERR_SUCCESS;
25386 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
25388 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
25389 ndr->depth++;
25390 if (flags & NDR_SET_VALUES) {
25391 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25393 if (flags & NDR_IN) {
25394 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
25395 ndr->depth++;
25396 ndr_print_ptr(ndr, "handle", r->in.handle);
25397 ndr->depth++;
25398 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25399 ndr->depth--;
25400 ndr_print_ptr(ndr, "data_type", r->in.data_type);
25401 ndr->depth++;
25402 if (r->in.data_type) {
25403 ndr_print_string(ndr, "data_type", r->in.data_type);
25405 ndr->depth--;
25406 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25407 ndr->depth++;
25408 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25409 ndr->depth--;
25410 ndr->depth--;
25412 if (flags & NDR_OUT) {
25413 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
25414 ndr->depth++;
25415 ndr_print_WERROR(ndr, "result", r->out.result);
25416 ndr->depth--;
25418 ndr->depth--;
25421 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
25423 if (flags & NDR_IN) {
25424 if (r->in.handle == NULL) {
25425 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25427 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25428 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
25429 if (r->in.architecture) {
25430 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25431 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25432 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25433 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25436 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25437 if (r->in.buffer) {
25438 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
25442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
25444 if (flags & NDR_OUT) {
25445 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25446 if (r->out.info) {
25448 struct ndr_push *_ndr_info;
25449 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25450 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
25451 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25452 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25455 if (r->out.needed == NULL) {
25456 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25459 if (r->out.server_major_version == NULL) {
25460 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
25463 if (r->out.server_minor_version == NULL) {
25464 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
25467 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25469 return NDR_ERR_SUCCESS;
25472 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
25474 uint32_t _ptr_architecture;
25475 uint32_t _ptr_buffer;
25476 uint32_t _ptr_info;
25477 TALLOC_CTX *_mem_save_handle_0;
25478 TALLOC_CTX *_mem_save_architecture_0;
25479 TALLOC_CTX *_mem_save_buffer_0;
25480 TALLOC_CTX *_mem_save_info_0;
25481 TALLOC_CTX *_mem_save_needed_0;
25482 TALLOC_CTX *_mem_save_server_major_version_0;
25483 TALLOC_CTX *_mem_save_server_minor_version_0;
25484 if (flags & NDR_IN) {
25485 ZERO_STRUCT(r->out);
25487 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25488 NDR_PULL_ALLOC(ndr, r->in.handle);
25490 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25491 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25492 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25494 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
25495 if (_ptr_architecture) {
25496 NDR_PULL_ALLOC(ndr, r->in.architecture);
25497 } else {
25498 r->in.architecture = NULL;
25500 if (r->in.architecture) {
25501 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
25502 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
25503 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
25504 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
25505 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
25506 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));
25508 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
25509 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
25510 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
25512 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25513 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25514 if (_ptr_buffer) {
25515 NDR_PULL_ALLOC(ndr, r->in.buffer);
25516 } else {
25517 r->in.buffer = NULL;
25519 if (r->in.buffer) {
25520 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25521 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25522 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25525 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25526 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
25527 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
25528 NDR_PULL_ALLOC(ndr, r->out.needed);
25529 ZERO_STRUCTP(r->out.needed);
25530 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25531 ZERO_STRUCTP(r->out.server_major_version);
25532 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25533 ZERO_STRUCTP(r->out.server_minor_version);
25535 if (flags & NDR_OUT) {
25536 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25537 if (_ptr_info) {
25538 NDR_PULL_ALLOC(ndr, r->out.info);
25539 } else {
25540 r->out.info = NULL;
25542 if (r->out.info) {
25543 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25544 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25546 struct ndr_pull *_ndr_info;
25547 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25548 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
25549 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25550 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25554 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25555 NDR_PULL_ALLOC(ndr, r->out.needed);
25557 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25558 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25559 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25561 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25562 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25564 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25565 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
25566 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
25567 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
25568 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25569 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25571 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25572 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
25573 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
25574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
25575 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25577 return NDR_ERR_SUCCESS;
25580 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
25582 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
25583 ndr->depth++;
25584 if (flags & NDR_SET_VALUES) {
25585 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25587 if (flags & NDR_IN) {
25588 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
25589 ndr->depth++;
25590 ndr_print_ptr(ndr, "handle", r->in.handle);
25591 ndr->depth++;
25592 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25593 ndr->depth--;
25594 ndr_print_ptr(ndr, "architecture", r->in.architecture);
25595 ndr->depth++;
25596 if (r->in.architecture) {
25597 ndr_print_string(ndr, "architecture", r->in.architecture);
25599 ndr->depth--;
25600 ndr_print_uint32(ndr, "level", r->in.level);
25601 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25602 ndr->depth++;
25603 if (r->in.buffer) {
25604 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25606 ndr->depth--;
25607 ndr_print_uint32(ndr, "offered", r->in.offered);
25608 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
25609 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
25610 ndr->depth--;
25612 if (flags & NDR_OUT) {
25613 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
25614 ndr->depth++;
25615 ndr_print_ptr(ndr, "info", r->out.info);
25616 ndr->depth++;
25617 if (r->out.info) {
25618 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
25619 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
25621 ndr->depth--;
25622 ndr_print_ptr(ndr, "needed", r->out.needed);
25623 ndr->depth++;
25624 ndr_print_uint32(ndr, "needed", *r->out.needed);
25625 ndr->depth--;
25626 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
25627 ndr->depth++;
25628 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
25629 ndr->depth--;
25630 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
25631 ndr->depth++;
25632 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
25633 ndr->depth--;
25634 ndr_print_WERROR(ndr, "result", r->out.result);
25635 ndr->depth--;
25637 ndr->depth--;
25640 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25642 if (flags & NDR_IN) {
25644 if (flags & NDR_OUT) {
25645 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25647 return NDR_ERR_SUCCESS;
25650 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
25652 if (flags & NDR_IN) {
25654 if (flags & NDR_OUT) {
25655 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25657 return NDR_ERR_SUCCESS;
25660 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25662 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
25663 ndr->depth++;
25664 if (flags & NDR_SET_VALUES) {
25665 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25667 if (flags & NDR_IN) {
25668 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
25669 ndr->depth++;
25670 ndr->depth--;
25672 if (flags & NDR_OUT) {
25673 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
25674 ndr->depth++;
25675 ndr_print_WERROR(ndr, "result", r->out.result);
25676 ndr->depth--;
25678 ndr->depth--;
25681 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
25683 if (flags & NDR_IN) {
25685 if (flags & NDR_OUT) {
25686 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25688 return NDR_ERR_SUCCESS;
25691 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
25693 if (flags & NDR_IN) {
25695 if (flags & NDR_OUT) {
25696 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25698 return NDR_ERR_SUCCESS;
25701 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
25703 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
25704 ndr->depth++;
25705 if (flags & NDR_SET_VALUES) {
25706 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25708 if (flags & NDR_IN) {
25709 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
25710 ndr->depth++;
25711 ndr->depth--;
25713 if (flags & NDR_OUT) {
25714 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
25715 ndr->depth++;
25716 ndr_print_WERROR(ndr, "result", r->out.result);
25717 ndr->depth--;
25719 ndr->depth--;
25722 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
25724 if (flags & NDR_IN) {
25725 if (r->in.handle == NULL) {
25726 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25728 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25730 if (flags & NDR_OUT) {
25731 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25733 return NDR_ERR_SUCCESS;
25736 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
25738 TALLOC_CTX *_mem_save_handle_0;
25739 if (flags & NDR_IN) {
25740 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25741 NDR_PULL_ALLOC(ndr, r->in.handle);
25743 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25744 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25745 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25746 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25748 if (flags & NDR_OUT) {
25749 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25751 return NDR_ERR_SUCCESS;
25754 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
25756 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
25757 ndr->depth++;
25758 if (flags & NDR_SET_VALUES) {
25759 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25761 if (flags & NDR_IN) {
25762 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
25763 ndr->depth++;
25764 ndr_print_ptr(ndr, "handle", r->in.handle);
25765 ndr->depth++;
25766 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25767 ndr->depth--;
25768 ndr->depth--;
25770 if (flags & NDR_OUT) {
25771 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
25772 ndr->depth++;
25773 ndr_print_WERROR(ndr, "result", r->out.result);
25774 ndr->depth--;
25776 ndr->depth--;
25779 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25781 if (flags & NDR_IN) {
25783 if (flags & NDR_OUT) {
25784 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25786 return NDR_ERR_SUCCESS;
25789 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25791 if (flags & NDR_IN) {
25793 if (flags & NDR_OUT) {
25794 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25796 return NDR_ERR_SUCCESS;
25799 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25801 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25802 ndr->depth++;
25803 if (flags & NDR_SET_VALUES) {
25804 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25806 if (flags & NDR_IN) {
25807 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25808 ndr->depth++;
25809 ndr->depth--;
25811 if (flags & NDR_OUT) {
25812 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25813 ndr->depth++;
25814 ndr_print_WERROR(ndr, "result", r->out.result);
25815 ndr->depth--;
25817 ndr->depth--;
25820 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
25822 if (flags & NDR_IN) {
25823 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25824 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25825 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25826 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));
25827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
25828 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
25829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25830 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25831 if (r->in.buffer) {
25832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
25833 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
25836 if (flags & NDR_OUT) {
25837 if (r->out.handle == NULL) {
25838 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25840 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25841 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25843 return NDR_ERR_SUCCESS;
25846 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
25848 uint32_t _ptr_buffer;
25849 TALLOC_CTX *_mem_save_buffer_0;
25850 TALLOC_CTX *_mem_save_handle_0;
25851 if (flags & NDR_IN) {
25852 ZERO_STRUCT(r->out);
25854 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
25855 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
25856 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
25857 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));
25859 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
25860 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));
25861 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
25862 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
25863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
25864 if (r->in.bufsize > 512) {
25865 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
25867 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25868 if (_ptr_buffer) {
25869 NDR_PULL_ALLOC(ndr, r->in.buffer);
25870 } else {
25871 r->in.buffer = NULL;
25873 if (r->in.buffer) {
25874 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25875 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25876 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25877 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25878 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25881 NDR_PULL_ALLOC(ndr, r->out.handle);
25882 ZERO_STRUCTP(r->out.handle);
25883 if (r->in.buffer) {
25884 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
25887 if (flags & NDR_OUT) {
25888 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25889 NDR_PULL_ALLOC(ndr, r->out.handle);
25891 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25892 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25893 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25894 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25895 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25897 return NDR_ERR_SUCCESS;
25900 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
25902 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
25903 ndr->depth++;
25904 if (flags & NDR_SET_VALUES) {
25905 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25907 if (flags & NDR_IN) {
25908 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
25909 ndr->depth++;
25910 ndr_print_string(ndr, "server_name", r->in.server_name);
25911 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
25912 ndr_print_winreg_Type(ndr, "type", r->in.type);
25913 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
25914 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25915 ndr->depth++;
25916 if (r->in.buffer) {
25917 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
25919 ndr->depth--;
25920 ndr->depth--;
25922 if (flags & NDR_OUT) {
25923 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
25924 ndr->depth++;
25925 ndr_print_ptr(ndr, "handle", r->out.handle);
25926 ndr->depth++;
25927 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25928 ndr->depth--;
25929 ndr_print_WERROR(ndr, "result", r->out.result);
25930 ndr->depth--;
25932 ndr->depth--;
25935 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
25937 if (flags & NDR_IN) {
25938 if (r->in.handle == NULL) {
25939 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25941 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25942 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
25943 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25944 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25945 if (r->in.buffer) {
25946 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
25947 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
25950 if (flags & NDR_OUT) {
25951 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25953 return NDR_ERR_SUCCESS;
25956 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
25958 uint32_t _ptr_buffer;
25959 TALLOC_CTX *_mem_save_handle_0;
25960 TALLOC_CTX *_mem_save_buffer_0;
25961 if (flags & NDR_IN) {
25962 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25963 NDR_PULL_ALLOC(ndr, r->in.handle);
25965 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25966 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25967 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25969 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
25970 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
25971 if (r->in.bufsize > 512) {
25972 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
25974 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25975 if (_ptr_buffer) {
25976 NDR_PULL_ALLOC(ndr, r->in.buffer);
25977 } else {
25978 r->in.buffer = NULL;
25980 if (r->in.buffer) {
25981 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25982 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25983 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25984 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25985 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25986 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25988 if (r->in.buffer) {
25989 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
25992 if (flags & NDR_OUT) {
25993 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25995 return NDR_ERR_SUCCESS;
25998 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
26000 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
26001 ndr->depth++;
26002 if (flags & NDR_SET_VALUES) {
26003 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26005 if (flags & NDR_IN) {
26006 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
26007 ndr->depth++;
26008 ndr_print_ptr(ndr, "handle", r->in.handle);
26009 ndr->depth++;
26010 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26011 ndr->depth--;
26012 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26013 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26014 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26015 ndr->depth++;
26016 if (r->in.buffer) {
26017 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26019 ndr->depth--;
26020 ndr->depth--;
26022 if (flags & NDR_OUT) {
26023 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
26024 ndr->depth++;
26025 ndr_print_WERROR(ndr, "result", r->out.result);
26026 ndr->depth--;
26028 ndr->depth--;
26031 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
26033 if (flags & NDR_IN) {
26034 if (r->in.handle == NULL) {
26035 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26037 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26039 if (flags & NDR_OUT) {
26040 if (r->out.handle == NULL) {
26041 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26043 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26044 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26046 return NDR_ERR_SUCCESS;
26049 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
26051 TALLOC_CTX *_mem_save_handle_0;
26052 if (flags & NDR_IN) {
26053 ZERO_STRUCT(r->out);
26055 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26056 NDR_PULL_ALLOC(ndr, r->in.handle);
26058 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26059 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26060 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26062 NDR_PULL_ALLOC(ndr, r->out.handle);
26063 *r->out.handle = *r->in.handle;
26065 if (flags & NDR_OUT) {
26066 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26067 NDR_PULL_ALLOC(ndr, r->out.handle);
26069 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26070 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26071 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26073 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26075 return NDR_ERR_SUCCESS;
26078 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
26080 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
26081 ndr->depth++;
26082 if (flags & NDR_SET_VALUES) {
26083 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26085 if (flags & NDR_IN) {
26086 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
26087 ndr->depth++;
26088 ndr_print_ptr(ndr, "handle", r->in.handle);
26089 ndr->depth++;
26090 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26091 ndr->depth--;
26092 ndr->depth--;
26094 if (flags & NDR_OUT) {
26095 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
26096 ndr->depth++;
26097 ndr_print_ptr(ndr, "handle", r->out.handle);
26098 ndr->depth++;
26099 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26100 ndr->depth--;
26101 ndr_print_WERROR(ndr, "result", r->out.result);
26102 ndr->depth--;
26104 ndr->depth--;
26107 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
26109 if (flags & NDR_IN) {
26111 if (flags & NDR_OUT) {
26112 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26114 return NDR_ERR_SUCCESS;
26117 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
26119 if (flags & NDR_IN) {
26121 if (flags & NDR_OUT) {
26122 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26124 return NDR_ERR_SUCCESS;
26127 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
26129 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
26130 ndr->depth++;
26131 if (flags & NDR_SET_VALUES) {
26132 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26134 if (flags & NDR_IN) {
26135 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
26136 ndr->depth++;
26137 ndr->depth--;
26139 if (flags & NDR_OUT) {
26140 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
26141 ndr->depth++;
26142 ndr_print_WERROR(ndr, "result", r->out.result);
26143 ndr->depth--;
26145 ndr->depth--;
26148 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26150 if (flags & NDR_IN) {
26152 if (flags & NDR_OUT) {
26153 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26155 return NDR_ERR_SUCCESS;
26158 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26160 if (flags & NDR_IN) {
26162 if (flags & NDR_OUT) {
26163 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26165 return NDR_ERR_SUCCESS;
26168 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26170 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
26171 ndr->depth++;
26172 if (flags & NDR_SET_VALUES) {
26173 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26175 if (flags & NDR_IN) {
26176 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
26177 ndr->depth++;
26178 ndr->depth--;
26180 if (flags & NDR_OUT) {
26181 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
26182 ndr->depth++;
26183 ndr_print_WERROR(ndr, "result", r->out.result);
26184 ndr->depth--;
26186 ndr->depth--;
26189 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
26191 if (flags & NDR_IN) {
26193 if (flags & NDR_OUT) {
26194 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26196 return NDR_ERR_SUCCESS;
26199 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
26201 if (flags & NDR_IN) {
26203 if (flags & NDR_OUT) {
26204 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26206 return NDR_ERR_SUCCESS;
26209 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
26211 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
26212 ndr->depth++;
26213 if (flags & NDR_SET_VALUES) {
26214 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26216 if (flags & NDR_IN) {
26217 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
26218 ndr->depth++;
26219 ndr->depth--;
26221 if (flags & NDR_OUT) {
26222 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
26223 ndr->depth++;
26224 ndr_print_WERROR(ndr, "result", r->out.result);
26225 ndr->depth--;
26227 ndr->depth--;
26230 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
26232 if (flags & NDR_IN) {
26234 if (flags & NDR_OUT) {
26235 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26237 return NDR_ERR_SUCCESS;
26240 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
26242 if (flags & NDR_IN) {
26244 if (flags & NDR_OUT) {
26245 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26247 return NDR_ERR_SUCCESS;
26250 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
26252 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
26253 ndr->depth++;
26254 if (flags & NDR_SET_VALUES) {
26255 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26257 if (flags & NDR_IN) {
26258 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
26259 ndr->depth++;
26260 ndr->depth--;
26262 if (flags & NDR_OUT) {
26263 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
26264 ndr->depth++;
26265 ndr_print_WERROR(ndr, "result", r->out.result);
26266 ndr->depth--;
26268 ndr->depth--;
26271 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26273 if (flags & NDR_IN) {
26274 if (r->in.handle == NULL) {
26275 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26277 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26278 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
26280 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
26281 if (r->in.local_machine) {
26282 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26283 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26284 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26285 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));
26287 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26288 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
26289 if (r->in.notify_options) {
26290 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26293 if (flags & NDR_OUT) {
26294 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26296 return NDR_ERR_SUCCESS;
26299 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26301 uint32_t _ptr_local_machine;
26302 uint32_t _ptr_notify_options;
26303 TALLOC_CTX *_mem_save_handle_0;
26304 TALLOC_CTX *_mem_save_local_machine_0;
26305 TALLOC_CTX *_mem_save_notify_options_0;
26306 if (flags & NDR_IN) {
26307 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26308 NDR_PULL_ALLOC(ndr, r->in.handle);
26310 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26311 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26312 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26314 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26315 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
26316 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
26317 if (_ptr_local_machine) {
26318 NDR_PULL_ALLOC(ndr, r->in.local_machine);
26319 } else {
26320 r->in.local_machine = NULL;
26322 if (r->in.local_machine) {
26323 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
26324 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
26325 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
26326 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
26327 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
26328 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));
26330 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
26331 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));
26332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
26334 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26335 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
26336 if (_ptr_notify_options) {
26337 NDR_PULL_ALLOC(ndr, r->in.notify_options);
26338 } else {
26339 r->in.notify_options = NULL;
26341 if (r->in.notify_options) {
26342 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26343 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
26344 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
26348 if (flags & NDR_OUT) {
26349 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26351 return NDR_ERR_SUCCESS;
26354 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26356 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26357 ndr->depth++;
26358 if (flags & NDR_SET_VALUES) {
26359 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26361 if (flags & NDR_IN) {
26362 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26363 ndr->depth++;
26364 ndr_print_ptr(ndr, "handle", r->in.handle);
26365 ndr->depth++;
26366 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26367 ndr->depth--;
26368 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26369 ndr_print_uint32(ndr, "options", r->in.options);
26370 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
26371 ndr->depth++;
26372 if (r->in.local_machine) {
26373 ndr_print_string(ndr, "local_machine", r->in.local_machine);
26375 ndr->depth--;
26376 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26377 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
26378 ndr->depth++;
26379 if (r->in.notify_options) {
26380 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
26382 ndr->depth--;
26383 ndr->depth--;
26385 if (flags & NDR_OUT) {
26386 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26387 ndr->depth++;
26388 ndr_print_WERROR(ndr, "result", r->out.result);
26389 ndr->depth--;
26391 ndr->depth--;
26394 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26396 if (flags & NDR_IN) {
26397 if (r->in.handle == NULL) {
26398 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26400 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
26402 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
26404 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26405 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26407 if (flags & NDR_OUT) {
26408 if (r->out.reply_result == NULL) {
26409 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26411 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
26412 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26414 return NDR_ERR_SUCCESS;
26417 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
26419 TALLOC_CTX *_mem_save_handle_0;
26420 TALLOC_CTX *_mem_save_reply_result_0;
26421 if (flags & NDR_IN) {
26422 ZERO_STRUCT(r->out);
26424 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26425 NDR_PULL_ALLOC(ndr, r->in.handle);
26427 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26428 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26429 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
26432 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
26434 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26435 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26436 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26437 ZERO_STRUCTP(r->out.reply_result);
26439 if (flags & NDR_OUT) {
26440 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26441 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26443 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
26444 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
26445 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
26446 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
26447 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26449 return NDR_ERR_SUCCESS;
26452 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26454 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
26455 ndr->depth++;
26456 if (flags & NDR_SET_VALUES) {
26457 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26459 if (flags & NDR_IN) {
26460 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
26461 ndr->depth++;
26462 ndr_print_ptr(ndr, "handle", r->in.handle);
26463 ndr->depth++;
26464 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26465 ndr->depth--;
26466 ndr_print_uint32(ndr, "color", r->in.color);
26467 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26468 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
26469 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
26470 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
26471 ndr->depth--;
26473 if (flags & NDR_OUT) {
26474 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
26475 ndr->depth++;
26476 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
26477 ndr->depth++;
26478 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
26479 ndr->depth--;
26480 ndr_print_WERROR(ndr, "result", r->out.result);
26481 ndr->depth--;
26483 ndr->depth--;
26486 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26488 if (flags & NDR_IN) {
26489 if (r->in.handle == NULL) {
26490 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26492 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
26494 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
26495 if (r->in.options) {
26496 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26499 if (flags & NDR_OUT) {
26500 if (r->out.info == NULL) {
26501 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26503 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
26504 if (*r->out.info) {
26505 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26507 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26509 return NDR_ERR_SUCCESS;
26512 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
26514 uint32_t _ptr_options;
26515 uint32_t _ptr_info;
26516 TALLOC_CTX *_mem_save_handle_0;
26517 TALLOC_CTX *_mem_save_options_0;
26518 TALLOC_CTX *_mem_save_info_0;
26519 TALLOC_CTX *_mem_save_info_1;
26520 if (flags & NDR_IN) {
26521 ZERO_STRUCT(r->out);
26523 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26524 NDR_PULL_ALLOC(ndr, r->in.handle);
26526 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26527 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26528 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26529 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26530 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
26531 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
26532 if (_ptr_options) {
26533 NDR_PULL_ALLOC(ndr, r->in.options);
26534 } else {
26535 r->in.options = NULL;
26537 if (r->in.options) {
26538 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26539 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
26540 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
26543 NDR_PULL_ALLOC(ndr, r->out.info);
26544 ZERO_STRUCTP(r->out.info);
26546 if (flags & NDR_OUT) {
26547 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26548 NDR_PULL_ALLOC(ndr, r->out.info);
26550 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26551 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
26552 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26553 if (_ptr_info) {
26554 NDR_PULL_ALLOC(ndr, *r->out.info);
26555 } else {
26556 *r->out.info = NULL;
26558 if (*r->out.info) {
26559 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
26560 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
26561 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
26564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
26565 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26567 return NDR_ERR_SUCCESS;
26570 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26572 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
26573 ndr->depth++;
26574 if (flags & NDR_SET_VALUES) {
26575 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26577 if (flags & NDR_IN) {
26578 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
26579 ndr->depth++;
26580 ndr_print_ptr(ndr, "handle", r->in.handle);
26581 ndr->depth++;
26582 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26583 ndr->depth--;
26584 ndr_print_uint32(ndr, "change_low", r->in.change_low);
26585 ndr_print_ptr(ndr, "options", r->in.options);
26586 ndr->depth++;
26587 if (r->in.options) {
26588 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
26590 ndr->depth--;
26591 ndr->depth--;
26593 if (flags & NDR_OUT) {
26594 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
26595 ndr->depth++;
26596 ndr_print_ptr(ndr, "info", r->out.info);
26597 ndr->depth++;
26598 ndr_print_ptr(ndr, "info", *r->out.info);
26599 ndr->depth++;
26600 if (*r->out.info) {
26601 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
26603 ndr->depth--;
26604 ndr->depth--;
26605 ndr_print_WERROR(ndr, "result", r->out.result);
26606 ndr->depth--;
26608 ndr->depth--;
26611 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
26613 if (flags & NDR_IN) {
26615 if (flags & NDR_OUT) {
26616 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26618 return NDR_ERR_SUCCESS;
26621 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
26623 if (flags & NDR_IN) {
26625 if (flags & NDR_OUT) {
26626 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26628 return NDR_ERR_SUCCESS;
26631 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
26633 ndr_print_struct(ndr, name, "spoolss_44");
26634 ndr->depth++;
26635 if (flags & NDR_SET_VALUES) {
26636 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26638 if (flags & NDR_IN) {
26639 ndr_print_struct(ndr, "in", "spoolss_44");
26640 ndr->depth++;
26641 ndr->depth--;
26643 if (flags & NDR_OUT) {
26644 ndr_print_struct(ndr, "out", "spoolss_44");
26645 ndr->depth++;
26646 ndr_print_WERROR(ndr, "result", r->out.result);
26647 ndr->depth--;
26649 ndr->depth--;
26652 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
26654 if (flags & NDR_IN) {
26655 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
26656 if (r->in.printername) {
26657 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26658 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26659 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26660 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26662 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
26663 if (r->in.datatype) {
26664 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26665 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26666 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26667 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26669 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26670 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
26671 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26672 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
26673 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
26675 if (flags & NDR_OUT) {
26676 if (r->out.handle == NULL) {
26677 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26679 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26680 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26682 return NDR_ERR_SUCCESS;
26685 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
26687 uint32_t _ptr_printername;
26688 uint32_t _ptr_datatype;
26689 TALLOC_CTX *_mem_save_printername_0;
26690 TALLOC_CTX *_mem_save_datatype_0;
26691 TALLOC_CTX *_mem_save_handle_0;
26692 if (flags & NDR_IN) {
26693 ZERO_STRUCT(r->out);
26695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
26696 if (_ptr_printername) {
26697 NDR_PULL_ALLOC(ndr, r->in.printername);
26698 } else {
26699 r->in.printername = NULL;
26701 if (r->in.printername) {
26702 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26703 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
26704 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
26705 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
26706 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
26707 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));
26709 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
26710 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
26711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
26713 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
26714 if (_ptr_datatype) {
26715 NDR_PULL_ALLOC(ndr, r->in.datatype);
26716 } else {
26717 r->in.datatype = NULL;
26719 if (r->in.datatype) {
26720 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
26721 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
26722 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
26723 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
26724 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
26725 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));
26727 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
26728 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
26729 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
26731 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26732 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
26733 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26734 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
26735 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
26736 NDR_PULL_ALLOC(ndr, r->out.handle);
26737 ZERO_STRUCTP(r->out.handle);
26739 if (flags & NDR_OUT) {
26740 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26741 NDR_PULL_ALLOC(ndr, r->out.handle);
26743 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26744 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26745 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26746 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26747 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26749 return NDR_ERR_SUCCESS;
26752 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
26754 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
26755 ndr->depth++;
26756 if (flags & NDR_SET_VALUES) {
26757 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26759 if (flags & NDR_IN) {
26760 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
26761 ndr->depth++;
26762 ndr_print_ptr(ndr, "printername", r->in.printername);
26763 ndr->depth++;
26764 if (r->in.printername) {
26765 ndr_print_string(ndr, "printername", r->in.printername);
26767 ndr->depth--;
26768 ndr_print_ptr(ndr, "datatype", r->in.datatype);
26769 ndr->depth++;
26770 if (r->in.datatype) {
26771 ndr_print_string(ndr, "datatype", r->in.datatype);
26773 ndr->depth--;
26774 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
26775 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
26776 ndr_print_uint32(ndr, "level", r->in.level);
26777 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
26778 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
26779 ndr->depth--;
26781 if (flags & NDR_OUT) {
26782 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
26783 ndr->depth++;
26784 ndr_print_ptr(ndr, "handle", r->out.handle);
26785 ndr->depth++;
26786 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26787 ndr->depth--;
26788 ndr_print_WERROR(ndr, "result", r->out.result);
26789 ndr->depth--;
26791 ndr->depth--;
26794 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
26796 if (flags & NDR_IN) {
26797 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26798 if (r->in.server) {
26799 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26800 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26801 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26802 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26804 if (r->in.info_ctr == NULL) {
26805 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26807 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26808 if (r->in.devmode_ctr == NULL) {
26809 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26811 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26812 if (r->in.secdesc_ctr == NULL) {
26813 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26815 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
26816 if (r->in.userlevel_ctr == NULL) {
26817 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26819 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
26821 if (flags & NDR_OUT) {
26822 if (r->out.handle == NULL) {
26823 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26825 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26826 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26828 return NDR_ERR_SUCCESS;
26831 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
26833 uint32_t _ptr_server;
26834 TALLOC_CTX *_mem_save_server_0;
26835 TALLOC_CTX *_mem_save_info_ctr_0;
26836 TALLOC_CTX *_mem_save_devmode_ctr_0;
26837 TALLOC_CTX *_mem_save_secdesc_ctr_0;
26838 TALLOC_CTX *_mem_save_userlevel_ctr_0;
26839 TALLOC_CTX *_mem_save_handle_0;
26840 if (flags & NDR_IN) {
26841 ZERO_STRUCT(r->out);
26843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26844 if (_ptr_server) {
26845 NDR_PULL_ALLOC(ndr, r->in.server);
26846 } else {
26847 r->in.server = NULL;
26849 if (r->in.server) {
26850 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26851 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26852 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26853 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26854 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
26855 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));
26857 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
26858 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
26859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26861 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26862 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
26864 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26865 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
26866 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26868 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26869 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
26871 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26872 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
26873 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26875 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26876 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
26878 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26879 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
26880 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
26881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26882 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26883 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
26885 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26886 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
26887 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
26888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26889 NDR_PULL_ALLOC(ndr, r->out.handle);
26890 ZERO_STRUCTP(r->out.handle);
26892 if (flags & NDR_OUT) {
26893 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26894 NDR_PULL_ALLOC(ndr, r->out.handle);
26896 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26897 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26898 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26900 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26902 return NDR_ERR_SUCCESS;
26905 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
26907 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
26908 ndr->depth++;
26909 if (flags & NDR_SET_VALUES) {
26910 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26912 if (flags & NDR_IN) {
26913 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
26914 ndr->depth++;
26915 ndr_print_ptr(ndr, "server", r->in.server);
26916 ndr->depth++;
26917 if (r->in.server) {
26918 ndr_print_string(ndr, "server", r->in.server);
26920 ndr->depth--;
26921 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
26922 ndr->depth++;
26923 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
26924 ndr->depth--;
26925 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
26926 ndr->depth++;
26927 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
26928 ndr->depth--;
26929 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
26930 ndr->depth++;
26931 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
26932 ndr->depth--;
26933 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
26934 ndr->depth++;
26935 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
26936 ndr->depth--;
26937 ndr->depth--;
26939 if (flags & NDR_OUT) {
26940 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
26941 ndr->depth++;
26942 ndr_print_ptr(ndr, "handle", r->out.handle);
26943 ndr->depth++;
26944 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26945 ndr->depth--;
26946 ndr_print_WERROR(ndr, "result", r->out.result);
26947 ndr->depth--;
26949 ndr->depth--;
26952 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
26954 if (flags & NDR_IN) {
26956 if (flags & NDR_OUT) {
26957 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26959 return NDR_ERR_SUCCESS;
26962 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
26964 if (flags & NDR_IN) {
26966 if (flags & NDR_OUT) {
26967 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26969 return NDR_ERR_SUCCESS;
26972 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
26974 ndr_print_struct(ndr, name, "spoolss_47");
26975 ndr->depth++;
26976 if (flags & NDR_SET_VALUES) {
26977 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26979 if (flags & NDR_IN) {
26980 ndr_print_struct(ndr, "in", "spoolss_47");
26981 ndr->depth++;
26982 ndr->depth--;
26984 if (flags & NDR_OUT) {
26985 ndr_print_struct(ndr, "out", "spoolss_47");
26986 ndr->depth++;
26987 ndr_print_WERROR(ndr, "result", r->out.result);
26988 ndr->depth--;
26990 ndr->depth--;
26993 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
26995 if (flags & NDR_IN) {
26996 if (r->in.handle == NULL) {
26997 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26999 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
27001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
27002 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
27004 if (flags & NDR_OUT) {
27005 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
27006 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
27007 if (r->out.value_needed == NULL) {
27008 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27010 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
27011 if (r->out.type == NULL) {
27012 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27014 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27016 uint32_t _flags_save_uint8 = ndr->flags;
27017 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27018 if (r->out.data == NULL) {
27019 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27021 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
27022 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
27023 ndr->flags = _flags_save_uint8;
27025 if (r->out.data_needed == NULL) {
27026 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
27029 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27031 return NDR_ERR_SUCCESS;
27034 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
27036 TALLOC_CTX *_mem_save_handle_0;
27037 TALLOC_CTX *_mem_save_value_needed_0;
27038 TALLOC_CTX *_mem_save_type_0;
27039 TALLOC_CTX *_mem_save_data_needed_0;
27040 if (flags & NDR_IN) {
27041 ZERO_STRUCT(r->out);
27043 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27044 NDR_PULL_ALLOC(ndr, r->in.handle);
27046 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27047 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27048 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27050 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
27051 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
27052 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
27053 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27054 ZERO_STRUCTP(r->out.value_needed);
27055 NDR_PULL_ALLOC(ndr, r->out.type);
27056 ZERO_STRUCTP(r->out.type);
27057 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
27058 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
27059 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27060 ZERO_STRUCTP(r->out.data_needed);
27062 if (flags & NDR_OUT) {
27063 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
27064 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));
27065 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27066 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27068 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27069 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
27070 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
27071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
27072 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27073 NDR_PULL_ALLOC(ndr, r->out.type);
27075 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27076 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27077 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27080 uint32_t _flags_save_uint8 = ndr->flags;
27081 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27082 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
27083 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27084 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
27086 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
27087 ndr->flags = _flags_save_uint8;
27089 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27090 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27092 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27093 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
27094 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
27095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
27096 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27097 if (r->out.value_name) {
27098 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
27100 if (r->out.data) {
27101 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
27104 return NDR_ERR_SUCCESS;
27107 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
27109 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
27110 ndr->depth++;
27111 if (flags & NDR_SET_VALUES) {
27112 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27114 if (flags & NDR_IN) {
27115 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
27116 ndr->depth++;
27117 ndr_print_ptr(ndr, "handle", r->in.handle);
27118 ndr->depth++;
27119 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27120 ndr->depth--;
27121 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
27122 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
27123 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
27124 ndr->depth--;
27126 if (flags & NDR_OUT) {
27127 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
27128 ndr->depth++;
27129 ndr_print_string(ndr, "value_name", r->out.value_name);
27130 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
27131 ndr->depth++;
27132 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
27133 ndr->depth--;
27134 ndr_print_ptr(ndr, "type", r->out.type);
27135 ndr->depth++;
27136 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27137 ndr->depth--;
27138 ndr_print_ptr(ndr, "data", r->out.data);
27139 ndr->depth++;
27140 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
27141 ndr->depth--;
27142 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
27143 ndr->depth++;
27144 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
27145 ndr->depth--;
27146 ndr_print_WERROR(ndr, "result", r->out.result);
27147 ndr->depth--;
27149 ndr->depth--;
27152 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
27154 if (flags & NDR_IN) {
27155 if (r->in.handle == NULL) {
27156 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27158 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27159 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27160 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27161 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27162 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));
27164 if (flags & NDR_OUT) {
27165 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27167 return NDR_ERR_SUCCESS;
27170 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
27172 TALLOC_CTX *_mem_save_handle_0;
27173 if (flags & NDR_IN) {
27174 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27175 NDR_PULL_ALLOC(ndr, r->in.handle);
27177 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27178 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27179 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27181 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27182 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27183 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27184 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));
27186 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27187 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));
27189 if (flags & NDR_OUT) {
27190 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27192 return NDR_ERR_SUCCESS;
27195 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
27197 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
27198 ndr->depth++;
27199 if (flags & NDR_SET_VALUES) {
27200 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27202 if (flags & NDR_IN) {
27203 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
27204 ndr->depth++;
27205 ndr_print_ptr(ndr, "handle", r->in.handle);
27206 ndr->depth++;
27207 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27208 ndr->depth--;
27209 ndr_print_string(ndr, "value_name", r->in.value_name);
27210 ndr->depth--;
27212 if (flags & NDR_OUT) {
27213 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
27214 ndr->depth++;
27215 ndr_print_WERROR(ndr, "result", r->out.result);
27216 ndr->depth--;
27218 ndr->depth--;
27221 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
27223 if (flags & NDR_IN) {
27225 if (flags & NDR_OUT) {
27226 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27228 return NDR_ERR_SUCCESS;
27231 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
27233 if (flags & NDR_IN) {
27235 if (flags & NDR_OUT) {
27236 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27238 return NDR_ERR_SUCCESS;
27241 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
27243 ndr_print_struct(ndr, name, "spoolss_4a");
27244 ndr->depth++;
27245 if (flags & NDR_SET_VALUES) {
27246 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27248 if (flags & NDR_IN) {
27249 ndr_print_struct(ndr, "in", "spoolss_4a");
27250 ndr->depth++;
27251 ndr->depth--;
27253 if (flags & NDR_OUT) {
27254 ndr_print_struct(ndr, "out", "spoolss_4a");
27255 ndr->depth++;
27256 ndr_print_WERROR(ndr, "result", r->out.result);
27257 ndr->depth--;
27259 ndr->depth--;
27262 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
27264 if (flags & NDR_IN) {
27266 if (flags & NDR_OUT) {
27267 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27269 return NDR_ERR_SUCCESS;
27272 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
27274 if (flags & NDR_IN) {
27276 if (flags & NDR_OUT) {
27277 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27279 return NDR_ERR_SUCCESS;
27282 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
27284 ndr_print_struct(ndr, name, "spoolss_4b");
27285 ndr->depth++;
27286 if (flags & NDR_SET_VALUES) {
27287 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27289 if (flags & NDR_IN) {
27290 ndr_print_struct(ndr, "in", "spoolss_4b");
27291 ndr->depth++;
27292 ndr->depth--;
27294 if (flags & NDR_OUT) {
27295 ndr_print_struct(ndr, "out", "spoolss_4b");
27296 ndr->depth++;
27297 ndr_print_WERROR(ndr, "result", r->out.result);
27298 ndr->depth--;
27300 ndr->depth--;
27303 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
27305 if (flags & NDR_IN) {
27307 if (flags & NDR_OUT) {
27308 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27310 return NDR_ERR_SUCCESS;
27313 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
27315 if (flags & NDR_IN) {
27317 if (flags & NDR_OUT) {
27318 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27320 return NDR_ERR_SUCCESS;
27323 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
27325 ndr_print_struct(ndr, name, "spoolss_4c");
27326 ndr->depth++;
27327 if (flags & NDR_SET_VALUES) {
27328 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27330 if (flags & NDR_IN) {
27331 ndr_print_struct(ndr, "in", "spoolss_4c");
27332 ndr->depth++;
27333 ndr->depth--;
27335 if (flags & NDR_OUT) {
27336 ndr_print_struct(ndr, "out", "spoolss_4c");
27337 ndr->depth++;
27338 ndr_print_WERROR(ndr, "result", r->out.result);
27339 ndr->depth--;
27341 ndr->depth--;
27344 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterDataEx *r)
27346 if (flags & NDR_IN) {
27347 if (r->in.handle == NULL) {
27348 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27350 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27351 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27352 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27353 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27354 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));
27355 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27356 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27357 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27358 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));
27359 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27360 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
27361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
27363 if (flags & NDR_OUT) {
27364 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27366 return NDR_ERR_SUCCESS;
27369 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterDataEx *r)
27371 if (flags & NDR_IN) {
27372 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27374 if (flags & NDR_OUT) {
27375 if (r->out.data == NULL) {
27376 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27378 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
27379 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
27381 return NDR_ERR_SUCCESS;
27384 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
27386 TALLOC_CTX *_mem_save_handle_0;
27387 if (flags & NDR_IN) {
27388 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27389 NDR_PULL_ALLOC(ndr, r->in.handle);
27391 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27392 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27393 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27394 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27395 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27396 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27397 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27398 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));
27400 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27401 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));
27402 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27403 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27404 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27405 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));
27407 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27408 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));
27409 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27411 struct ndr_pull *_ndr_data;
27412 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
27413 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
27414 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
27415 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
27417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
27419 if (flags & NDR_OUT) {
27420 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27422 return NDR_ERR_SUCCESS;
27425 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
27427 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
27428 ndr->depth++;
27429 if (flags & NDR_SET_VALUES) {
27430 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27432 if (flags & NDR_IN) {
27433 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
27434 ndr->depth++;
27435 ndr_print_ptr(ndr, "handle", r->in.handle);
27436 ndr->depth++;
27437 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27438 ndr->depth--;
27439 ndr_print_string(ndr, "key_name", r->in.key_name);
27440 ndr_print_string(ndr, "value_name", r->in.value_name);
27441 ndr_print_winreg_Type(ndr, "type", r->in.type);
27442 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
27443 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
27444 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);
27445 ndr->depth--;
27447 if (flags & NDR_OUT) {
27448 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
27449 ndr->depth++;
27450 ndr_print_WERROR(ndr, "result", r->out.result);
27451 ndr->depth--;
27453 ndr->depth--;
27456 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterDataEx *r)
27458 if (flags & NDR_IN) {
27459 if (r->in.handle == NULL) {
27460 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27462 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27463 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27464 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27465 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27466 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));
27467 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27468 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27469 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27470 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));
27471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27473 if (flags & NDR_OUT) {
27474 if (r->out.type == NULL) {
27475 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27477 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27478 if (r->out.data == NULL) {
27479 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27481 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
27482 if (r->out.needed == NULL) {
27483 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27486 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27488 return NDR_ERR_SUCCESS;
27491 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterDataEx *r)
27493 TALLOC_CTX *_mem_save_handle_0;
27494 TALLOC_CTX *_mem_save_type_0;
27495 TALLOC_CTX *_mem_save_data_0;
27496 TALLOC_CTX *_mem_save_needed_0;
27497 if (flags & NDR_IN) {
27498 ZERO_STRUCT(r->out);
27500 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27501 NDR_PULL_ALLOC(ndr, r->in.handle);
27503 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27504 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27505 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27507 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27508 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27509 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27510 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));
27512 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27513 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));
27514 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27515 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27516 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27517 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));
27519 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27520 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));
27521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27522 NDR_PULL_ALLOC(ndr, r->out.type);
27523 ZERO_STRUCTP(r->out.type);
27524 NDR_PULL_ALLOC(ndr, r->out.data);
27525 ZERO_STRUCTP(r->out.data);
27526 NDR_PULL_ALLOC(ndr, r->out.needed);
27527 ZERO_STRUCTP(r->out.needed);
27529 if (flags & NDR_OUT) {
27530 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27531 NDR_PULL_ALLOC(ndr, r->out.type);
27533 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27534 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27535 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27537 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27538 NDR_PULL_ALLOC(ndr, r->out.data);
27540 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
27541 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
27542 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
27543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
27544 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27545 NDR_PULL_ALLOC(ndr, r->out.needed);
27547 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27548 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27549 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27551 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27553 return NDR_ERR_SUCCESS;
27556 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterDataEx *r)
27558 if (flags & NDR_IN) {
27559 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27561 if (flags & NDR_OUT) {
27562 if (r->out.data == NULL) {
27563 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27565 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
27566 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
27568 return NDR_ERR_SUCCESS;
27571 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterDataEx *r)
27573 TALLOC_CTX *_mem_save_data_0;
27574 if (flags & NDR_IN) {
27575 ZERO_STRUCT(r->out);
27577 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27578 NDR_PULL_ALLOC(ndr, r->out.data);
27579 ZERO_STRUCTP(r->out.data);
27581 if (flags & NDR_OUT) {
27582 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27583 NDR_PULL_ALLOC(ndr, r->out.data);
27585 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
27586 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
27587 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
27588 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
27589 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
27591 return NDR_ERR_SUCCESS;
27594 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
27596 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
27597 ndr->depth++;
27598 if (flags & NDR_SET_VALUES) {
27599 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27601 if (flags & NDR_IN) {
27602 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
27603 ndr->depth++;
27604 ndr_print_ptr(ndr, "handle", r->in.handle);
27605 ndr->depth++;
27606 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27607 ndr->depth--;
27608 ndr_print_string(ndr, "key_name", r->in.key_name);
27609 ndr_print_string(ndr, "value_name", r->in.value_name);
27610 ndr_print_uint32(ndr, "offered", r->in.offered);
27611 ndr->depth--;
27613 if (flags & NDR_OUT) {
27614 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
27615 ndr->depth++;
27616 ndr_print_ptr(ndr, "type", r->out.type);
27617 ndr->depth++;
27618 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27619 ndr->depth--;
27620 ndr_print_ptr(ndr, "data", r->out.data);
27621 ndr->depth++;
27622 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
27623 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
27624 ndr->depth--;
27625 ndr_print_ptr(ndr, "needed", r->out.needed);
27626 ndr->depth++;
27627 ndr_print_uint32(ndr, "needed", *r->out.needed);
27628 ndr->depth--;
27629 ndr_print_WERROR(ndr, "result", r->out.result);
27630 ndr->depth--;
27632 ndr->depth--;
27635 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
27637 if (flags & NDR_IN) {
27638 if (r->in.handle == NULL) {
27639 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27641 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27642 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27643 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27644 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27645 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));
27646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27648 if (flags & NDR_OUT) {
27649 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
27650 if (r->out.needed == NULL) {
27651 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27654 if (r->out.count == NULL) {
27655 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27657 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
27658 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27660 return NDR_ERR_SUCCESS;
27663 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
27665 TALLOC_CTX *_mem_save_handle_0;
27666 TALLOC_CTX *_mem_save_needed_0;
27667 TALLOC_CTX *_mem_save_count_0;
27668 if (flags & NDR_IN) {
27669 ZERO_STRUCT(r->out);
27671 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27672 NDR_PULL_ALLOC(ndr, r->in.handle);
27674 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27675 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27676 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27678 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27679 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27680 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27681 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));
27683 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27684 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));
27685 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27686 NDR_PULL_ALLOC(ndr, r->out.needed);
27687 ZERO_STRUCTP(r->out.needed);
27688 NDR_PULL_ALLOC(ndr, r->out.count);
27689 ZERO_STRUCTP(r->out.count);
27691 if (flags & NDR_OUT) {
27692 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
27693 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27694 NDR_PULL_ALLOC(ndr, r->out.needed);
27696 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27697 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27698 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27700 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27701 NDR_PULL_ALLOC(ndr, r->out.count);
27703 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
27704 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
27705 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
27706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
27707 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27709 return NDR_ERR_SUCCESS;
27712 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
27714 uint32_t cntr_info_0;
27715 if (flags & NDR_IN) {
27716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
27718 if (flags & NDR_OUT) {
27719 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27720 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27722 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27723 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27726 return NDR_ERR_SUCCESS;
27729 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
27731 uint32_t cntr_info_0;
27732 TALLOC_CTX *_mem_save_info_0;
27733 if (flags & NDR_IN) {
27734 ZERO_STRUCT(r->out);
27736 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
27738 if (flags & NDR_OUT) {
27739 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
27740 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27741 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
27742 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27743 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27745 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27746 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
27750 return NDR_ERR_SUCCESS;
27753 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
27755 uint32_t cntr_info_2;
27756 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
27757 ndr->depth++;
27758 if (flags & NDR_SET_VALUES) {
27759 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27761 if (flags & NDR_IN) {
27762 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
27763 ndr->depth++;
27764 ndr_print_ptr(ndr, "handle", r->in.handle);
27765 ndr->depth++;
27766 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27767 ndr->depth--;
27768 ndr_print_string(ndr, "key_name", r->in.key_name);
27769 ndr_print_uint32(ndr, "offered", r->in.offered);
27770 ndr->depth--;
27772 if (flags & NDR_OUT) {
27773 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
27774 ndr->depth++;
27775 ndr_print_ptr(ndr, "count", r->out.count);
27776 ndr->depth++;
27777 ndr_print_uint32(ndr, "count", *r->out.count);
27778 ndr->depth--;
27779 ndr_print_ptr(ndr, "info", r->out.info);
27780 ndr->depth++;
27781 ndr_print_ptr(ndr, "info", *r->out.info);
27782 ndr->depth++;
27783 if (*r->out.info) {
27784 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
27785 ndr->depth++;
27786 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
27787 char *idx_2=NULL;
27788 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
27789 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
27790 free(idx_2);
27793 ndr->depth--;
27795 ndr->depth--;
27796 ndr->depth--;
27797 ndr_print_ptr(ndr, "needed", r->out.needed);
27798 ndr->depth++;
27799 ndr_print_uint32(ndr, "needed", *r->out.needed);
27800 ndr->depth--;
27801 ndr_print_WERROR(ndr, "result", r->out.result);
27802 ndr->depth--;
27804 ndr->depth--;
27807 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
27809 if (flags & NDR_IN) {
27810 if (r->in.handle == NULL) {
27811 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27813 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27815 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27816 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27817 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));
27818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27820 if (flags & NDR_OUT) {
27821 if (r->out._ndr_size == NULL) {
27822 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
27825 if (r->out.key_buffer == NULL) {
27826 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27829 struct ndr_push *_ndr_key_buffer;
27830 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
27831 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
27832 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
27833 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
27835 if (r->out.needed == NULL) {
27836 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27839 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27841 return NDR_ERR_SUCCESS;
27844 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
27846 TALLOC_CTX *_mem_save_handle_0;
27847 TALLOC_CTX *_mem_save__ndr_size_0;
27848 TALLOC_CTX *_mem_save_key_buffer_0;
27849 TALLOC_CTX *_mem_save_needed_0;
27850 if (flags & NDR_IN) {
27851 ZERO_STRUCT(r->out);
27853 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27854 NDR_PULL_ALLOC(ndr, r->in.handle);
27856 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27857 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27858 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27860 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27861 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27862 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27863 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));
27865 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27866 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));
27867 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27868 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
27869 ZERO_STRUCTP(r->out._ndr_size);
27870 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
27871 ZERO_STRUCTP(r->out.key_buffer);
27872 NDR_PULL_ALLOC(ndr, r->out.needed);
27873 ZERO_STRUCTP(r->out.needed);
27875 if (flags & NDR_OUT) {
27876 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27877 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
27879 _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
27880 NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
27881 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
27882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
27883 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27884 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
27886 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27887 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
27889 struct ndr_pull *_ndr_key_buffer;
27890 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
27891 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
27892 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
27893 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
27895 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
27896 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27897 NDR_PULL_ALLOC(ndr, r->out.needed);
27899 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27900 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27901 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27903 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27905 return NDR_ERR_SUCCESS;
27908 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
27910 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
27911 ndr->depth++;
27912 if (flags & NDR_SET_VALUES) {
27913 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27915 if (flags & NDR_IN) {
27916 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
27917 ndr->depth++;
27918 ndr_print_ptr(ndr, "handle", r->in.handle);
27919 ndr->depth++;
27920 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27921 ndr->depth--;
27922 ndr_print_string(ndr, "key_name", r->in.key_name);
27923 ndr_print_uint32(ndr, "offered", r->in.offered);
27924 ndr->depth--;
27926 if (flags & NDR_OUT) {
27927 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
27928 ndr->depth++;
27929 ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
27930 ndr->depth++;
27931 ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
27932 ndr->depth--;
27933 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
27934 ndr->depth++;
27935 ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
27936 ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
27937 ndr->depth--;
27938 ndr_print_ptr(ndr, "needed", r->out.needed);
27939 ndr->depth++;
27940 ndr_print_uint32(ndr, "needed", *r->out.needed);
27941 ndr->depth--;
27942 ndr_print_WERROR(ndr, "result", r->out.result);
27943 ndr->depth--;
27945 ndr->depth--;
27948 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
27950 if (flags & NDR_IN) {
27951 if (r->in.handle == NULL) {
27952 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27954 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27955 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27956 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27957 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27958 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));
27959 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27960 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27961 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27962 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));
27964 if (flags & NDR_OUT) {
27965 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27967 return NDR_ERR_SUCCESS;
27970 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
27972 TALLOC_CTX *_mem_save_handle_0;
27973 if (flags & NDR_IN) {
27974 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27975 NDR_PULL_ALLOC(ndr, r->in.handle);
27977 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27978 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27979 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27980 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27981 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27982 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27983 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27984 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));
27986 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27987 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));
27988 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27989 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27990 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27991 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));
27993 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27994 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));
27996 if (flags & NDR_OUT) {
27997 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27999 return NDR_ERR_SUCCESS;
28002 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
28004 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
28005 ndr->depth++;
28006 if (flags & NDR_SET_VALUES) {
28007 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28009 if (flags & NDR_IN) {
28010 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
28011 ndr->depth++;
28012 ndr_print_ptr(ndr, "handle", r->in.handle);
28013 ndr->depth++;
28014 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28015 ndr->depth--;
28016 ndr_print_string(ndr, "key_name", r->in.key_name);
28017 ndr_print_string(ndr, "value_name", r->in.value_name);
28018 ndr->depth--;
28020 if (flags & NDR_OUT) {
28021 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
28022 ndr->depth++;
28023 ndr_print_WERROR(ndr, "result", r->out.result);
28024 ndr->depth--;
28026 ndr->depth--;
28029 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
28031 if (flags & NDR_IN) {
28032 if (r->in.handle == NULL) {
28033 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28035 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28036 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28037 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28038 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28039 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));
28041 if (flags & NDR_OUT) {
28042 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28044 return NDR_ERR_SUCCESS;
28047 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
28049 TALLOC_CTX *_mem_save_handle_0;
28050 if (flags & NDR_IN) {
28051 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28052 NDR_PULL_ALLOC(ndr, r->in.handle);
28054 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28055 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28056 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28058 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28059 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28060 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28061 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));
28063 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28064 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));
28066 if (flags & NDR_OUT) {
28067 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28069 return NDR_ERR_SUCCESS;
28072 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
28074 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
28075 ndr->depth++;
28076 if (flags & NDR_SET_VALUES) {
28077 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28079 if (flags & NDR_IN) {
28080 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
28081 ndr->depth++;
28082 ndr_print_ptr(ndr, "handle", r->in.handle);
28083 ndr->depth++;
28084 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28085 ndr->depth--;
28086 ndr_print_string(ndr, "key_name", r->in.key_name);
28087 ndr->depth--;
28089 if (flags & NDR_OUT) {
28090 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
28091 ndr->depth++;
28092 ndr_print_WERROR(ndr, "result", r->out.result);
28093 ndr->depth--;
28095 ndr->depth--;
28098 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
28100 if (flags & NDR_IN) {
28102 if (flags & NDR_OUT) {
28103 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28105 return NDR_ERR_SUCCESS;
28108 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
28110 if (flags & NDR_IN) {
28112 if (flags & NDR_OUT) {
28113 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28115 return NDR_ERR_SUCCESS;
28118 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
28120 ndr_print_struct(ndr, name, "spoolss_53");
28121 ndr->depth++;
28122 if (flags & NDR_SET_VALUES) {
28123 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28125 if (flags & NDR_IN) {
28126 ndr_print_struct(ndr, "in", "spoolss_53");
28127 ndr->depth++;
28128 ndr->depth--;
28130 if (flags & NDR_OUT) {
28131 ndr_print_struct(ndr, "out", "spoolss_53");
28132 ndr->depth++;
28133 ndr_print_WERROR(ndr, "result", r->out.result);
28134 ndr->depth--;
28136 ndr->depth--;
28139 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28141 if (flags & NDR_IN) {
28142 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
28143 if (r->in.server) {
28144 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28145 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28146 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28147 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28149 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28150 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28151 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28152 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28153 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28154 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28156 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28157 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
28158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
28160 if (flags & NDR_OUT) {
28161 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28163 return NDR_ERR_SUCCESS;
28166 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
28168 uint32_t _ptr_server;
28169 TALLOC_CTX *_mem_save_server_0;
28170 if (flags & NDR_IN) {
28171 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28172 if (_ptr_server) {
28173 NDR_PULL_ALLOC(ndr, r->in.server);
28174 } else {
28175 r->in.server = NULL;
28177 if (r->in.server) {
28178 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28179 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28180 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28181 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28182 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
28183 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));
28185 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
28186 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
28187 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28189 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
28190 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
28191 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
28192 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));
28194 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
28195 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
28196 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
28197 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
28198 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
28199 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));
28201 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
28202 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
28203 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
28204 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
28206 if (flags & NDR_OUT) {
28207 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28209 return NDR_ERR_SUCCESS;
28212 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28214 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
28215 ndr->depth++;
28216 if (flags & NDR_SET_VALUES) {
28217 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28219 if (flags & NDR_IN) {
28220 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
28221 ndr->depth++;
28222 ndr_print_ptr(ndr, "server", r->in.server);
28223 ndr->depth++;
28224 if (r->in.server) {
28225 ndr_print_string(ndr, "server", r->in.server);
28227 ndr->depth--;
28228 ndr_print_string(ndr, "architecture", r->in.architecture);
28229 ndr_print_string(ndr, "driver", r->in.driver);
28230 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
28231 ndr_print_uint32(ndr, "version", r->in.version);
28232 ndr->depth--;
28234 if (flags & NDR_OUT) {
28235 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
28236 ndr->depth++;
28237 ndr_print_WERROR(ndr, "result", r->out.result);
28238 ndr->depth--;
28240 ndr->depth--;
28243 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
28245 if (flags & NDR_IN) {
28247 if (flags & NDR_OUT) {
28248 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28250 return NDR_ERR_SUCCESS;
28253 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
28255 if (flags & NDR_IN) {
28257 if (flags & NDR_OUT) {
28258 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28260 return NDR_ERR_SUCCESS;
28263 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
28265 ndr_print_struct(ndr, name, "spoolss_55");
28266 ndr->depth++;
28267 if (flags & NDR_SET_VALUES) {
28268 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28270 if (flags & NDR_IN) {
28271 ndr_print_struct(ndr, "in", "spoolss_55");
28272 ndr->depth++;
28273 ndr->depth--;
28275 if (flags & NDR_OUT) {
28276 ndr_print_struct(ndr, "out", "spoolss_55");
28277 ndr->depth++;
28278 ndr_print_WERROR(ndr, "result", r->out.result);
28279 ndr->depth--;
28281 ndr->depth--;
28284 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
28286 if (flags & NDR_IN) {
28288 if (flags & NDR_OUT) {
28289 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28291 return NDR_ERR_SUCCESS;
28294 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
28296 if (flags & NDR_IN) {
28298 if (flags & NDR_OUT) {
28299 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28301 return NDR_ERR_SUCCESS;
28304 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
28306 ndr_print_struct(ndr, name, "spoolss_56");
28307 ndr->depth++;
28308 if (flags & NDR_SET_VALUES) {
28309 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28311 if (flags & NDR_IN) {
28312 ndr_print_struct(ndr, "in", "spoolss_56");
28313 ndr->depth++;
28314 ndr->depth--;
28316 if (flags & NDR_OUT) {
28317 ndr_print_struct(ndr, "out", "spoolss_56");
28318 ndr->depth++;
28319 ndr_print_WERROR(ndr, "result", r->out.result);
28320 ndr->depth--;
28322 ndr->depth--;
28325 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
28327 if (flags & NDR_IN) {
28329 if (flags & NDR_OUT) {
28330 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28332 return NDR_ERR_SUCCESS;
28335 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
28337 if (flags & NDR_IN) {
28339 if (flags & NDR_OUT) {
28340 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28342 return NDR_ERR_SUCCESS;
28345 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
28347 ndr_print_struct(ndr, name, "spoolss_57");
28348 ndr->depth++;
28349 if (flags & NDR_SET_VALUES) {
28350 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28352 if (flags & NDR_IN) {
28353 ndr_print_struct(ndr, "in", "spoolss_57");
28354 ndr->depth++;
28355 ndr->depth--;
28357 if (flags & NDR_OUT) {
28358 ndr_print_struct(ndr, "out", "spoolss_57");
28359 ndr->depth++;
28360 ndr_print_WERROR(ndr, "result", r->out.result);
28361 ndr->depth--;
28363 ndr->depth--;
28366 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
28368 if (flags & NDR_IN) {
28369 if (r->in.handle == NULL) {
28370 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28372 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28373 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28374 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28375 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28376 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));
28377 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
28378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
28379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
28380 if (r->in.status_code == NULL) {
28381 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
28385 if (flags & NDR_OUT) {
28386 if (r->out.out_data == NULL) {
28387 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28389 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
28390 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
28391 if (r->out.needed == NULL) {
28392 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28395 if (r->out.status_code == NULL) {
28396 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
28399 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28401 return NDR_ERR_SUCCESS;
28404 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
28406 TALLOC_CTX *_mem_save_handle_0;
28407 TALLOC_CTX *_mem_save_needed_0;
28408 TALLOC_CTX *_mem_save_status_code_0;
28409 if (flags & NDR_IN) {
28410 ZERO_STRUCT(r->out);
28412 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28413 NDR_PULL_ALLOC(ndr, r->in.handle);
28415 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28416 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28417 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28419 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
28420 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
28421 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
28422 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));
28424 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
28425 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));
28426 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
28427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
28428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
28429 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28430 NDR_PULL_ALLOC(ndr, r->in.status_code);
28432 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28433 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
28434 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
28435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28436 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
28437 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
28438 NDR_PULL_ALLOC(ndr, r->out.needed);
28439 ZERO_STRUCTP(r->out.needed);
28440 NDR_PULL_ALLOC(ndr, r->out.status_code);
28441 *r->out.status_code = *r->in.status_code;
28443 if (flags & NDR_OUT) {
28444 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
28445 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28446 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
28448 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
28449 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28450 NDR_PULL_ALLOC(ndr, r->out.needed);
28452 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28453 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28454 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28456 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28457 NDR_PULL_ALLOC(ndr, r->out.status_code);
28459 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28460 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
28461 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
28462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28463 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28464 if (r->out.out_data) {
28465 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
28468 return NDR_ERR_SUCCESS;
28471 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
28473 ndr_print_struct(ndr, name, "spoolss_XcvData");
28474 ndr->depth++;
28475 if (flags & NDR_SET_VALUES) {
28476 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28478 if (flags & NDR_IN) {
28479 ndr_print_struct(ndr, "in", "spoolss_XcvData");
28480 ndr->depth++;
28481 ndr_print_ptr(ndr, "handle", r->in.handle);
28482 ndr->depth++;
28483 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28484 ndr->depth--;
28485 ndr_print_string(ndr, "function_name", r->in.function_name);
28486 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
28487 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
28488 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
28489 ndr_print_ptr(ndr, "status_code", r->in.status_code);
28490 ndr->depth++;
28491 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
28492 ndr->depth--;
28493 ndr->depth--;
28495 if (flags & NDR_OUT) {
28496 ndr_print_struct(ndr, "out", "spoolss_XcvData");
28497 ndr->depth++;
28498 ndr_print_ptr(ndr, "out_data", r->out.out_data);
28499 ndr->depth++;
28500 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
28501 ndr->depth--;
28502 ndr_print_ptr(ndr, "needed", r->out.needed);
28503 ndr->depth++;
28504 ndr_print_uint32(ndr, "needed", *r->out.needed);
28505 ndr->depth--;
28506 ndr_print_ptr(ndr, "status_code", r->out.status_code);
28507 ndr->depth++;
28508 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
28509 ndr->depth--;
28510 ndr_print_WERROR(ndr, "result", r->out.result);
28511 ndr->depth--;
28513 ndr->depth--;
28516 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
28518 if (flags & NDR_IN) {
28519 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
28520 if (r->in.servername) {
28521 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28522 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28523 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28524 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28526 if (r->in.info_ctr == NULL) {
28527 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28529 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28530 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
28532 if (flags & NDR_OUT) {
28533 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28535 return NDR_ERR_SUCCESS;
28538 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
28540 uint32_t _ptr_servername;
28541 TALLOC_CTX *_mem_save_servername_0;
28542 TALLOC_CTX *_mem_save_info_ctr_0;
28543 if (flags & NDR_IN) {
28544 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
28545 if (_ptr_servername) {
28546 NDR_PULL_ALLOC(ndr, r->in.servername);
28547 } else {
28548 r->in.servername = NULL;
28550 if (r->in.servername) {
28551 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
28552 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
28553 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
28554 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
28555 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
28556 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));
28558 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
28559 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
28560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
28562 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28563 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28565 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28566 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
28567 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28568 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28569 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
28571 if (flags & NDR_OUT) {
28572 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28574 return NDR_ERR_SUCCESS;
28577 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
28579 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
28580 ndr->depth++;
28581 if (flags & NDR_SET_VALUES) {
28582 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28584 if (flags & NDR_IN) {
28585 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
28586 ndr->depth++;
28587 ndr_print_ptr(ndr, "servername", r->in.servername);
28588 ndr->depth++;
28589 if (r->in.servername) {
28590 ndr_print_string(ndr, "servername", r->in.servername);
28592 ndr->depth--;
28593 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
28594 ndr->depth++;
28595 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
28596 ndr->depth--;
28597 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
28598 ndr->depth--;
28600 if (flags & NDR_OUT) {
28601 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
28602 ndr->depth++;
28603 ndr_print_WERROR(ndr, "result", r->out.result);
28604 ndr->depth--;
28606 ndr->depth--;
28609 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
28611 if (flags & NDR_IN) {
28613 if (flags & NDR_OUT) {
28614 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28616 return NDR_ERR_SUCCESS;
28619 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
28621 if (flags & NDR_IN) {
28623 if (flags & NDR_OUT) {
28624 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28626 return NDR_ERR_SUCCESS;
28629 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
28631 ndr_print_struct(ndr, name, "spoolss_5a");
28632 ndr->depth++;
28633 if (flags & NDR_SET_VALUES) {
28634 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28636 if (flags & NDR_IN) {
28637 ndr_print_struct(ndr, "in", "spoolss_5a");
28638 ndr->depth++;
28639 ndr->depth--;
28641 if (flags & NDR_OUT) {
28642 ndr_print_struct(ndr, "out", "spoolss_5a");
28643 ndr->depth++;
28644 ndr_print_WERROR(ndr, "result", r->out.result);
28645 ndr->depth--;
28647 ndr->depth--;
28650 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
28652 if (flags & NDR_IN) {
28654 if (flags & NDR_OUT) {
28655 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28657 return NDR_ERR_SUCCESS;
28660 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
28662 if (flags & NDR_IN) {
28664 if (flags & NDR_OUT) {
28665 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28667 return NDR_ERR_SUCCESS;
28670 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
28672 ndr_print_struct(ndr, name, "spoolss_5b");
28673 ndr->depth++;
28674 if (flags & NDR_SET_VALUES) {
28675 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28677 if (flags & NDR_IN) {
28678 ndr_print_struct(ndr, "in", "spoolss_5b");
28679 ndr->depth++;
28680 ndr->depth--;
28682 if (flags & NDR_OUT) {
28683 ndr_print_struct(ndr, "out", "spoolss_5b");
28684 ndr->depth++;
28685 ndr_print_WERROR(ndr, "result", r->out.result);
28686 ndr->depth--;
28688 ndr->depth--;
28691 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
28693 if (flags & NDR_IN) {
28695 if (flags & NDR_OUT) {
28696 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28698 return NDR_ERR_SUCCESS;
28701 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
28703 if (flags & NDR_IN) {
28705 if (flags & NDR_OUT) {
28706 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28708 return NDR_ERR_SUCCESS;
28711 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
28713 ndr_print_struct(ndr, name, "spoolss_5c");
28714 ndr->depth++;
28715 if (flags & NDR_SET_VALUES) {
28716 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28718 if (flags & NDR_IN) {
28719 ndr_print_struct(ndr, "in", "spoolss_5c");
28720 ndr->depth++;
28721 ndr->depth--;
28723 if (flags & NDR_OUT) {
28724 ndr_print_struct(ndr, "out", "spoolss_5c");
28725 ndr->depth++;
28726 ndr_print_WERROR(ndr, "result", r->out.result);
28727 ndr->depth--;
28729 ndr->depth--;
28732 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
28734 if (flags & NDR_IN) {
28736 if (flags & NDR_OUT) {
28737 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28739 return NDR_ERR_SUCCESS;
28742 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
28744 if (flags & NDR_IN) {
28746 if (flags & NDR_OUT) {
28747 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28749 return NDR_ERR_SUCCESS;
28752 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
28754 ndr_print_struct(ndr, name, "spoolss_5d");
28755 ndr->depth++;
28756 if (flags & NDR_SET_VALUES) {
28757 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28759 if (flags & NDR_IN) {
28760 ndr_print_struct(ndr, "in", "spoolss_5d");
28761 ndr->depth++;
28762 ndr->depth--;
28764 if (flags & NDR_OUT) {
28765 ndr_print_struct(ndr, "out", "spoolss_5d");
28766 ndr->depth++;
28767 ndr_print_WERROR(ndr, "result", r->out.result);
28768 ndr->depth--;
28770 ndr->depth--;
28773 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
28775 if (flags & NDR_IN) {
28777 if (flags & NDR_OUT) {
28778 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28780 return NDR_ERR_SUCCESS;
28783 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
28785 if (flags & NDR_IN) {
28787 if (flags & NDR_OUT) {
28788 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28790 return NDR_ERR_SUCCESS;
28793 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
28795 ndr_print_struct(ndr, name, "spoolss_5e");
28796 ndr->depth++;
28797 if (flags & NDR_SET_VALUES) {
28798 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28800 if (flags & NDR_IN) {
28801 ndr_print_struct(ndr, "in", "spoolss_5e");
28802 ndr->depth++;
28803 ndr->depth--;
28805 if (flags & NDR_OUT) {
28806 ndr_print_struct(ndr, "out", "spoolss_5e");
28807 ndr->depth++;
28808 ndr_print_WERROR(ndr, "result", r->out.result);
28809 ndr->depth--;
28811 ndr->depth--;
28814 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
28816 if (flags & NDR_IN) {
28818 if (flags & NDR_OUT) {
28819 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28821 return NDR_ERR_SUCCESS;
28824 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
28826 if (flags & NDR_IN) {
28828 if (flags & NDR_OUT) {
28829 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28831 return NDR_ERR_SUCCESS;
28834 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
28836 ndr_print_struct(ndr, name, "spoolss_5f");
28837 ndr->depth++;
28838 if (flags & NDR_SET_VALUES) {
28839 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28841 if (flags & NDR_IN) {
28842 ndr_print_struct(ndr, "in", "spoolss_5f");
28843 ndr->depth++;
28844 ndr->depth--;
28846 if (flags & NDR_OUT) {
28847 ndr_print_struct(ndr, "out", "spoolss_5f");
28848 ndr->depth++;
28849 ndr_print_WERROR(ndr, "result", r->out.result);
28850 ndr->depth--;
28852 ndr->depth--;
28855 static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, int flags, const struct spoolss_60 *r)
28857 if (flags & NDR_IN) {
28859 if (flags & NDR_OUT) {
28860 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28862 return NDR_ERR_SUCCESS;
28865 static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, int flags, struct spoolss_60 *r)
28867 if (flags & NDR_IN) {
28869 if (flags & NDR_OUT) {
28870 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28872 return NDR_ERR_SUCCESS;
28875 _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_60 *r)
28877 ndr_print_struct(ndr, name, "spoolss_60");
28878 ndr->depth++;
28879 if (flags & NDR_SET_VALUES) {
28880 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28882 if (flags & NDR_IN) {
28883 ndr_print_struct(ndr, "in", "spoolss_60");
28884 ndr->depth++;
28885 ndr->depth--;
28887 if (flags & NDR_OUT) {
28888 ndr_print_struct(ndr, "out", "spoolss_60");
28889 ndr->depth++;
28890 ndr_print_WERROR(ndr, "result", r->out.result);
28891 ndr->depth--;
28893 ndr->depth--;
28896 static enum ndr_err_code ndr_push_spoolss_61(struct ndr_push *ndr, int flags, const struct spoolss_61 *r)
28898 if (flags & NDR_IN) {
28900 if (flags & NDR_OUT) {
28901 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28903 return NDR_ERR_SUCCESS;
28906 static enum ndr_err_code ndr_pull_spoolss_61(struct ndr_pull *ndr, int flags, struct spoolss_61 *r)
28908 if (flags & NDR_IN) {
28910 if (flags & NDR_OUT) {
28911 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28913 return NDR_ERR_SUCCESS;
28916 _PUBLIC_ void ndr_print_spoolss_61(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_61 *r)
28918 ndr_print_struct(ndr, name, "spoolss_61");
28919 ndr->depth++;
28920 if (flags & NDR_SET_VALUES) {
28921 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28923 if (flags & NDR_IN) {
28924 ndr_print_struct(ndr, "in", "spoolss_61");
28925 ndr->depth++;
28926 ndr->depth--;
28928 if (flags & NDR_OUT) {
28929 ndr_print_struct(ndr, "out", "spoolss_61");
28930 ndr->depth++;
28931 ndr_print_WERROR(ndr, "result", r->out.result);
28932 ndr->depth--;
28934 ndr->depth--;
28937 static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, int flags, const struct spoolss_62 *r)
28939 if (flags & NDR_IN) {
28941 if (flags & NDR_OUT) {
28942 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28944 return NDR_ERR_SUCCESS;
28947 static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, int flags, struct spoolss_62 *r)
28949 if (flags & NDR_IN) {
28951 if (flags & NDR_OUT) {
28952 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28954 return NDR_ERR_SUCCESS;
28957 _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_62 *r)
28959 ndr_print_struct(ndr, name, "spoolss_62");
28960 ndr->depth++;
28961 if (flags & NDR_SET_VALUES) {
28962 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28964 if (flags & NDR_IN) {
28965 ndr_print_struct(ndr, "in", "spoolss_62");
28966 ndr->depth++;
28967 ndr->depth--;
28969 if (flags & NDR_OUT) {
28970 ndr_print_struct(ndr, "out", "spoolss_62");
28971 ndr->depth++;
28972 ndr_print_WERROR(ndr, "result", r->out.result);
28973 ndr->depth--;
28975 ndr->depth--;
28978 static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, int flags, const struct spoolss_63 *r)
28980 if (flags & NDR_IN) {
28982 if (flags & NDR_OUT) {
28983 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28985 return NDR_ERR_SUCCESS;
28988 static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, int flags, struct spoolss_63 *r)
28990 if (flags & NDR_IN) {
28992 if (flags & NDR_OUT) {
28993 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28995 return NDR_ERR_SUCCESS;
28998 _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_63 *r)
29000 ndr_print_struct(ndr, name, "spoolss_63");
29001 ndr->depth++;
29002 if (flags & NDR_SET_VALUES) {
29003 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29005 if (flags & NDR_IN) {
29006 ndr_print_struct(ndr, "in", "spoolss_63");
29007 ndr->depth++;
29008 ndr->depth--;
29010 if (flags & NDR_OUT) {
29011 ndr_print_struct(ndr, "out", "spoolss_63");
29012 ndr->depth++;
29013 ndr_print_WERROR(ndr, "result", r->out.result);
29014 ndr->depth--;
29016 ndr->depth--;
29019 static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, int flags, const struct spoolss_64 *r)
29021 if (flags & NDR_IN) {
29023 if (flags & NDR_OUT) {
29024 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29026 return NDR_ERR_SUCCESS;
29029 static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, int flags, struct spoolss_64 *r)
29031 if (flags & NDR_IN) {
29033 if (flags & NDR_OUT) {
29034 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29036 return NDR_ERR_SUCCESS;
29039 _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_64 *r)
29041 ndr_print_struct(ndr, name, "spoolss_64");
29042 ndr->depth++;
29043 if (flags & NDR_SET_VALUES) {
29044 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29046 if (flags & NDR_IN) {
29047 ndr_print_struct(ndr, "in", "spoolss_64");
29048 ndr->depth++;
29049 ndr->depth--;
29051 if (flags & NDR_OUT) {
29052 ndr_print_struct(ndr, "out", "spoolss_64");
29053 ndr->depth++;
29054 ndr_print_WERROR(ndr, "result", r->out.result);
29055 ndr->depth--;
29057 ndr->depth--;
29060 static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, int flags, const struct spoolss_65 *r)
29062 if (flags & NDR_IN) {
29064 if (flags & NDR_OUT) {
29065 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29067 return NDR_ERR_SUCCESS;
29070 static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, int flags, struct spoolss_65 *r)
29072 if (flags & NDR_IN) {
29074 if (flags & NDR_OUT) {
29075 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29077 return NDR_ERR_SUCCESS;
29080 _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_65 *r)
29082 ndr_print_struct(ndr, name, "spoolss_65");
29083 ndr->depth++;
29084 if (flags & NDR_SET_VALUES) {
29085 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29087 if (flags & NDR_IN) {
29088 ndr_print_struct(ndr, "in", "spoolss_65");
29089 ndr->depth++;
29090 ndr->depth--;
29092 if (flags & NDR_OUT) {
29093 ndr_print_struct(ndr, "out", "spoolss_65");
29094 ndr->depth++;
29095 ndr_print_WERROR(ndr, "result", r->out.result);
29096 ndr->depth--;
29098 ndr->depth--;
29101 static enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29103 uint32_t cntr_core_printer_drivers_1;
29104 if (flags & NDR_IN) {
29105 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29106 if (r->in.servername) {
29107 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29108 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29109 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29110 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29112 if (r->in.architecture == NULL) {
29113 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29115 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29116 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29117 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29118 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
29120 if (r->in.core_driver_dependencies == NULL) {
29121 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29123 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
29124 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.core_driver_dependencies, r->in.core_driver_size, sizeof(uint16_t), CH_UTF16));
29125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29127 if (flags & NDR_OUT) {
29128 if (r->out.core_printer_drivers == NULL) {
29129 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29131 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29132 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29133 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29135 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29137 return NDR_ERR_SUCCESS;
29140 static enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_GetCorePrinterDrivers *r)
29142 uint32_t _ptr_servername;
29143 uint32_t cntr_core_printer_drivers_1;
29144 TALLOC_CTX *_mem_save_servername_0;
29145 TALLOC_CTX *_mem_save_core_printer_drivers_1;
29146 if (flags & NDR_IN) {
29147 ZERO_STRUCT(r->out);
29149 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29150 if (_ptr_servername) {
29151 NDR_PULL_ALLOC(ndr, r->in.servername);
29152 } else {
29153 r->in.servername = NULL;
29155 if (r->in.servername) {
29156 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29157 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29158 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29159 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29160 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29161 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));
29163 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29164 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29165 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29167 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29168 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29169 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29170 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));
29172 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29173 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29174 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
29175 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
29176 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.core_driver_dependencies, ndr_get_array_size(ndr, &r->in.core_driver_dependencies), sizeof(uint16_t), CH_UTF16));
29177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
29178 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
29179 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
29180 if (r->in.core_driver_dependencies) {
29181 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
29184 if (flags & NDR_OUT) {
29185 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
29186 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29187 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, ndr_get_array_size(ndr, &r->out.core_printer_drivers));
29189 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
29190 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
29191 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29192 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29194 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
29195 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29196 if (r->out.core_printer_drivers) {
29197 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
29200 return NDR_ERR_SUCCESS;
29203 _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29205 uint32_t cntr_core_printer_drivers_1;
29206 ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
29207 ndr->depth++;
29208 if (flags & NDR_SET_VALUES) {
29209 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29211 if (flags & NDR_IN) {
29212 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
29213 ndr->depth++;
29214 ndr_print_ptr(ndr, "servername", r->in.servername);
29215 ndr->depth++;
29216 if (r->in.servername) {
29217 ndr_print_string(ndr, "servername", r->in.servername);
29219 ndr->depth--;
29220 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29221 ndr->depth++;
29222 ndr_print_string(ndr, "architecture", r->in.architecture);
29223 ndr->depth--;
29224 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
29225 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29226 ndr->depth++;
29227 ndr_print_string(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29228 ndr->depth--;
29229 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
29230 ndr->depth--;
29232 if (flags & NDR_OUT) {
29233 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
29234 ndr->depth++;
29235 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
29236 ndr->depth++;
29237 ndr->print(ndr, "%s: ARRAY(%d)", "core_printer_drivers", (int)r->in.core_printer_driver_count);
29238 ndr->depth++;
29239 for (cntr_core_printer_drivers_1=0;cntr_core_printer_drivers_1<r->in.core_printer_driver_count;cntr_core_printer_drivers_1++) {
29240 char *idx_1=NULL;
29241 if (asprintf(&idx_1, "[%d]", cntr_core_printer_drivers_1) != -1) {
29242 ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
29243 free(idx_1);
29246 ndr->depth--;
29247 ndr->depth--;
29248 ndr_print_WERROR(ndr, "result", r->out.result);
29249 ndr->depth--;
29251 ndr->depth--;
29254 static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, int flags, const struct spoolss_67 *r)
29256 if (flags & NDR_IN) {
29258 if (flags & NDR_OUT) {
29259 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29261 return NDR_ERR_SUCCESS;
29264 static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, int flags, struct spoolss_67 *r)
29266 if (flags & NDR_IN) {
29268 if (flags & NDR_OUT) {
29269 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29271 return NDR_ERR_SUCCESS;
29274 _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_67 *r)
29276 ndr_print_struct(ndr, name, "spoolss_67");
29277 ndr->depth++;
29278 if (flags & NDR_SET_VALUES) {
29279 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29281 if (flags & NDR_IN) {
29282 ndr_print_struct(ndr, "in", "spoolss_67");
29283 ndr->depth++;
29284 ndr->depth--;
29286 if (flags & NDR_OUT) {
29287 ndr_print_struct(ndr, "out", "spoolss_67");
29288 ndr->depth++;
29289 ndr_print_WERROR(ndr, "result", r->out.result);
29290 ndr->depth--;
29292 ndr->depth--;
29295 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29297 if (flags & NDR_IN) {
29298 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29299 if (r->in.servername) {
29300 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29301 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29302 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29303 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29305 if (r->in.architecture == NULL) {
29306 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29308 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29309 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29310 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29311 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29312 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
29313 if (r->in.language) {
29314 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29315 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29316 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29317 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29319 if (r->in.package_id == NULL) {
29320 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29322 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29323 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29324 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29325 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.package_id, ndr_charset_length(r->in.package_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29326 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
29327 if (r->in.driver_package_cab) {
29328 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29329 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29333 if (flags & NDR_OUT) {
29334 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
29335 if (r->out.driver_package_cab) {
29336 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29337 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29339 if (r->out.required == NULL) {
29340 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
29343 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29345 return NDR_ERR_SUCCESS;
29348 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverPackagePath *r)
29350 uint32_t _ptr_servername;
29351 uint32_t _ptr_language;
29352 uint32_t _ptr_driver_package_cab;
29353 TALLOC_CTX *_mem_save_servername_0;
29354 TALLOC_CTX *_mem_save_language_0;
29355 TALLOC_CTX *_mem_save_driver_package_cab_0;
29356 TALLOC_CTX *_mem_save_required_0;
29357 if (flags & NDR_IN) {
29358 ZERO_STRUCT(r->out);
29360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29361 if (_ptr_servername) {
29362 NDR_PULL_ALLOC(ndr, r->in.servername);
29363 } else {
29364 r->in.servername = NULL;
29366 if (r->in.servername) {
29367 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29368 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29369 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29370 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29371 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29372 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));
29374 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29375 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29378 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29379 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29380 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29381 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));
29383 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29384 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
29386 if (_ptr_language) {
29387 NDR_PULL_ALLOC(ndr, r->in.language);
29388 } else {
29389 r->in.language = NULL;
29391 if (r->in.language) {
29392 _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
29393 NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
29394 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
29395 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
29396 if (ndr_get_array_length(ndr, &r->in.language) > ndr_get_array_size(ndr, &r->in.language)) {
29397 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.language), ndr_get_array_length(ndr, &r->in.language));
29399 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t)));
29400 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t), CH_UTF16));
29401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
29403 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
29404 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
29405 if (ndr_get_array_length(ndr, &r->in.package_id) > ndr_get_array_size(ndr, &r->in.package_id)) {
29406 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.package_id), ndr_get_array_length(ndr, &r->in.package_id));
29408 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t)));
29409 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.package_id, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t), CH_UTF16));
29410 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29411 if (_ptr_driver_package_cab) {
29412 NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
29413 } else {
29414 r->in.driver_package_cab = NULL;
29416 if (r->in.driver_package_cab) {
29417 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29418 NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
29419 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
29420 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver_package_cab, ndr_get_array_size(ndr, &r->in.driver_package_cab), sizeof(uint16_t), CH_UTF16));
29421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
29424 NDR_PULL_ALLOC(ndr, r->out.required);
29425 ZERO_STRUCTP(r->out.required);
29426 if (r->in.driver_package_cab) {
29427 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
29430 if (flags & NDR_OUT) {
29431 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29432 if (_ptr_driver_package_cab) {
29433 NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
29434 } else {
29435 r->out.driver_package_cab = NULL;
29437 if (r->out.driver_package_cab) {
29438 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29439 NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
29440 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
29441 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.driver_package_cab, ndr_get_array_size(ndr, &r->out.driver_package_cab), sizeof(uint16_t), CH_UTF16));
29442 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29444 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29445 NDR_PULL_ALLOC(ndr, r->out.required);
29447 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
29448 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
29449 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
29450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
29451 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29452 if (r->out.driver_package_cab) {
29453 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
29456 return NDR_ERR_SUCCESS;
29459 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29461 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
29462 ndr->depth++;
29463 if (flags & NDR_SET_VALUES) {
29464 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29466 if (flags & NDR_IN) {
29467 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
29468 ndr->depth++;
29469 ndr_print_ptr(ndr, "servername", r->in.servername);
29470 ndr->depth++;
29471 if (r->in.servername) {
29472 ndr_print_string(ndr, "servername", r->in.servername);
29474 ndr->depth--;
29475 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29476 ndr->depth++;
29477 ndr_print_string(ndr, "architecture", r->in.architecture);
29478 ndr->depth--;
29479 ndr_print_ptr(ndr, "language", r->in.language);
29480 ndr->depth++;
29481 if (r->in.language) {
29482 ndr_print_string(ndr, "language", r->in.language);
29484 ndr->depth--;
29485 ndr_print_ptr(ndr, "package_id", r->in.package_id);
29486 ndr->depth++;
29487 ndr_print_string(ndr, "package_id", r->in.package_id);
29488 ndr->depth--;
29489 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
29490 ndr->depth++;
29491 if (r->in.driver_package_cab) {
29492 ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
29494 ndr->depth--;
29495 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
29496 ndr->depth--;
29498 if (flags & NDR_OUT) {
29499 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
29500 ndr->depth++;
29501 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
29502 ndr->depth++;
29503 if (r->out.driver_package_cab) {
29504 ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
29506 ndr->depth--;
29507 ndr_print_ptr(ndr, "required", r->out.required);
29508 ndr->depth++;
29509 ndr_print_uint32(ndr, "required", *r->out.required);
29510 ndr->depth--;
29511 ndr_print_WERROR(ndr, "result", r->out.result);
29512 ndr->depth--;
29514 ndr->depth--;
29517 static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, int flags, const struct spoolss_69 *r)
29519 if (flags & NDR_IN) {
29521 if (flags & NDR_OUT) {
29522 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29524 return NDR_ERR_SUCCESS;
29527 static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, int flags, struct spoolss_69 *r)
29529 if (flags & NDR_IN) {
29531 if (flags & NDR_OUT) {
29532 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29534 return NDR_ERR_SUCCESS;
29537 _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_69 *r)
29539 ndr_print_struct(ndr, name, "spoolss_69");
29540 ndr->depth++;
29541 if (flags & NDR_SET_VALUES) {
29542 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29544 if (flags & NDR_IN) {
29545 ndr_print_struct(ndr, "in", "spoolss_69");
29546 ndr->depth++;
29547 ndr->depth--;
29549 if (flags & NDR_OUT) {
29550 ndr_print_struct(ndr, "out", "spoolss_69");
29551 ndr->depth++;
29552 ndr_print_WERROR(ndr, "result", r->out.result);
29553 ndr->depth--;
29555 ndr->depth--;
29558 static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, int flags, const struct spoolss_6a *r)
29560 if (flags & NDR_IN) {
29562 if (flags & NDR_OUT) {
29563 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29565 return NDR_ERR_SUCCESS;
29568 static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, int flags, struct spoolss_6a *r)
29570 if (flags & NDR_IN) {
29572 if (flags & NDR_OUT) {
29573 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29575 return NDR_ERR_SUCCESS;
29578 _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6a *r)
29580 ndr_print_struct(ndr, name, "spoolss_6a");
29581 ndr->depth++;
29582 if (flags & NDR_SET_VALUES) {
29583 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29585 if (flags & NDR_IN) {
29586 ndr_print_struct(ndr, "in", "spoolss_6a");
29587 ndr->depth++;
29588 ndr->depth--;
29590 if (flags & NDR_OUT) {
29591 ndr_print_struct(ndr, "out", "spoolss_6a");
29592 ndr->depth++;
29593 ndr_print_WERROR(ndr, "result", r->out.result);
29594 ndr->depth--;
29596 ndr->depth--;
29599 static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, int flags, const struct spoolss_6b *r)
29601 if (flags & NDR_IN) {
29603 if (flags & NDR_OUT) {
29604 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29606 return NDR_ERR_SUCCESS;
29609 static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, int flags, struct spoolss_6b *r)
29611 if (flags & NDR_IN) {
29613 if (flags & NDR_OUT) {
29614 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29616 return NDR_ERR_SUCCESS;
29619 _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6b *r)
29621 ndr_print_struct(ndr, name, "spoolss_6b");
29622 ndr->depth++;
29623 if (flags & NDR_SET_VALUES) {
29624 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29626 if (flags & NDR_IN) {
29627 ndr_print_struct(ndr, "in", "spoolss_6b");
29628 ndr->depth++;
29629 ndr->depth--;
29631 if (flags & NDR_OUT) {
29632 ndr_print_struct(ndr, "out", "spoolss_6b");
29633 ndr->depth++;
29634 ndr_print_WERROR(ndr, "result", r->out.result);
29635 ndr->depth--;
29637 ndr->depth--;
29640 static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, int flags, const struct spoolss_6c *r)
29642 if (flags & NDR_IN) {
29644 if (flags & NDR_OUT) {
29645 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29647 return NDR_ERR_SUCCESS;
29650 static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, int flags, struct spoolss_6c *r)
29652 if (flags & NDR_IN) {
29654 if (flags & NDR_OUT) {
29655 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29657 return NDR_ERR_SUCCESS;
29660 _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6c *r)
29662 ndr_print_struct(ndr, name, "spoolss_6c");
29663 ndr->depth++;
29664 if (flags & NDR_SET_VALUES) {
29665 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29667 if (flags & NDR_IN) {
29668 ndr_print_struct(ndr, "in", "spoolss_6c");
29669 ndr->depth++;
29670 ndr->depth--;
29672 if (flags & NDR_OUT) {
29673 ndr_print_struct(ndr, "out", "spoolss_6c");
29674 ndr->depth++;
29675 ndr_print_WERROR(ndr, "result", r->out.result);
29676 ndr->depth--;
29678 ndr->depth--;
29681 static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, int flags, const struct spoolss_6d *r)
29683 if (flags & NDR_IN) {
29685 if (flags & NDR_OUT) {
29686 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29688 return NDR_ERR_SUCCESS;
29691 static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, int flags, struct spoolss_6d *r)
29693 if (flags & NDR_IN) {
29695 if (flags & NDR_OUT) {
29696 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29698 return NDR_ERR_SUCCESS;
29701 _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6d *r)
29703 ndr_print_struct(ndr, name, "spoolss_6d");
29704 ndr->depth++;
29705 if (flags & NDR_SET_VALUES) {
29706 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29708 if (flags & NDR_IN) {
29709 ndr_print_struct(ndr, "in", "spoolss_6d");
29710 ndr->depth++;
29711 ndr->depth--;
29713 if (flags & NDR_OUT) {
29714 ndr_print_struct(ndr, "out", "spoolss_6d");
29715 ndr->depth++;
29716 ndr_print_WERROR(ndr, "result", r->out.result);
29717 ndr->depth--;
29719 ndr->depth--;
29722 static const struct ndr_interface_call spoolss_calls[] = {
29724 "spoolss_EnumPrinters",
29725 sizeof(struct spoolss_EnumPrinters),
29726 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
29727 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
29728 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
29729 false,
29732 "spoolss_OpenPrinter",
29733 sizeof(struct spoolss_OpenPrinter),
29734 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
29735 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
29736 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
29737 false,
29740 "spoolss_SetJob",
29741 sizeof(struct spoolss_SetJob),
29742 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
29743 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
29744 (ndr_print_function_t) ndr_print_spoolss_SetJob,
29745 false,
29748 "spoolss_GetJob",
29749 sizeof(struct spoolss_GetJob),
29750 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
29751 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
29752 (ndr_print_function_t) ndr_print_spoolss_GetJob,
29753 false,
29756 "spoolss_EnumJobs",
29757 sizeof(struct spoolss_EnumJobs),
29758 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
29759 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
29760 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
29761 false,
29764 "spoolss_AddPrinter",
29765 sizeof(struct spoolss_AddPrinter),
29766 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
29767 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
29768 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
29769 false,
29772 "spoolss_DeletePrinter",
29773 sizeof(struct spoolss_DeletePrinter),
29774 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
29775 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
29776 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
29777 false,
29780 "spoolss_SetPrinter",
29781 sizeof(struct spoolss_SetPrinter),
29782 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
29783 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
29784 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
29785 false,
29788 "spoolss_GetPrinter",
29789 sizeof(struct spoolss_GetPrinter),
29790 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
29791 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
29792 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
29793 false,
29796 "spoolss_AddPrinterDriver",
29797 sizeof(struct spoolss_AddPrinterDriver),
29798 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
29799 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
29800 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
29801 false,
29804 "spoolss_EnumPrinterDrivers",
29805 sizeof(struct spoolss_EnumPrinterDrivers),
29806 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
29807 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
29808 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
29809 false,
29812 "spoolss_GetPrinterDriver",
29813 sizeof(struct spoolss_GetPrinterDriver),
29814 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
29815 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
29816 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
29817 false,
29820 "spoolss_GetPrinterDriverDirectory",
29821 sizeof(struct spoolss_GetPrinterDriverDirectory),
29822 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
29823 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
29824 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
29825 false,
29828 "spoolss_DeletePrinterDriver",
29829 sizeof(struct spoolss_DeletePrinterDriver),
29830 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
29831 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
29832 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
29833 false,
29836 "spoolss_AddPrintProcessor",
29837 sizeof(struct spoolss_AddPrintProcessor),
29838 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
29839 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
29840 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
29841 false,
29844 "spoolss_EnumPrintProcessors",
29845 sizeof(struct spoolss_EnumPrintProcessors),
29846 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
29847 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
29848 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
29849 false,
29852 "spoolss_GetPrintProcessorDirectory",
29853 sizeof(struct spoolss_GetPrintProcessorDirectory),
29854 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
29855 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
29856 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
29857 false,
29860 "spoolss_StartDocPrinter",
29861 sizeof(struct spoolss_StartDocPrinter),
29862 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
29863 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
29864 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
29865 false,
29868 "spoolss_StartPagePrinter",
29869 sizeof(struct spoolss_StartPagePrinter),
29870 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
29871 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
29872 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
29873 false,
29876 "spoolss_WritePrinter",
29877 sizeof(struct spoolss_WritePrinter),
29878 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
29879 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
29880 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
29881 false,
29884 "spoolss_EndPagePrinter",
29885 sizeof(struct spoolss_EndPagePrinter),
29886 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
29887 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
29888 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
29889 false,
29892 "spoolss_AbortPrinter",
29893 sizeof(struct spoolss_AbortPrinter),
29894 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
29895 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
29896 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
29897 false,
29900 "spoolss_ReadPrinter",
29901 sizeof(struct spoolss_ReadPrinter),
29902 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
29903 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
29904 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
29905 false,
29908 "spoolss_EndDocPrinter",
29909 sizeof(struct spoolss_EndDocPrinter),
29910 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
29911 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
29912 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
29913 false,
29916 "spoolss_AddJob",
29917 sizeof(struct spoolss_AddJob),
29918 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
29919 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
29920 (ndr_print_function_t) ndr_print_spoolss_AddJob,
29921 false,
29924 "spoolss_ScheduleJob",
29925 sizeof(struct spoolss_ScheduleJob),
29926 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
29927 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
29928 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
29929 false,
29932 "spoolss_GetPrinterData",
29933 sizeof(struct spoolss_GetPrinterData),
29934 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
29935 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
29936 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
29937 false,
29940 "spoolss_SetPrinterData",
29941 sizeof(struct spoolss_SetPrinterData),
29942 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
29943 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
29944 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
29945 false,
29948 "spoolss_WaitForPrinterChange",
29949 sizeof(struct spoolss_WaitForPrinterChange),
29950 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
29951 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
29952 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
29953 false,
29956 "spoolss_ClosePrinter",
29957 sizeof(struct spoolss_ClosePrinter),
29958 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
29959 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
29960 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
29961 false,
29964 "spoolss_AddForm",
29965 sizeof(struct spoolss_AddForm),
29966 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
29967 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
29968 (ndr_print_function_t) ndr_print_spoolss_AddForm,
29969 false,
29972 "spoolss_DeleteForm",
29973 sizeof(struct spoolss_DeleteForm),
29974 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
29975 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
29976 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
29977 false,
29980 "spoolss_GetForm",
29981 sizeof(struct spoolss_GetForm),
29982 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
29983 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
29984 (ndr_print_function_t) ndr_print_spoolss_GetForm,
29985 false,
29988 "spoolss_SetForm",
29989 sizeof(struct spoolss_SetForm),
29990 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
29991 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
29992 (ndr_print_function_t) ndr_print_spoolss_SetForm,
29993 false,
29996 "spoolss_EnumForms",
29997 sizeof(struct spoolss_EnumForms),
29998 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
29999 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
30000 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
30001 false,
30004 "spoolss_EnumPorts",
30005 sizeof(struct spoolss_EnumPorts),
30006 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
30007 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
30008 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
30009 false,
30012 "spoolss_EnumMonitors",
30013 sizeof(struct spoolss_EnumMonitors),
30014 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
30015 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
30016 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
30017 false,
30020 "spoolss_AddPort",
30021 sizeof(struct spoolss_AddPort),
30022 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
30023 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
30024 (ndr_print_function_t) ndr_print_spoolss_AddPort,
30025 false,
30028 "spoolss_ConfigurePort",
30029 sizeof(struct spoolss_ConfigurePort),
30030 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
30031 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
30032 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
30033 false,
30036 "spoolss_DeletePort",
30037 sizeof(struct spoolss_DeletePort),
30038 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
30039 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
30040 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
30041 false,
30044 "spoolss_CreatePrinterIC",
30045 sizeof(struct spoolss_CreatePrinterIC),
30046 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
30047 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
30048 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
30049 false,
30052 "spoolss_PlayGDIScriptOnPrinterIC",
30053 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
30054 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
30055 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
30056 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
30057 false,
30060 "spoolss_DeletePrinterIC",
30061 sizeof(struct spoolss_DeletePrinterIC),
30062 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
30063 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
30064 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
30065 false,
30068 "spoolss_AddPrinterConnection",
30069 sizeof(struct spoolss_AddPrinterConnection),
30070 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
30071 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
30072 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
30073 false,
30076 "spoolss_DeletePrinterConnection",
30077 sizeof(struct spoolss_DeletePrinterConnection),
30078 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
30079 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
30080 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
30081 false,
30084 "spoolss_PrinterMessageBox",
30085 sizeof(struct spoolss_PrinterMessageBox),
30086 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
30087 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
30088 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
30089 false,
30092 "spoolss_AddMonitor",
30093 sizeof(struct spoolss_AddMonitor),
30094 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
30095 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
30096 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
30097 false,
30100 "spoolss_DeleteMonitor",
30101 sizeof(struct spoolss_DeleteMonitor),
30102 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
30103 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
30104 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
30105 false,
30108 "spoolss_DeletePrintProcessor",
30109 sizeof(struct spoolss_DeletePrintProcessor),
30110 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
30111 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
30112 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
30113 false,
30116 "spoolss_AddPrintProvidor",
30117 sizeof(struct spoolss_AddPrintProvidor),
30118 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
30119 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
30120 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
30121 false,
30124 "spoolss_DeletePrintProvidor",
30125 sizeof(struct spoolss_DeletePrintProvidor),
30126 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
30127 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
30128 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
30129 false,
30132 "spoolss_EnumPrintProcDataTypes",
30133 sizeof(struct spoolss_EnumPrintProcDataTypes),
30134 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
30135 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
30136 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
30137 false,
30140 "spoolss_ResetPrinter",
30141 sizeof(struct spoolss_ResetPrinter),
30142 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
30143 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
30144 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
30145 false,
30148 "spoolss_GetPrinterDriver2",
30149 sizeof(struct spoolss_GetPrinterDriver2),
30150 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
30151 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
30152 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
30153 false,
30156 "spoolss_FindFirstPrinterChangeNotification",
30157 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
30158 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
30159 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
30160 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
30161 false,
30164 "spoolss_FindNextPrinterChangeNotification",
30165 sizeof(struct spoolss_FindNextPrinterChangeNotification),
30166 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
30167 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
30168 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
30169 false,
30172 "spoolss_FindClosePrinterNotify",
30173 sizeof(struct spoolss_FindClosePrinterNotify),
30174 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
30175 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
30176 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
30177 false,
30180 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
30181 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
30182 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30183 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30184 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30185 false,
30188 "spoolss_ReplyOpenPrinter",
30189 sizeof(struct spoolss_ReplyOpenPrinter),
30190 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
30191 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
30192 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
30193 false,
30196 "spoolss_RouterReplyPrinter",
30197 sizeof(struct spoolss_RouterReplyPrinter),
30198 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
30199 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
30200 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
30201 false,
30204 "spoolss_ReplyClosePrinter",
30205 sizeof(struct spoolss_ReplyClosePrinter),
30206 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
30207 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
30208 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
30209 false,
30212 "spoolss_AddPortEx",
30213 sizeof(struct spoolss_AddPortEx),
30214 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
30215 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
30216 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
30217 false,
30220 "spoolss_RouterFindFirstPrinterChangeNotification",
30221 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
30222 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
30223 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
30224 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
30225 false,
30228 "spoolss_SpoolerInit",
30229 sizeof(struct spoolss_SpoolerInit),
30230 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
30231 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
30232 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
30233 false,
30236 "spoolss_ResetPrinterEx",
30237 sizeof(struct spoolss_ResetPrinterEx),
30238 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
30239 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
30240 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
30241 false,
30244 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
30245 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
30246 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30247 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30248 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30249 false,
30252 "spoolss_RouterReplyPrinterEx",
30253 sizeof(struct spoolss_RouterReplyPrinterEx),
30254 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
30255 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
30256 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
30257 false,
30260 "spoolss_RouterRefreshPrinterChangeNotify",
30261 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
30262 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
30263 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
30264 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
30265 false,
30268 "spoolss_44",
30269 sizeof(struct spoolss_44),
30270 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
30271 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
30272 (ndr_print_function_t) ndr_print_spoolss_44,
30273 false,
30276 "spoolss_OpenPrinterEx",
30277 sizeof(struct spoolss_OpenPrinterEx),
30278 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
30279 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
30280 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
30281 false,
30284 "spoolss_AddPrinterEx",
30285 sizeof(struct spoolss_AddPrinterEx),
30286 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
30287 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
30288 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
30289 false,
30292 "spoolss_47",
30293 sizeof(struct spoolss_47),
30294 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
30295 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
30296 (ndr_print_function_t) ndr_print_spoolss_47,
30297 false,
30300 "spoolss_EnumPrinterData",
30301 sizeof(struct spoolss_EnumPrinterData),
30302 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
30303 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
30304 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
30305 false,
30308 "spoolss_DeletePrinterData",
30309 sizeof(struct spoolss_DeletePrinterData),
30310 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
30311 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
30312 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
30313 false,
30316 "spoolss_4a",
30317 sizeof(struct spoolss_4a),
30318 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
30319 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
30320 (ndr_print_function_t) ndr_print_spoolss_4a,
30321 false,
30324 "spoolss_4b",
30325 sizeof(struct spoolss_4b),
30326 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
30327 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
30328 (ndr_print_function_t) ndr_print_spoolss_4b,
30329 false,
30332 "spoolss_4c",
30333 sizeof(struct spoolss_4c),
30334 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
30335 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
30336 (ndr_print_function_t) ndr_print_spoolss_4c,
30337 false,
30340 "spoolss_SetPrinterDataEx",
30341 sizeof(struct spoolss_SetPrinterDataEx),
30342 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
30343 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
30344 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
30345 false,
30348 "spoolss_GetPrinterDataEx",
30349 sizeof(struct spoolss_GetPrinterDataEx),
30350 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
30351 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
30352 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
30353 false,
30356 "spoolss_EnumPrinterDataEx",
30357 sizeof(struct spoolss_EnumPrinterDataEx),
30358 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
30359 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
30360 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
30361 false,
30364 "spoolss_EnumPrinterKey",
30365 sizeof(struct spoolss_EnumPrinterKey),
30366 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
30367 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
30368 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
30369 false,
30372 "spoolss_DeletePrinterDataEx",
30373 sizeof(struct spoolss_DeletePrinterDataEx),
30374 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
30375 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
30376 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
30377 false,
30380 "spoolss_DeletePrinterKey",
30381 sizeof(struct spoolss_DeletePrinterKey),
30382 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
30383 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
30384 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
30385 false,
30388 "spoolss_53",
30389 sizeof(struct spoolss_53),
30390 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
30391 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
30392 (ndr_print_function_t) ndr_print_spoolss_53,
30393 false,
30396 "spoolss_DeletePrinterDriverEx",
30397 sizeof(struct spoolss_DeletePrinterDriverEx),
30398 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
30399 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
30400 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
30401 false,
30404 "spoolss_55",
30405 sizeof(struct spoolss_55),
30406 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
30407 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
30408 (ndr_print_function_t) ndr_print_spoolss_55,
30409 false,
30412 "spoolss_56",
30413 sizeof(struct spoolss_56),
30414 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
30415 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
30416 (ndr_print_function_t) ndr_print_spoolss_56,
30417 false,
30420 "spoolss_57",
30421 sizeof(struct spoolss_57),
30422 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
30423 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
30424 (ndr_print_function_t) ndr_print_spoolss_57,
30425 false,
30428 "spoolss_XcvData",
30429 sizeof(struct spoolss_XcvData),
30430 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
30431 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
30432 (ndr_print_function_t) ndr_print_spoolss_XcvData,
30433 false,
30436 "spoolss_AddPrinterDriverEx",
30437 sizeof(struct spoolss_AddPrinterDriverEx),
30438 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
30439 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
30440 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
30441 false,
30444 "spoolss_5a",
30445 sizeof(struct spoolss_5a),
30446 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
30447 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
30448 (ndr_print_function_t) ndr_print_spoolss_5a,
30449 false,
30452 "spoolss_5b",
30453 sizeof(struct spoolss_5b),
30454 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
30455 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
30456 (ndr_print_function_t) ndr_print_spoolss_5b,
30457 false,
30460 "spoolss_5c",
30461 sizeof(struct spoolss_5c),
30462 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
30463 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
30464 (ndr_print_function_t) ndr_print_spoolss_5c,
30465 false,
30468 "spoolss_5d",
30469 sizeof(struct spoolss_5d),
30470 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
30471 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
30472 (ndr_print_function_t) ndr_print_spoolss_5d,
30473 false,
30476 "spoolss_5e",
30477 sizeof(struct spoolss_5e),
30478 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
30479 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
30480 (ndr_print_function_t) ndr_print_spoolss_5e,
30481 false,
30484 "spoolss_5f",
30485 sizeof(struct spoolss_5f),
30486 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
30487 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
30488 (ndr_print_function_t) ndr_print_spoolss_5f,
30489 false,
30492 "spoolss_60",
30493 sizeof(struct spoolss_60),
30494 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
30495 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
30496 (ndr_print_function_t) ndr_print_spoolss_60,
30497 false,
30500 "spoolss_61",
30501 sizeof(struct spoolss_61),
30502 (ndr_push_flags_fn_t) ndr_push_spoolss_61,
30503 (ndr_pull_flags_fn_t) ndr_pull_spoolss_61,
30504 (ndr_print_function_t) ndr_print_spoolss_61,
30505 false,
30508 "spoolss_62",
30509 sizeof(struct spoolss_62),
30510 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
30511 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
30512 (ndr_print_function_t) ndr_print_spoolss_62,
30513 false,
30516 "spoolss_63",
30517 sizeof(struct spoolss_63),
30518 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
30519 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
30520 (ndr_print_function_t) ndr_print_spoolss_63,
30521 false,
30524 "spoolss_64",
30525 sizeof(struct spoolss_64),
30526 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
30527 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
30528 (ndr_print_function_t) ndr_print_spoolss_64,
30529 false,
30532 "spoolss_65",
30533 sizeof(struct spoolss_65),
30534 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
30535 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
30536 (ndr_print_function_t) ndr_print_spoolss_65,
30537 false,
30540 "spoolss_GetCorePrinterDrivers",
30541 sizeof(struct spoolss_GetCorePrinterDrivers),
30542 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
30543 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
30544 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
30545 false,
30548 "spoolss_67",
30549 sizeof(struct spoolss_67),
30550 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
30551 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
30552 (ndr_print_function_t) ndr_print_spoolss_67,
30553 false,
30556 "spoolss_GetPrinterDriverPackagePath",
30557 sizeof(struct spoolss_GetPrinterDriverPackagePath),
30558 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
30559 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
30560 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
30561 false,
30564 "spoolss_69",
30565 sizeof(struct spoolss_69),
30566 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
30567 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
30568 (ndr_print_function_t) ndr_print_spoolss_69,
30569 false,
30572 "spoolss_6a",
30573 sizeof(struct spoolss_6a),
30574 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
30575 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
30576 (ndr_print_function_t) ndr_print_spoolss_6a,
30577 false,
30580 "spoolss_6b",
30581 sizeof(struct spoolss_6b),
30582 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
30583 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
30584 (ndr_print_function_t) ndr_print_spoolss_6b,
30585 false,
30588 "spoolss_6c",
30589 sizeof(struct spoolss_6c),
30590 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
30591 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
30592 (ndr_print_function_t) ndr_print_spoolss_6c,
30593 false,
30596 "spoolss_6d",
30597 sizeof(struct spoolss_6d),
30598 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
30599 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
30600 (ndr_print_function_t) ndr_print_spoolss_6d,
30601 false,
30603 { NULL, 0, NULL, NULL, NULL, false }
30606 static const char * const spoolss_endpoint_strings[] = {
30607 "ncacn_np:[\\pipe\\spoolss]",
30610 static const struct ndr_interface_string_array spoolss_endpoints = {
30611 .count = 1,
30612 .names = spoolss_endpoint_strings
30615 static const char * const spoolss_authservice_strings[] = {
30616 "host",
30619 static const struct ndr_interface_string_array spoolss_authservices = {
30620 .count = 1,
30621 .names = spoolss_authservice_strings
30625 const struct ndr_interface_table ndr_table_spoolss = {
30626 .name = "spoolss",
30627 .syntax_id = {
30628 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
30629 NDR_SPOOLSS_VERSION
30631 .helpstring = NDR_SPOOLSS_HELPSTRING,
30632 .num_calls = 110,
30633 .calls = spoolss_calls,
30634 .endpoints = &spoolss_endpoints,
30635 .authservices = &spoolss_authservices