Remove erroneous 'presult = NULL' changes. Now presult only gets set
[Samba/fernandojvsilva.git] / librpc / gen_ndr / ndr_spoolss.c
blobfb452bcec381709ff133c7abc1b9ef85aa7b5def
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, 32, 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, 32, 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, 32, 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, 32, 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 = ndr->flags;
12890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12891 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12892 ndr->flags = _flags_save_string;
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->default_datatype));
12898 ndr->flags = _flags_save_string;
12901 uint32_t _flags_save_string_array = ndr->flags;
12902 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12903 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12904 ndr->flags = _flags_save_string_array;
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 = ndr->flags;
13030 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13031 if (r->monitor_name) {
13032 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
13033 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13035 ndr->flags = _flags_save_string;
13038 uint32_t _flags_save_string = ndr->flags;
13039 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13040 if (r->default_datatype) {
13041 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
13042 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13044 ndr->flags = _flags_save_string;
13047 uint32_t _flags_save_string_array = ndr->flags;
13048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13049 if (r->dependent_files) {
13050 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
13051 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13053 ndr->flags = _flags_save_string_array;
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_monitor_name;
13164 TALLOC_CTX *_mem_save_monitor_name_0;
13165 uint32_t _ptr_default_datatype;
13166 TALLOC_CTX *_mem_save_default_datatype_0;
13167 uint32_t _ptr_dependent_files;
13168 TALLOC_CTX *_mem_save_dependent_files_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 = ndr->flags;
13266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13267 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13268 if (_ptr_monitor_name) {
13269 NDR_PULL_ALLOC(ndr, r->monitor_name);
13270 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13271 } else {
13272 r->monitor_name = NULL;
13274 ndr->flags = _flags_save_string;
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_default_datatype));
13280 if (_ptr_default_datatype) {
13281 NDR_PULL_ALLOC(ndr, r->default_datatype);
13282 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13283 } else {
13284 r->default_datatype = NULL;
13286 ndr->flags = _flags_save_string;
13289 uint32_t _flags_save_string_array = ndr->flags;
13290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13291 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13292 if (_ptr_dependent_files) {
13293 NDR_PULL_ALLOC(ndr, r->dependent_files);
13294 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13295 } else {
13296 r->dependent_files = NULL;
13298 ndr->flags = _flags_save_string_array;
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 = ndr->flags;
13520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13521 if (r->monitor_name) {
13522 uint32_t _relative_save_offset;
13523 _relative_save_offset = ndr->offset;
13524 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13525 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13526 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13527 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13529 ndr->offset = _relative_save_offset;
13531 ndr->flags = _flags_save_string;
13534 uint32_t _flags_save_string = ndr->flags;
13535 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13536 if (r->default_datatype) {
13537 uint32_t _relative_save_offset;
13538 _relative_save_offset = ndr->offset;
13539 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13540 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13541 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13542 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13544 ndr->offset = _relative_save_offset;
13546 ndr->flags = _flags_save_string;
13549 uint32_t _flags_save_string_array = ndr->flags;
13550 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13551 if (r->dependent_files) {
13552 uint32_t _relative_save_offset;
13553 _relative_save_offset = ndr->offset;
13554 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13555 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13556 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13557 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13558 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13559 ndr->offset = _relative_save_offset;
13561 ndr->flags = _flags_save_string_array;
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, "monitor_name", r->monitor_name);
13759 ndr->depth++;
13760 if (r->monitor_name) {
13761 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13763 ndr->depth--;
13764 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13765 ndr->depth++;
13766 if (r->default_datatype) {
13767 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13769 ndr->depth--;
13770 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13771 ndr->depth++;
13772 if (r->dependent_files) {
13773 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
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_uint32(ndr, NDR_SCALARS, r->lang_id));
15625 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15627 if (ndr_flags & NDR_BUFFERS) {
15629 uint32_t _flags_save_string = ndr->flags;
15630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15631 if (r->form_name) {
15632 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15633 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15635 ndr->flags = _flags_save_string;
15638 uint32_t _flags_save_string = ndr->flags;
15639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15640 if (r->keyword) {
15641 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
15642 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
15644 ndr->flags = _flags_save_string;
15647 uint32_t _flags_save_string = ndr->flags;
15648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15649 if (r->mui_dll) {
15650 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
15651 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
15653 ndr->flags = _flags_save_string;
15656 uint32_t _flags_save_string = ndr->flags;
15657 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15658 if (r->display_name) {
15659 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
15660 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
15662 ndr->flags = _flags_save_string;
15665 return NDR_ERR_SUCCESS;
15668 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
15670 uint32_t _ptr_form_name;
15671 TALLOC_CTX *_mem_save_form_name_0;
15672 uint32_t _ptr_keyword;
15673 TALLOC_CTX *_mem_save_keyword_0;
15674 uint32_t _ptr_mui_dll;
15675 TALLOC_CTX *_mem_save_mui_dll_0;
15676 uint32_t _ptr_display_name;
15677 TALLOC_CTX *_mem_save_display_name_0;
15678 if (ndr_flags & NDR_SCALARS) {
15679 NDR_CHECK(ndr_pull_align(ndr, 5));
15680 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15682 uint32_t _flags_save_string = ndr->flags;
15683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15684 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15685 if (_ptr_form_name) {
15686 NDR_PULL_ALLOC(ndr, r->form_name);
15687 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15688 } else {
15689 r->form_name = NULL;
15691 ndr->flags = _flags_save_string;
15693 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15694 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15696 uint32_t _flags_save_string = ndr->flags;
15697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15699 if (_ptr_keyword) {
15700 NDR_PULL_ALLOC(ndr, r->keyword);
15701 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
15702 } else {
15703 r->keyword = NULL;
15705 ndr->flags = _flags_save_string;
15707 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15709 uint32_t _flags_save_string = ndr->flags;
15710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15712 if (_ptr_mui_dll) {
15713 NDR_PULL_ALLOC(ndr, r->mui_dll);
15714 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
15715 } else {
15716 r->mui_dll = NULL;
15718 ndr->flags = _flags_save_string;
15720 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15722 uint32_t _flags_save_string = ndr->flags;
15723 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15724 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15725 if (_ptr_display_name) {
15726 NDR_PULL_ALLOC(ndr, r->display_name);
15727 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
15728 } else {
15729 r->display_name = NULL;
15731 ndr->flags = _flags_save_string;
15733 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15734 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15736 if (ndr_flags & NDR_BUFFERS) {
15738 uint32_t _flags_save_string = ndr->flags;
15739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15740 if (r->form_name) {
15741 uint32_t _relative_save_offset;
15742 _relative_save_offset = ndr->offset;
15743 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15744 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15745 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15746 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15748 ndr->offset = _relative_save_offset;
15750 ndr->flags = _flags_save_string;
15753 uint32_t _flags_save_string = ndr->flags;
15754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15755 if (r->keyword) {
15756 uint32_t _relative_save_offset;
15757 _relative_save_offset = ndr->offset;
15758 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
15759 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15760 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15761 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
15762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15763 ndr->offset = _relative_save_offset;
15765 ndr->flags = _flags_save_string;
15768 uint32_t _flags_save_string = ndr->flags;
15769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15770 if (r->mui_dll) {
15771 uint32_t _relative_save_offset;
15772 _relative_save_offset = ndr->offset;
15773 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
15774 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15775 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15776 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
15777 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15778 ndr->offset = _relative_save_offset;
15780 ndr->flags = _flags_save_string;
15783 uint32_t _flags_save_string = ndr->flags;
15784 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15785 if (r->display_name) {
15786 uint32_t _relative_save_offset;
15787 _relative_save_offset = ndr->offset;
15788 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
15789 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15790 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15791 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
15792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15793 ndr->offset = _relative_save_offset;
15795 ndr->flags = _flags_save_string;
15798 return NDR_ERR_SUCCESS;
15801 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
15803 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
15804 ndr->depth++;
15805 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15806 ndr_print_ptr(ndr, "form_name", r->form_name);
15807 ndr->depth++;
15808 if (r->form_name) {
15809 ndr_print_string(ndr, "form_name", r->form_name);
15811 ndr->depth--;
15812 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15813 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15814 ndr_print_ptr(ndr, "keyword", r->keyword);
15815 ndr->depth++;
15816 if (r->keyword) {
15817 ndr_print_string(ndr, "keyword", r->keyword);
15819 ndr->depth--;
15820 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15821 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15822 ndr->depth++;
15823 if (r->mui_dll) {
15824 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15826 ndr->depth--;
15827 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15828 ndr_print_ptr(ndr, "display_name", r->display_name);
15829 ndr->depth++;
15830 if (r->display_name) {
15831 ndr_print_string(ndr, "display_name", r->display_name);
15833 ndr->depth--;
15834 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15835 ndr->depth--;
15838 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
15840 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
15843 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
15845 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15846 if (ndr_flags & NDR_SCALARS) {
15847 int level = ndr_push_get_switch_value(ndr, r);
15848 NDR_CHECK(ndr_push_union_align(ndr, 5));
15849 switch (level) {
15850 case 1: {
15851 NDR_CHECK(ndr_push_align(ndr, 5));
15852 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15853 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15854 break; }
15856 case 2: {
15857 NDR_CHECK(ndr_push_align(ndr, 5));
15858 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15859 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15860 break; }
15862 default: {
15863 break; }
15867 if (ndr_flags & NDR_BUFFERS) {
15868 int level = ndr_push_get_switch_value(ndr, r);
15869 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15870 switch (level) {
15871 case 1:
15872 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15873 break;
15875 case 2:
15876 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15877 break;
15879 default:
15880 break;
15884 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15885 return NDR_ERR_SUCCESS;
15888 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
15890 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15891 int level;
15892 level = ndr_pull_get_switch_value(ndr, r);
15893 if (ndr_flags & NDR_SCALARS) {
15894 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15895 switch (level) {
15896 case 1: {
15897 NDR_CHECK(ndr_pull_align(ndr, 5));
15898 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15899 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15900 break; }
15902 case 2: {
15903 NDR_CHECK(ndr_pull_align(ndr, 5));
15904 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15905 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15906 break; }
15908 default: {
15909 break; }
15913 if (ndr_flags & NDR_BUFFERS) {
15914 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15915 switch (level) {
15916 case 1:
15917 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15918 break;
15920 case 2:
15921 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15922 break;
15924 default:
15925 break;
15929 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15930 return NDR_ERR_SUCCESS;
15933 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
15935 int level;
15936 level = ndr_print_get_switch_value(ndr, r);
15937 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
15938 switch (level) {
15939 case 1:
15940 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
15941 break;
15943 case 2:
15944 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
15945 break;
15947 default:
15948 break;
15953 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15955 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
15958 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
15960 if (ndr_flags & NDR_SCALARS) {
15961 NDR_CHECK(ndr_push_align(ndr, 5));
15962 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15963 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15964 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15965 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15966 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15968 if (ndr_flags & NDR_BUFFERS) {
15969 if (r->form_name) {
15970 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15971 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15972 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15973 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15976 return NDR_ERR_SUCCESS;
15979 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
15981 uint32_t _ptr_form_name;
15982 TALLOC_CTX *_mem_save_form_name_0;
15983 if (ndr_flags & NDR_SCALARS) {
15984 NDR_CHECK(ndr_pull_align(ndr, 5));
15985 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15986 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15987 if (_ptr_form_name) {
15988 NDR_PULL_ALLOC(ndr, r->form_name);
15989 } else {
15990 r->form_name = NULL;
15992 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15993 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15994 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15996 if (ndr_flags & NDR_BUFFERS) {
15997 if (r->form_name) {
15998 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15999 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16000 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16001 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16002 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16003 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));
16005 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16006 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16007 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16010 return NDR_ERR_SUCCESS;
16013 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
16015 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
16016 ndr->depth++;
16017 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16018 ndr_print_ptr(ndr, "form_name", r->form_name);
16019 ndr->depth++;
16020 if (r->form_name) {
16021 ndr_print_string(ndr, "form_name", r->form_name);
16023 ndr->depth--;
16024 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16025 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16026 ndr->depth--;
16029 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
16031 if (ndr_flags & NDR_SCALARS) {
16032 NDR_CHECK(ndr_push_align(ndr, 5));
16033 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16034 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16035 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16036 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16037 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
16038 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16039 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
16040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16041 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
16042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
16043 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16045 if (ndr_flags & NDR_BUFFERS) {
16046 if (r->form_name) {
16047 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16048 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16049 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16050 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16052 if (r->keyword) {
16053 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16054 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16055 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16056 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
16058 if (r->mui_dll) {
16059 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16060 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16061 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16062 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16064 if (r->display_name) {
16065 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16066 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16067 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16068 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16071 return NDR_ERR_SUCCESS;
16074 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
16076 uint32_t _ptr_form_name;
16077 TALLOC_CTX *_mem_save_form_name_0;
16078 uint32_t _ptr_keyword;
16079 TALLOC_CTX *_mem_save_keyword_0;
16080 uint32_t _ptr_mui_dll;
16081 TALLOC_CTX *_mem_save_mui_dll_0;
16082 uint32_t _ptr_display_name;
16083 TALLOC_CTX *_mem_save_display_name_0;
16084 if (ndr_flags & NDR_SCALARS) {
16085 NDR_CHECK(ndr_pull_align(ndr, 5));
16086 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16087 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16088 if (_ptr_form_name) {
16089 NDR_PULL_ALLOC(ndr, r->form_name);
16090 } else {
16091 r->form_name = NULL;
16093 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16094 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16095 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16096 if (_ptr_keyword) {
16097 NDR_PULL_ALLOC(ndr, r->keyword);
16098 } else {
16099 r->keyword = NULL;
16101 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16102 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16103 if (_ptr_mui_dll) {
16104 NDR_PULL_ALLOC(ndr, r->mui_dll);
16105 } else {
16106 r->mui_dll = NULL;
16108 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16110 if (_ptr_display_name) {
16111 NDR_PULL_ALLOC(ndr, r->display_name);
16112 } else {
16113 r->display_name = NULL;
16115 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16116 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16118 if (ndr_flags & NDR_BUFFERS) {
16119 if (r->form_name) {
16120 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16121 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16122 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16123 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16124 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16125 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));
16127 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16128 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16131 if (r->keyword) {
16132 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16133 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16134 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
16135 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
16136 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
16137 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));
16139 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
16140 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
16141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16143 if (r->mui_dll) {
16144 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16145 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16146 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
16147 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
16148 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
16149 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->mui_dll), ndr_get_array_length(ndr, &r->mui_dll));
16151 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
16152 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
16153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16155 if (r->display_name) {
16156 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16157 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16158 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
16159 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
16160 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
16161 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));
16163 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
16164 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
16165 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16168 return NDR_ERR_SUCCESS;
16171 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
16173 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
16174 ndr->depth++;
16175 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16176 ndr_print_ptr(ndr, "form_name", r->form_name);
16177 ndr->depth++;
16178 if (r->form_name) {
16179 ndr_print_string(ndr, "form_name", r->form_name);
16181 ndr->depth--;
16182 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16183 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16184 ndr_print_ptr(ndr, "keyword", r->keyword);
16185 ndr->depth++;
16186 if (r->keyword) {
16187 ndr_print_string(ndr, "keyword", r->keyword);
16189 ndr->depth--;
16190 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16191 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16192 ndr->depth++;
16193 if (r->mui_dll) {
16194 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16196 ndr->depth--;
16197 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16198 ndr_print_ptr(ndr, "display_name", r->display_name);
16199 ndr->depth++;
16200 if (r->display_name) {
16201 ndr_print_string(ndr, "display_name", r->display_name);
16203 ndr->depth--;
16204 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16205 ndr->depth--;
16208 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
16210 if (ndr_flags & NDR_SCALARS) {
16211 int level = ndr_push_get_switch_value(ndr, r);
16212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
16213 NDR_CHECK(ndr_push_union_align(ndr, 5));
16214 switch (level) {
16215 case 1: {
16216 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
16217 break; }
16219 case 2: {
16220 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
16221 break; }
16223 default:
16224 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16227 if (ndr_flags & NDR_BUFFERS) {
16228 int level = ndr_push_get_switch_value(ndr, r);
16229 switch (level) {
16230 case 1:
16231 if (r->info1) {
16232 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16234 break;
16236 case 2:
16237 if (r->info2) {
16238 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16240 break;
16242 default:
16243 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16246 return NDR_ERR_SUCCESS;
16249 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
16251 int level;
16252 uint32_t _level;
16253 TALLOC_CTX *_mem_save_info1_0;
16254 TALLOC_CTX *_mem_save_info2_0;
16255 level = ndr_pull_get_switch_value(ndr, r);
16256 if (ndr_flags & NDR_SCALARS) {
16257 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16258 if (_level != level) {
16259 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
16261 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16262 switch (level) {
16263 case 1: {
16264 uint32_t _ptr_info1;
16265 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16266 if (_ptr_info1) {
16267 NDR_PULL_ALLOC(ndr, r->info1);
16268 } else {
16269 r->info1 = NULL;
16271 break; }
16273 case 2: {
16274 uint32_t _ptr_info2;
16275 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
16276 if (_ptr_info2) {
16277 NDR_PULL_ALLOC(ndr, r->info2);
16278 } else {
16279 r->info2 = NULL;
16281 break; }
16283 default:
16284 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16287 if (ndr_flags & NDR_BUFFERS) {
16288 switch (level) {
16289 case 1:
16290 if (r->info1) {
16291 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
16292 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
16293 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
16296 break;
16298 case 2:
16299 if (r->info2) {
16300 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
16301 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
16302 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16303 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
16305 break;
16307 default:
16308 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16311 return NDR_ERR_SUCCESS;
16314 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
16316 int level;
16317 level = ndr_print_get_switch_value(ndr, r);
16318 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
16319 switch (level) {
16320 case 1:
16321 ndr_print_ptr(ndr, "info1", r->info1);
16322 ndr->depth++;
16323 if (r->info1) {
16324 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
16326 ndr->depth--;
16327 break;
16329 case 2:
16330 ndr_print_ptr(ndr, "info2", r->info2);
16331 ndr->depth++;
16332 if (r->info2) {
16333 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
16335 ndr->depth--;
16336 break;
16338 default:
16339 ndr_print_bad_level(ndr, name, level);
16343 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
16345 if (ndr_flags & NDR_SCALARS) {
16346 NDR_CHECK(ndr_push_align(ndr, 5));
16348 uint32_t _flags_save_string = ndr->flags;
16349 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16350 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16351 ndr->flags = _flags_save_string;
16353 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16355 if (ndr_flags & NDR_BUFFERS) {
16357 uint32_t _flags_save_string = ndr->flags;
16358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16359 if (r->port_name) {
16360 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16361 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16363 ndr->flags = _flags_save_string;
16366 return NDR_ERR_SUCCESS;
16369 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
16371 uint32_t _ptr_port_name;
16372 TALLOC_CTX *_mem_save_port_name_0;
16373 if (ndr_flags & NDR_SCALARS) {
16374 NDR_CHECK(ndr_pull_align(ndr, 5));
16376 uint32_t _flags_save_string = ndr->flags;
16377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16378 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16379 if (_ptr_port_name) {
16380 NDR_PULL_ALLOC(ndr, r->port_name);
16381 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16382 } else {
16383 r->port_name = NULL;
16385 ndr->flags = _flags_save_string;
16387 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16389 if (ndr_flags & NDR_BUFFERS) {
16391 uint32_t _flags_save_string = ndr->flags;
16392 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16393 if (r->port_name) {
16394 uint32_t _relative_save_offset;
16395 _relative_save_offset = ndr->offset;
16396 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16397 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16398 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16399 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16401 ndr->offset = _relative_save_offset;
16403 ndr->flags = _flags_save_string;
16406 return NDR_ERR_SUCCESS;
16409 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
16411 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
16412 ndr->depth++;
16413 ndr_print_ptr(ndr, "port_name", r->port_name);
16414 ndr->depth++;
16415 if (r->port_name) {
16416 ndr_print_string(ndr, "port_name", r->port_name);
16418 ndr->depth--;
16419 ndr->depth--;
16422 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16424 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
16427 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16430 return NDR_ERR_SUCCESS;
16433 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16435 uint32_t v;
16436 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16437 *r = v;
16438 return NDR_ERR_SUCCESS;
16441 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
16443 ndr_print_uint32(ndr, name, r);
16444 ndr->depth++;
16445 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
16446 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
16447 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
16448 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
16449 ndr->depth--;
16452 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
16454 if (ndr_flags & NDR_SCALARS) {
16455 NDR_CHECK(ndr_push_align(ndr, 5));
16457 uint32_t _flags_save_string = ndr->flags;
16458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16459 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16460 ndr->flags = _flags_save_string;
16463 uint32_t _flags_save_string = ndr->flags;
16464 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16465 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16466 ndr->flags = _flags_save_string;
16469 uint32_t _flags_save_string = ndr->flags;
16470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16471 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
16472 ndr->flags = _flags_save_string;
16474 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
16475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
16476 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16478 if (ndr_flags & NDR_BUFFERS) {
16480 uint32_t _flags_save_string = ndr->flags;
16481 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16482 if (r->port_name) {
16483 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16484 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16486 ndr->flags = _flags_save_string;
16489 uint32_t _flags_save_string = ndr->flags;
16490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16491 if (r->monitor_name) {
16492 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16493 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16495 ndr->flags = _flags_save_string;
16498 uint32_t _flags_save_string = ndr->flags;
16499 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16500 if (r->description) {
16501 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
16502 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
16504 ndr->flags = _flags_save_string;
16507 return NDR_ERR_SUCCESS;
16510 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
16512 uint32_t _ptr_port_name;
16513 TALLOC_CTX *_mem_save_port_name_0;
16514 uint32_t _ptr_monitor_name;
16515 TALLOC_CTX *_mem_save_monitor_name_0;
16516 uint32_t _ptr_description;
16517 TALLOC_CTX *_mem_save_description_0;
16518 if (ndr_flags & NDR_SCALARS) {
16519 NDR_CHECK(ndr_pull_align(ndr, 5));
16521 uint32_t _flags_save_string = ndr->flags;
16522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16523 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16524 if (_ptr_port_name) {
16525 NDR_PULL_ALLOC(ndr, r->port_name);
16526 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16527 } else {
16528 r->port_name = NULL;
16530 ndr->flags = _flags_save_string;
16533 uint32_t _flags_save_string = ndr->flags;
16534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16535 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16536 if (_ptr_monitor_name) {
16537 NDR_PULL_ALLOC(ndr, r->monitor_name);
16538 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16539 } else {
16540 r->monitor_name = NULL;
16542 ndr->flags = _flags_save_string;
16545 uint32_t _flags_save_string = ndr->flags;
16546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
16548 if (_ptr_description) {
16549 NDR_PULL_ALLOC(ndr, r->description);
16550 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
16551 } else {
16552 r->description = NULL;
16554 ndr->flags = _flags_save_string;
16556 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
16557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
16558 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16560 if (ndr_flags & NDR_BUFFERS) {
16562 uint32_t _flags_save_string = ndr->flags;
16563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16564 if (r->port_name) {
16565 uint32_t _relative_save_offset;
16566 _relative_save_offset = ndr->offset;
16567 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16568 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16569 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16570 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16571 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16572 ndr->offset = _relative_save_offset;
16574 ndr->flags = _flags_save_string;
16577 uint32_t _flags_save_string = ndr->flags;
16578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16579 if (r->monitor_name) {
16580 uint32_t _relative_save_offset;
16581 _relative_save_offset = ndr->offset;
16582 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16583 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16584 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16585 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16587 ndr->offset = _relative_save_offset;
16589 ndr->flags = _flags_save_string;
16592 uint32_t _flags_save_string = ndr->flags;
16593 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16594 if (r->description) {
16595 uint32_t _relative_save_offset;
16596 _relative_save_offset = ndr->offset;
16597 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
16598 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
16599 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
16600 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
16601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
16602 ndr->offset = _relative_save_offset;
16604 ndr->flags = _flags_save_string;
16607 return NDR_ERR_SUCCESS;
16610 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
16612 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
16613 ndr->depth++;
16614 ndr_print_ptr(ndr, "port_name", r->port_name);
16615 ndr->depth++;
16616 if (r->port_name) {
16617 ndr_print_string(ndr, "port_name", r->port_name);
16619 ndr->depth--;
16620 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16621 ndr->depth++;
16622 if (r->monitor_name) {
16623 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16625 ndr->depth--;
16626 ndr_print_ptr(ndr, "description", r->description);
16627 ndr->depth++;
16628 if (r->description) {
16629 ndr_print_string(ndr, "description", r->description);
16631 ndr->depth--;
16632 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
16633 ndr_print_uint32(ndr, "reserved", r->reserved);
16634 ndr->depth--;
16637 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16639 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
16642 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
16644 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
16645 return NDR_ERR_SUCCESS;
16648 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
16650 uint32_t v;
16651 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
16652 *r = v;
16653 return NDR_ERR_SUCCESS;
16656 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
16658 const char *val = NULL;
16660 switch (r) {
16661 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
16662 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
16663 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
16664 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
16665 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16666 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
16667 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
16668 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
16669 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
16670 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
16671 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
16672 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
16673 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
16675 ndr_print_enum(ndr, name, "ENUM", val, r);
16678 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
16680 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
16681 return NDR_ERR_SUCCESS;
16684 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
16686 uint32_t v;
16687 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
16688 *r = v;
16689 return NDR_ERR_SUCCESS;
16692 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
16694 const char *val = NULL;
16696 switch (r) {
16697 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
16698 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
16699 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
16701 ndr_print_enum(ndr, name, "ENUM", val, r);
16704 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
16706 if (ndr_flags & NDR_SCALARS) {
16707 NDR_CHECK(ndr_push_align(ndr, 5));
16708 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
16710 uint32_t _flags_save_string = ndr->flags;
16711 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16712 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
16713 ndr->flags = _flags_save_string;
16715 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
16716 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16718 if (ndr_flags & NDR_BUFFERS) {
16720 uint32_t _flags_save_string = ndr->flags;
16721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16722 if (r->status_string) {
16723 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
16724 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
16726 ndr->flags = _flags_save_string;
16729 return NDR_ERR_SUCCESS;
16732 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
16734 uint32_t _ptr_status_string;
16735 TALLOC_CTX *_mem_save_status_string_0;
16736 if (ndr_flags & NDR_SCALARS) {
16737 NDR_CHECK(ndr_pull_align(ndr, 5));
16738 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
16740 uint32_t _flags_save_string = ndr->flags;
16741 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16742 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
16743 if (_ptr_status_string) {
16744 NDR_PULL_ALLOC(ndr, r->status_string);
16745 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
16746 } else {
16747 r->status_string = NULL;
16749 ndr->flags = _flags_save_string;
16751 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
16752 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16754 if (ndr_flags & NDR_BUFFERS) {
16756 uint32_t _flags_save_string = ndr->flags;
16757 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16758 if (r->status_string) {
16759 uint32_t _relative_save_offset;
16760 _relative_save_offset = ndr->offset;
16761 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
16762 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
16763 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
16764 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
16765 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
16766 ndr->offset = _relative_save_offset;
16768 ndr->flags = _flags_save_string;
16771 return NDR_ERR_SUCCESS;
16774 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
16776 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
16777 ndr->depth++;
16778 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
16779 ndr_print_ptr(ndr, "status_string", r->status_string);
16780 ndr->depth++;
16781 if (r->status_string) {
16782 ndr_print_string(ndr, "status_string", r->status_string);
16784 ndr->depth--;
16785 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
16786 ndr->depth--;
16789 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
16791 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
16794 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
16796 if (ndr_flags & NDR_SCALARS) {
16797 NDR_CHECK(ndr_push_align(ndr, 5));
16799 uint32_t _flags_save_string = ndr->flags;
16800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16801 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16802 ndr->flags = _flags_save_string;
16804 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
16805 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16807 if (ndr_flags & NDR_BUFFERS) {
16809 uint32_t _flags_save_string = ndr->flags;
16810 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16811 if (r->port_name) {
16812 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16813 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16815 ndr->flags = _flags_save_string;
16818 return NDR_ERR_SUCCESS;
16821 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
16823 uint32_t _ptr_port_name;
16824 TALLOC_CTX *_mem_save_port_name_0;
16825 if (ndr_flags & NDR_SCALARS) {
16826 NDR_CHECK(ndr_pull_align(ndr, 5));
16828 uint32_t _flags_save_string = ndr->flags;
16829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16830 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16831 if (_ptr_port_name) {
16832 NDR_PULL_ALLOC(ndr, r->port_name);
16833 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16834 } else {
16835 r->port_name = NULL;
16837 ndr->flags = _flags_save_string;
16839 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
16840 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16842 if (ndr_flags & NDR_BUFFERS) {
16844 uint32_t _flags_save_string = ndr->flags;
16845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16846 if (r->port_name) {
16847 uint32_t _relative_save_offset;
16848 _relative_save_offset = ndr->offset;
16849 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16850 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16851 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16852 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16853 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16854 ndr->offset = _relative_save_offset;
16856 ndr->flags = _flags_save_string;
16859 return NDR_ERR_SUCCESS;
16862 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
16864 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
16865 ndr->depth++;
16866 ndr_print_ptr(ndr, "port_name", r->port_name);
16867 ndr->depth++;
16868 if (r->port_name) {
16869 ndr_print_string(ndr, "port_name", r->port_name);
16871 ndr->depth--;
16872 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
16873 ndr->depth--;
16876 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
16878 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
16881 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
16883 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16884 if (ndr_flags & NDR_SCALARS) {
16885 int level = ndr_push_get_switch_value(ndr, r);
16886 NDR_CHECK(ndr_push_union_align(ndr, 5));
16887 switch (level) {
16888 case 1: {
16889 NDR_CHECK(ndr_push_align(ndr, 5));
16890 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16891 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16892 break; }
16894 case 2: {
16895 NDR_CHECK(ndr_push_align(ndr, 5));
16896 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16897 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16898 break; }
16900 case 3: {
16901 NDR_CHECK(ndr_push_align(ndr, 5));
16902 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16903 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16904 break; }
16906 case 0xff: {
16907 NDR_CHECK(ndr_push_align(ndr, 5));
16908 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16909 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16910 break; }
16912 default: {
16913 break; }
16917 if (ndr_flags & NDR_BUFFERS) {
16918 int level = ndr_push_get_switch_value(ndr, r);
16919 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16920 switch (level) {
16921 case 1:
16922 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16923 break;
16925 case 2:
16926 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16927 break;
16929 case 3:
16930 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16931 break;
16933 case 0xff:
16934 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16935 break;
16937 default:
16938 break;
16942 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16943 return NDR_ERR_SUCCESS;
16946 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
16948 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16949 int level;
16950 level = ndr_pull_get_switch_value(ndr, r);
16951 if (ndr_flags & NDR_SCALARS) {
16952 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16953 switch (level) {
16954 case 1: {
16955 NDR_CHECK(ndr_pull_align(ndr, 5));
16956 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16957 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16958 break; }
16960 case 2: {
16961 NDR_CHECK(ndr_pull_align(ndr, 5));
16962 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16963 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16964 break; }
16966 case 3: {
16967 NDR_CHECK(ndr_pull_align(ndr, 5));
16968 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16969 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16970 break; }
16972 case 0xff: {
16973 NDR_CHECK(ndr_pull_align(ndr, 5));
16974 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16975 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16976 break; }
16978 default: {
16979 break; }
16983 if (ndr_flags & NDR_BUFFERS) {
16984 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16985 switch (level) {
16986 case 1:
16987 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16988 break;
16990 case 2:
16991 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16992 break;
16994 case 3:
16995 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16996 break;
16998 case 0xff:
16999 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17000 break;
17002 default:
17003 break;
17007 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17008 return NDR_ERR_SUCCESS;
17011 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
17013 int level;
17014 level = ndr_print_get_switch_value(ndr, r);
17015 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
17016 switch (level) {
17017 case 1:
17018 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
17019 break;
17021 case 2:
17022 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
17023 break;
17025 case 3:
17026 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
17027 break;
17029 case 0xff:
17030 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
17031 break;
17033 default:
17034 break;
17039 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
17041 if (ndr_flags & NDR_SCALARS) {
17042 NDR_CHECK(ndr_push_align(ndr, 5));
17044 uint32_t _flags_save_string = ndr->flags;
17045 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17046 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17047 ndr->flags = _flags_save_string;
17049 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17051 if (ndr_flags & NDR_BUFFERS) {
17053 uint32_t _flags_save_string = ndr->flags;
17054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17055 if (r->monitor_name) {
17056 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17057 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17059 ndr->flags = _flags_save_string;
17062 return NDR_ERR_SUCCESS;
17065 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
17067 uint32_t _ptr_monitor_name;
17068 TALLOC_CTX *_mem_save_monitor_name_0;
17069 if (ndr_flags & NDR_SCALARS) {
17070 NDR_CHECK(ndr_pull_align(ndr, 5));
17072 uint32_t _flags_save_string = ndr->flags;
17073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17074 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17075 if (_ptr_monitor_name) {
17076 NDR_PULL_ALLOC(ndr, r->monitor_name);
17077 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17078 } else {
17079 r->monitor_name = NULL;
17081 ndr->flags = _flags_save_string;
17083 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17085 if (ndr_flags & NDR_BUFFERS) {
17087 uint32_t _flags_save_string = ndr->flags;
17088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17089 if (r->monitor_name) {
17090 uint32_t _relative_save_offset;
17091 _relative_save_offset = ndr->offset;
17092 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17093 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17094 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17095 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17097 ndr->offset = _relative_save_offset;
17099 ndr->flags = _flags_save_string;
17102 return NDR_ERR_SUCCESS;
17105 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
17107 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
17108 ndr->depth++;
17109 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17110 ndr->depth++;
17111 if (r->monitor_name) {
17112 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17114 ndr->depth--;
17115 ndr->depth--;
17118 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17120 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
17123 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
17125 if (ndr_flags & NDR_SCALARS) {
17126 NDR_CHECK(ndr_push_align(ndr, 5));
17128 uint32_t _flags_save_string = ndr->flags;
17129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17130 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17131 ndr->flags = _flags_save_string;
17134 uint32_t _flags_save_string = ndr->flags;
17135 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17136 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
17137 ndr->flags = _flags_save_string;
17140 uint32_t _flags_save_string = ndr->flags;
17141 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17142 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
17143 ndr->flags = _flags_save_string;
17145 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17147 if (ndr_flags & NDR_BUFFERS) {
17149 uint32_t _flags_save_string = ndr->flags;
17150 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17151 if (r->monitor_name) {
17152 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17153 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17155 ndr->flags = _flags_save_string;
17158 uint32_t _flags_save_string = ndr->flags;
17159 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17160 if (r->environment) {
17161 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
17162 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
17164 ndr->flags = _flags_save_string;
17167 uint32_t _flags_save_string = ndr->flags;
17168 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17169 if (r->dll_name) {
17170 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
17171 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
17173 ndr->flags = _flags_save_string;
17176 return NDR_ERR_SUCCESS;
17179 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
17181 uint32_t _ptr_monitor_name;
17182 TALLOC_CTX *_mem_save_monitor_name_0;
17183 uint32_t _ptr_environment;
17184 TALLOC_CTX *_mem_save_environment_0;
17185 uint32_t _ptr_dll_name;
17186 TALLOC_CTX *_mem_save_dll_name_0;
17187 if (ndr_flags & NDR_SCALARS) {
17188 NDR_CHECK(ndr_pull_align(ndr, 5));
17190 uint32_t _flags_save_string = ndr->flags;
17191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17193 if (_ptr_monitor_name) {
17194 NDR_PULL_ALLOC(ndr, r->monitor_name);
17195 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17196 } else {
17197 r->monitor_name = NULL;
17199 ndr->flags = _flags_save_string;
17202 uint32_t _flags_save_string = ndr->flags;
17203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17205 if (_ptr_environment) {
17206 NDR_PULL_ALLOC(ndr, r->environment);
17207 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
17208 } else {
17209 r->environment = NULL;
17211 ndr->flags = _flags_save_string;
17214 uint32_t _flags_save_string = ndr->flags;
17215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17216 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
17217 if (_ptr_dll_name) {
17218 NDR_PULL_ALLOC(ndr, r->dll_name);
17219 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
17220 } else {
17221 r->dll_name = NULL;
17223 ndr->flags = _flags_save_string;
17225 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17227 if (ndr_flags & NDR_BUFFERS) {
17229 uint32_t _flags_save_string = ndr->flags;
17230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17231 if (r->monitor_name) {
17232 uint32_t _relative_save_offset;
17233 _relative_save_offset = ndr->offset;
17234 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17235 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17236 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17237 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17239 ndr->offset = _relative_save_offset;
17241 ndr->flags = _flags_save_string;
17244 uint32_t _flags_save_string = ndr->flags;
17245 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17246 if (r->environment) {
17247 uint32_t _relative_save_offset;
17248 _relative_save_offset = ndr->offset;
17249 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
17250 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
17251 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
17252 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
17253 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
17254 ndr->offset = _relative_save_offset;
17256 ndr->flags = _flags_save_string;
17259 uint32_t _flags_save_string = ndr->flags;
17260 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17261 if (r->dll_name) {
17262 uint32_t _relative_save_offset;
17263 _relative_save_offset = ndr->offset;
17264 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
17265 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17266 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
17267 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
17268 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
17269 ndr->offset = _relative_save_offset;
17271 ndr->flags = _flags_save_string;
17274 return NDR_ERR_SUCCESS;
17277 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
17279 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
17280 ndr->depth++;
17281 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17282 ndr->depth++;
17283 if (r->monitor_name) {
17284 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17286 ndr->depth--;
17287 ndr_print_ptr(ndr, "environment", r->environment);
17288 ndr->depth++;
17289 if (r->environment) {
17290 ndr_print_string(ndr, "environment", r->environment);
17292 ndr->depth--;
17293 ndr_print_ptr(ndr, "dll_name", r->dll_name);
17294 ndr->depth++;
17295 if (r->dll_name) {
17296 ndr_print_string(ndr, "dll_name", r->dll_name);
17298 ndr->depth--;
17299 ndr->depth--;
17302 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17304 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
17307 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
17309 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17310 if (ndr_flags & NDR_SCALARS) {
17311 int level = ndr_push_get_switch_value(ndr, r);
17312 NDR_CHECK(ndr_push_union_align(ndr, 5));
17313 switch (level) {
17314 case 1: {
17315 NDR_CHECK(ndr_push_align(ndr, 5));
17316 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17317 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17318 break; }
17320 case 2: {
17321 NDR_CHECK(ndr_push_align(ndr, 5));
17322 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17323 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17324 break; }
17326 default: {
17327 break; }
17331 if (ndr_flags & NDR_BUFFERS) {
17332 int level = ndr_push_get_switch_value(ndr, r);
17333 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17334 switch (level) {
17335 case 1:
17336 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17337 break;
17339 case 2:
17340 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17341 break;
17343 default:
17344 break;
17348 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17349 return NDR_ERR_SUCCESS;
17352 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
17354 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17355 int level;
17356 level = ndr_pull_get_switch_value(ndr, r);
17357 if (ndr_flags & NDR_SCALARS) {
17358 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17359 switch (level) {
17360 case 1: {
17361 NDR_CHECK(ndr_pull_align(ndr, 5));
17362 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17363 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17364 break; }
17366 case 2: {
17367 NDR_CHECK(ndr_pull_align(ndr, 5));
17368 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17369 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17370 break; }
17372 default: {
17373 break; }
17377 if (ndr_flags & NDR_BUFFERS) {
17378 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17379 switch (level) {
17380 case 1:
17381 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17382 break;
17384 case 2:
17385 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17386 break;
17388 default:
17389 break;
17393 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17394 return NDR_ERR_SUCCESS;
17397 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
17399 int level;
17400 level = ndr_print_get_switch_value(ndr, r);
17401 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
17402 switch (level) {
17403 case 1:
17404 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
17405 break;
17407 case 2:
17408 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
17409 break;
17411 default:
17412 break;
17417 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
17419 if (ndr_flags & NDR_SCALARS) {
17420 NDR_CHECK(ndr_push_align(ndr, 5));
17422 uint32_t _flags_save_string = ndr->flags;
17423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17424 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
17425 ndr->flags = _flags_save_string;
17427 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17429 if (ndr_flags & NDR_BUFFERS) {
17431 uint32_t _flags_save_string = ndr->flags;
17432 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17433 if (r->name_array) {
17434 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name_array));
17435 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
17437 ndr->flags = _flags_save_string;
17440 return NDR_ERR_SUCCESS;
17443 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
17445 uint32_t _ptr_name_array;
17446 TALLOC_CTX *_mem_save_name_array_0;
17447 if (ndr_flags & NDR_SCALARS) {
17448 NDR_CHECK(ndr_pull_align(ndr, 5));
17450 uint32_t _flags_save_string = ndr->flags;
17451 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17452 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
17453 if (_ptr_name_array) {
17454 NDR_PULL_ALLOC(ndr, r->name_array);
17455 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
17456 } else {
17457 r->name_array = NULL;
17459 ndr->flags = _flags_save_string;
17461 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17463 if (ndr_flags & NDR_BUFFERS) {
17465 uint32_t _flags_save_string = ndr->flags;
17466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17467 if (r->name_array) {
17468 uint32_t _relative_save_offset;
17469 _relative_save_offset = ndr->offset;
17470 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
17471 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
17472 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
17473 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
17474 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
17475 ndr->offset = _relative_save_offset;
17477 ndr->flags = _flags_save_string;
17480 return NDR_ERR_SUCCESS;
17483 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
17485 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
17486 ndr->depth++;
17487 ndr_print_ptr(ndr, "name_array", r->name_array);
17488 ndr->depth++;
17489 if (r->name_array) {
17490 ndr_print_string(ndr, "name_array", r->name_array);
17492 ndr->depth--;
17493 ndr->depth--;
17496 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17498 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
17501 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
17503 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17504 if (ndr_flags & NDR_SCALARS) {
17505 int level = ndr_push_get_switch_value(ndr, r);
17506 NDR_CHECK(ndr_push_union_align(ndr, 5));
17507 switch (level) {
17508 case 1: {
17509 NDR_CHECK(ndr_push_align(ndr, 5));
17510 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17511 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17512 break; }
17514 default: {
17515 break; }
17519 if (ndr_flags & NDR_BUFFERS) {
17520 int level = ndr_push_get_switch_value(ndr, r);
17521 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17522 switch (level) {
17523 case 1:
17524 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17525 break;
17527 default:
17528 break;
17532 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17533 return NDR_ERR_SUCCESS;
17536 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
17538 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17539 int level;
17540 level = ndr_pull_get_switch_value(ndr, r);
17541 if (ndr_flags & NDR_SCALARS) {
17542 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17543 switch (level) {
17544 case 1: {
17545 NDR_CHECK(ndr_pull_align(ndr, 5));
17546 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17547 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17548 break; }
17550 default: {
17551 break; }
17555 if (ndr_flags & NDR_BUFFERS) {
17556 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17557 switch (level) {
17558 case 1:
17559 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17560 break;
17562 default:
17563 break;
17567 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17568 return NDR_ERR_SUCCESS;
17571 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
17573 int level;
17574 level = ndr_print_get_switch_value(ndr, r);
17575 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
17576 switch (level) {
17577 case 1:
17578 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
17579 break;
17581 default:
17582 break;
17587 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17590 return NDR_ERR_SUCCESS;
17593 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17595 uint32_t v;
17596 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17597 *r = v;
17598 return NDR_ERR_SUCCESS;
17601 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17603 ndr_print_uint32(ndr, name, r);
17604 ndr->depth++;
17605 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
17606 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
17607 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
17608 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
17609 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
17610 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
17611 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
17612 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
17613 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
17614 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
17615 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
17616 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
17617 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
17618 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
17619 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
17620 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
17621 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
17622 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
17623 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
17624 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
17625 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
17626 ndr->depth--;
17629 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
17631 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
17632 return NDR_ERR_SUCCESS;
17635 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
17637 uint16_t v;
17638 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
17639 *r = v;
17640 return NDR_ERR_SUCCESS;
17643 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
17645 const char *val = NULL;
17647 switch (r) {
17648 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
17649 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
17650 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
17651 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
17652 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
17653 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
17654 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17655 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
17656 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
17657 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
17658 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
17659 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
17660 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17661 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
17662 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
17663 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
17664 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
17665 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
17666 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
17667 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
17668 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
17669 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
17670 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
17671 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
17673 ndr_print_enum(ndr, name, "ENUM", val, r);
17676 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
17678 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
17679 return NDR_ERR_SUCCESS;
17682 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
17684 uint16_t v;
17685 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
17686 *r = v;
17687 return NDR_ERR_SUCCESS;
17690 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
17692 const char *val = NULL;
17694 switch (r) {
17695 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
17696 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
17697 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
17698 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
17699 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
17700 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
17701 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
17702 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
17703 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
17704 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17705 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
17706 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
17707 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17708 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
17709 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
17710 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
17711 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
17712 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
17713 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
17714 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
17715 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
17716 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
17717 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
17718 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
17719 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
17720 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
17721 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
17722 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
17724 ndr_print_enum(ndr, name, "ENUM", val, r);
17727 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
17729 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
17730 return NDR_ERR_SUCCESS;
17733 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
17735 uint16_t v;
17736 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
17737 *r = v;
17738 return NDR_ERR_SUCCESS;
17741 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
17743 const char *val = NULL;
17745 switch (r) {
17746 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
17747 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
17749 ndr_print_enum(ndr, name, "ENUM", val, r);
17752 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
17754 if (ndr_flags & NDR_SCALARS) {
17755 int level = ndr_push_get_switch_value(ndr, r);
17756 NDR_CHECK(ndr_push_union_align(ndr, 2));
17757 switch (level) {
17758 case PRINTER_NOTIFY_TYPE: {
17759 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17760 break; }
17762 case JOB_NOTIFY_TYPE: {
17763 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17764 break; }
17766 default: {
17767 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17768 break; }
17772 if (ndr_flags & NDR_BUFFERS) {
17773 int level = ndr_push_get_switch_value(ndr, r);
17774 switch (level) {
17775 case PRINTER_NOTIFY_TYPE:
17776 break;
17778 case JOB_NOTIFY_TYPE:
17779 break;
17781 default:
17782 break;
17786 return NDR_ERR_SUCCESS;
17789 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
17791 int level;
17792 level = ndr_pull_get_switch_value(ndr, r);
17793 if (ndr_flags & NDR_SCALARS) {
17794 NDR_CHECK(ndr_pull_union_align(ndr, 2));
17795 switch (level) {
17796 case PRINTER_NOTIFY_TYPE: {
17797 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17798 break; }
17800 case JOB_NOTIFY_TYPE: {
17801 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17802 break; }
17804 default: {
17805 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17806 break; }
17810 if (ndr_flags & NDR_BUFFERS) {
17811 switch (level) {
17812 case PRINTER_NOTIFY_TYPE:
17813 break;
17815 case JOB_NOTIFY_TYPE:
17816 break;
17818 default:
17819 break;
17823 return NDR_ERR_SUCCESS;
17826 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
17828 uint32_t cntr_fields_1;
17829 if (ndr_flags & NDR_SCALARS) {
17830 NDR_CHECK(ndr_push_align(ndr, 5));
17831 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17832 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
17833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
17834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
17835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17836 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
17837 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17839 if (ndr_flags & NDR_BUFFERS) {
17840 if (r->fields) {
17841 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
17842 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17843 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
17844 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17848 return NDR_ERR_SUCCESS;
17851 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
17853 uint32_t _ptr_fields;
17854 uint32_t cntr_fields_1;
17855 TALLOC_CTX *_mem_save_fields_0;
17856 TALLOC_CTX *_mem_save_fields_1;
17857 if (ndr_flags & NDR_SCALARS) {
17858 NDR_CHECK(ndr_pull_align(ndr, 5));
17859 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17860 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
17861 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
17862 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
17863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
17865 if (_ptr_fields) {
17866 NDR_PULL_ALLOC(ndr, r->fields);
17867 } else {
17868 r->fields = NULL;
17870 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17872 if (ndr_flags & NDR_BUFFERS) {
17873 if (r->fields) {
17874 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
17875 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17876 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
17877 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
17878 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
17879 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17880 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17881 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
17882 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
17885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
17887 if (r->fields) {
17888 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
17891 return NDR_ERR_SUCCESS;
17894 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
17896 uint32_t cntr_fields_1;
17897 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
17898 ndr->depth++;
17899 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17900 ndr_print_uint16(ndr, "u1", r->u1);
17901 ndr_print_uint32(ndr, "u2", r->u2);
17902 ndr_print_uint32(ndr, "u3", r->u3);
17903 ndr_print_uint32(ndr, "count", r->count);
17904 ndr_print_ptr(ndr, "fields", r->fields);
17905 ndr->depth++;
17906 if (r->fields) {
17907 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
17908 ndr->depth++;
17909 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
17910 char *idx_1=NULL;
17911 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
17912 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
17913 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
17914 free(idx_1);
17917 ndr->depth--;
17919 ndr->depth--;
17920 ndr->depth--;
17923 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17925 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17926 return NDR_ERR_SUCCESS;
17929 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17931 uint32_t v;
17932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17933 *r = v;
17934 return NDR_ERR_SUCCESS;
17937 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17939 ndr_print_uint32(ndr, name, r);
17940 ndr->depth++;
17941 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
17942 ndr->depth--;
17945 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
17947 uint32_t cntr_types_1;
17948 if (ndr_flags & NDR_SCALARS) {
17949 NDR_CHECK(ndr_push_align(ndr, 5));
17950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17951 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
17952 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17953 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
17954 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17956 if (ndr_flags & NDR_BUFFERS) {
17957 if (r->types) {
17958 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
17959 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17960 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17962 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17963 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17967 return NDR_ERR_SUCCESS;
17970 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
17972 uint32_t _ptr_types;
17973 uint32_t cntr_types_1;
17974 TALLOC_CTX *_mem_save_types_0;
17975 TALLOC_CTX *_mem_save_types_1;
17976 if (ndr_flags & NDR_SCALARS) {
17977 NDR_CHECK(ndr_pull_align(ndr, 5));
17978 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17979 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
17980 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17981 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
17982 if (_ptr_types) {
17983 NDR_PULL_ALLOC(ndr, r->types);
17984 } else {
17985 r->types = NULL;
17987 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17989 if (ndr_flags & NDR_BUFFERS) {
17990 if (r->types) {
17991 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
17992 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17993 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
17994 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
17995 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
17996 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17997 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17998 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18000 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18001 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
18004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
18006 if (r->types) {
18007 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
18010 return NDR_ERR_SUCCESS;
18013 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
18015 uint32_t cntr_types_1;
18016 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
18017 ndr->depth++;
18018 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18019 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
18020 ndr_print_uint32(ndr, "count", r->count);
18021 ndr_print_ptr(ndr, "types", r->types);
18022 ndr->depth++;
18023 if (r->types) {
18024 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
18025 ndr->depth++;
18026 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
18027 char *idx_1=NULL;
18028 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
18029 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
18030 free(idx_1);
18033 ndr->depth--;
18035 ndr->depth--;
18036 ndr->depth--;
18039 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
18041 if (ndr_flags & NDR_SCALARS) {
18042 NDR_CHECK(ndr_push_align(ndr, 5));
18043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18044 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
18045 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18047 if (ndr_flags & NDR_BUFFERS) {
18048 if (r->string) {
18049 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
18050 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
18053 return NDR_ERR_SUCCESS;
18056 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
18058 uint32_t _ptr_string;
18059 TALLOC_CTX *_mem_save_string_0;
18060 if (ndr_flags & NDR_SCALARS) {
18061 NDR_CHECK(ndr_pull_align(ndr, 5));
18062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18063 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
18064 if (_ptr_string) {
18065 NDR_PULL_ALLOC(ndr, r->string);
18066 } else {
18067 r->string = NULL;
18069 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18071 if (ndr_flags & NDR_BUFFERS) {
18072 if (r->string) {
18073 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
18074 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
18075 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
18076 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
18077 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
18079 if (r->string) {
18080 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
18083 return NDR_ERR_SUCCESS;
18086 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
18088 ndr_print_struct(ndr, name, "spoolss_NotifyString");
18089 ndr->depth++;
18090 ndr_print_uint32(ndr, "size", r->size);
18091 ndr_print_ptr(ndr, "string", r->string);
18092 ndr->depth++;
18093 if (r->string) {
18094 ndr_print_string(ndr, "string", r->string);
18096 ndr->depth--;
18097 ndr->depth--;
18100 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
18102 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
18103 return NDR_ERR_SUCCESS;
18106 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
18108 uint32_t v;
18109 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
18110 *r = v;
18111 return NDR_ERR_SUCCESS;
18114 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
18116 const char *val = NULL;
18118 switch (r) {
18119 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
18120 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
18121 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
18122 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
18123 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
18125 ndr_print_enum(ndr, name, "ENUM", val, r);
18128 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
18130 if (ndr_flags & NDR_SCALARS) {
18131 int level = ndr_push_get_switch_value(ndr, r);
18132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18133 NDR_CHECK(ndr_push_union_align(ndr, 5));
18134 switch (level) {
18135 case 1: {
18136 uint32_t cntr_integer_0;
18137 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
18140 break; }
18142 case 2: {
18143 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18144 break; }
18146 case 3: {
18147 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18148 break; }
18150 case 4: {
18151 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18152 break; }
18154 case 5: {
18155 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18156 break; }
18158 default:
18159 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18162 if (ndr_flags & NDR_BUFFERS) {
18163 int level = ndr_push_get_switch_value(ndr, r);
18164 switch (level) {
18165 case 1:
18166 break;
18168 case 2:
18169 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18170 break;
18172 case 3:
18173 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18174 break;
18176 case 4:
18177 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18178 break;
18180 case 5:
18181 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18182 break;
18184 default:
18185 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18188 return NDR_ERR_SUCCESS;
18191 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
18193 int level;
18194 uint32_t _level;
18195 level = ndr_pull_get_switch_value(ndr, r);
18196 if (ndr_flags & NDR_SCALARS) {
18197 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18198 if (_level != level) {
18199 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18201 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18202 switch (level) {
18203 case 1: {
18204 uint32_t cntr_integer_0;
18205 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
18208 break; }
18210 case 2: {
18211 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18212 break; }
18214 case 3: {
18215 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18216 break; }
18218 case 4: {
18219 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18220 break; }
18222 case 5: {
18223 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18224 break; }
18226 default:
18227 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18230 if (ndr_flags & NDR_BUFFERS) {
18231 switch (level) {
18232 case 1:
18233 break;
18235 case 2:
18236 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18237 break;
18239 case 3:
18240 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18241 break;
18243 case 4:
18244 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18245 break;
18247 case 5:
18248 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18249 break;
18251 default:
18252 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18255 return NDR_ERR_SUCCESS;
18258 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
18260 int level;
18261 uint32_t cntr_integer_0;
18262 level = ndr_print_get_switch_value(ndr, r);
18263 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
18264 switch (level) {
18265 case 1:
18266 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
18267 ndr->depth++;
18268 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
18269 char *idx_0=NULL;
18270 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
18271 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
18272 free(idx_0);
18275 ndr->depth--;
18276 break;
18278 case 2:
18279 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
18280 break;
18282 case 3:
18283 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
18284 break;
18286 case 4:
18287 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
18288 break;
18290 case 5:
18291 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
18292 break;
18294 default:
18295 ndr_print_bad_level(ndr, name, level);
18299 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
18301 if (ndr_flags & NDR_SCALARS) {
18302 NDR_CHECK(ndr_push_align(ndr, 5));
18303 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18304 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
18305 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18306 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
18307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
18308 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
18309 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18310 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18312 if (ndr_flags & NDR_BUFFERS) {
18313 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18315 return NDR_ERR_SUCCESS;
18318 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
18320 if (ndr_flags & NDR_SCALARS) {
18321 NDR_CHECK(ndr_pull_align(ndr, 5));
18322 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18323 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
18324 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18325 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
18326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
18327 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
18328 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18329 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18331 if (ndr_flags & NDR_BUFFERS) {
18332 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18334 return NDR_ERR_SUCCESS;
18337 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
18339 ndr_print_struct(ndr, name, "spoolss_Notify");
18340 ndr->depth++;
18341 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18342 ndr_print_set_switch_value(ndr, &r->field, r->type);
18343 ndr_print_spoolss_Field(ndr, "field", &r->field);
18344 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
18345 ndr_print_uint32(ndr, "job_id", r->job_id);
18346 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
18347 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
18348 ndr->depth--;
18351 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
18353 uint32_t cntr_notifies_0;
18354 if (ndr_flags & NDR_SCALARS) {
18355 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18356 NDR_CHECK(ndr_push_align(ndr, 5));
18357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18360 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18361 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18363 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18365 if (ndr_flags & NDR_BUFFERS) {
18366 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18367 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18370 return NDR_ERR_SUCCESS;
18373 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
18375 uint32_t cntr_notifies_0;
18376 TALLOC_CTX *_mem_save_notifies_0;
18377 if (ndr_flags & NDR_SCALARS) {
18378 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
18379 NDR_CHECK(ndr_pull_align(ndr, 5));
18380 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18381 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18382 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18383 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
18384 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18385 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18386 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18387 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18389 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18390 if (r->notifies) {
18391 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
18393 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18395 if (ndr_flags & NDR_BUFFERS) {
18396 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18397 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18398 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18399 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18403 return NDR_ERR_SUCCESS;
18406 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
18408 uint32_t cntr_notifies_0;
18409 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
18410 ndr->depth++;
18411 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18412 ndr_print_uint32(ndr, "flags", r->flags);
18413 ndr_print_uint32(ndr, "count", r->count);
18414 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
18415 ndr->depth++;
18416 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
18417 char *idx_0=NULL;
18418 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
18419 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
18420 free(idx_0);
18423 ndr->depth--;
18424 ndr->depth--;
18427 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
18429 if (ndr_flags & NDR_SCALARS) {
18430 int level = ndr_push_get_switch_value(ndr, r);
18431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18432 NDR_CHECK(ndr_push_union_align(ndr, 5));
18433 switch (level) {
18434 case 0: {
18435 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
18436 break; }
18438 default:
18439 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18442 if (ndr_flags & NDR_BUFFERS) {
18443 int level = ndr_push_get_switch_value(ndr, r);
18444 switch (level) {
18445 case 0:
18446 if (r->info0) {
18447 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18449 break;
18451 default:
18452 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18455 return NDR_ERR_SUCCESS;
18458 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
18460 int level;
18461 uint32_t _level;
18462 TALLOC_CTX *_mem_save_info0_0;
18463 level = ndr_pull_get_switch_value(ndr, r);
18464 if (ndr_flags & NDR_SCALARS) {
18465 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18466 if (_level != level) {
18467 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18469 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18470 switch (level) {
18471 case 0: {
18472 uint32_t _ptr_info0;
18473 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
18474 if (_ptr_info0) {
18475 NDR_PULL_ALLOC(ndr, r->info0);
18476 } else {
18477 r->info0 = NULL;
18479 break; }
18481 default:
18482 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18485 if (ndr_flags & NDR_BUFFERS) {
18486 switch (level) {
18487 case 0:
18488 if (r->info0) {
18489 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
18490 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
18491 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
18494 break;
18496 default:
18497 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18500 return NDR_ERR_SUCCESS;
18503 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
18505 int level;
18506 level = ndr_print_get_switch_value(ndr, r);
18507 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
18508 switch (level) {
18509 case 0:
18510 ndr_print_ptr(ndr, "info0", r->info0);
18511 ndr->depth++;
18512 if (r->info0) {
18513 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
18515 ndr->depth--;
18516 break;
18518 default:
18519 ndr_print_bad_level(ndr, name, level);
18523 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18526 return NDR_ERR_SUCCESS;
18529 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18531 uint32_t v;
18532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18533 *r = v;
18534 return NDR_ERR_SUCCESS;
18537 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18539 ndr_print_uint32(ndr, name, r);
18540 ndr->depth++;
18541 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
18542 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
18543 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
18544 ndr->depth--;
18547 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
18549 if (ndr_flags & NDR_SCALARS) {
18550 NDR_CHECK(ndr_push_align(ndr, 5));
18551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18552 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18553 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18555 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18556 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18557 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18558 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18560 if (ndr_flags & NDR_BUFFERS) {
18561 if (r->client) {
18562 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18563 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18564 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18565 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18567 if (r->user) {
18568 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18569 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18570 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18571 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18574 return NDR_ERR_SUCCESS;
18577 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
18579 uint32_t _ptr_client;
18580 TALLOC_CTX *_mem_save_client_0;
18581 uint32_t _ptr_user;
18582 TALLOC_CTX *_mem_save_user_0;
18583 if (ndr_flags & NDR_SCALARS) {
18584 NDR_CHECK(ndr_pull_align(ndr, 5));
18585 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18586 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18587 if (_ptr_client) {
18588 NDR_PULL_ALLOC(ndr, r->client);
18589 } else {
18590 r->client = NULL;
18592 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
18593 if (_ptr_user) {
18594 NDR_PULL_ALLOC(ndr, r->user);
18595 } else {
18596 r->user = NULL;
18598 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
18599 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
18600 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
18601 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
18602 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18604 if (ndr_flags & NDR_BUFFERS) {
18605 if (r->client) {
18606 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
18607 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18608 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18609 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18610 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
18611 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));
18613 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
18614 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
18615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18617 if (r->user) {
18618 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
18619 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18620 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18621 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18622 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
18623 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));
18625 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
18626 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
18627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18630 return NDR_ERR_SUCCESS;
18633 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
18635 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
18636 ndr->depth++;
18637 ndr_print_uint32(ndr, "size", r->size);
18638 ndr_print_ptr(ndr, "client", r->client);
18639 ndr->depth++;
18640 if (r->client) {
18641 ndr_print_string(ndr, "client", r->client);
18643 ndr->depth--;
18644 ndr_print_ptr(ndr, "user", r->user);
18645 ndr->depth++;
18646 if (r->user) {
18647 ndr_print_string(ndr, "user", r->user);
18649 ndr->depth--;
18650 ndr_print_uint32(ndr, "build", r->build);
18651 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
18652 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
18653 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
18654 ndr->depth--;
18657 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
18659 if (ndr_flags & NDR_SCALARS) {
18660 NDR_CHECK(ndr_push_align(ndr, 4));
18661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
18662 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
18664 if (ndr_flags & NDR_BUFFERS) {
18666 return NDR_ERR_SUCCESS;
18669 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
18671 if (ndr_flags & NDR_SCALARS) {
18672 NDR_CHECK(ndr_pull_align(ndr, 4));
18673 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
18674 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
18676 if (ndr_flags & NDR_BUFFERS) {
18678 return NDR_ERR_SUCCESS;
18681 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
18683 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
18684 ndr->depth++;
18685 ndr_print_uint32(ndr, "not_used", r->not_used);
18686 ndr->depth--;
18689 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
18691 if (ndr_flags & NDR_SCALARS) {
18692 NDR_CHECK(ndr_push_align(ndr, 5));
18693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
18696 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18697 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18698 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18699 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18700 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18701 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18702 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
18703 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18705 if (ndr_flags & NDR_BUFFERS) {
18706 if (r->client) {
18707 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18708 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18709 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18710 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18712 if (r->user) {
18713 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18714 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18715 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18716 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18719 return NDR_ERR_SUCCESS;
18722 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
18724 uint32_t _ptr_client;
18725 TALLOC_CTX *_mem_save_client_0;
18726 uint32_t _ptr_user;
18727 TALLOC_CTX *_mem_save_user_0;
18728 if (ndr_flags & NDR_SCALARS) {
18729 NDR_CHECK(ndr_pull_align(ndr, 5));
18730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18732 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
18733 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18734 if (_ptr_client) {
18735 NDR_PULL_ALLOC(ndr, r->client);
18736 } else {
18737 r->client = NULL;
18739 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
18740 if (_ptr_user) {
18741 NDR_PULL_ALLOC(ndr, r->user);
18742 } else {
18743 r->user = NULL;
18745 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
18746 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
18747 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
18748 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
18749 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
18750 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18752 if (ndr_flags & NDR_BUFFERS) {
18753 if (r->client) {
18754 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
18755 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18756 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18757 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18758 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
18759 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));
18761 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
18762 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
18763 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18765 if (r->user) {
18766 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
18767 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18768 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18769 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18770 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
18771 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));
18773 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
18774 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
18775 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18778 return NDR_ERR_SUCCESS;
18781 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
18783 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
18784 ndr->depth++;
18785 ndr_print_uint32(ndr, "size", r->size);
18786 ndr_print_uint32(ndr, "flags", r->flags);
18787 ndr_print_uint32(ndr, "size2", r->size2);
18788 ndr_print_ptr(ndr, "client", r->client);
18789 ndr->depth++;
18790 if (r->client) {
18791 ndr_print_string(ndr, "client", r->client);
18793 ndr->depth--;
18794 ndr_print_ptr(ndr, "user", r->user);
18795 ndr->depth++;
18796 if (r->user) {
18797 ndr_print_string(ndr, "user", r->user);
18799 ndr->depth--;
18800 ndr_print_uint32(ndr, "build", r->build);
18801 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
18802 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
18803 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
18804 ndr_print_udlong(ndr, "reserved", r->reserved);
18805 ndr->depth--;
18808 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
18810 if (ndr_flags & NDR_SCALARS) {
18811 int level = ndr_push_get_switch_value(ndr, r);
18812 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18813 NDR_CHECK(ndr_push_union_align(ndr, 5));
18814 switch (level) {
18815 case 1: {
18816 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
18817 break; }
18819 case 2: {
18820 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
18821 break; }
18823 case 3: {
18824 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
18825 break; }
18827 default:
18828 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18831 if (ndr_flags & NDR_BUFFERS) {
18832 int level = ndr_push_get_switch_value(ndr, r);
18833 switch (level) {
18834 case 1:
18835 if (r->level1) {
18836 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18838 break;
18840 case 2:
18841 if (r->level2) {
18842 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18844 break;
18846 case 3:
18847 if (r->level3) {
18848 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18850 break;
18852 default:
18853 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18856 return NDR_ERR_SUCCESS;
18859 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
18861 int level;
18862 uint32_t _level;
18863 TALLOC_CTX *_mem_save_level1_0;
18864 TALLOC_CTX *_mem_save_level2_0;
18865 TALLOC_CTX *_mem_save_level3_0;
18866 level = ndr_pull_get_switch_value(ndr, r);
18867 if (ndr_flags & NDR_SCALARS) {
18868 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18869 if (_level != level) {
18870 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18872 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18873 switch (level) {
18874 case 1: {
18875 uint32_t _ptr_level1;
18876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
18877 if (_ptr_level1) {
18878 NDR_PULL_ALLOC(ndr, r->level1);
18879 } else {
18880 r->level1 = NULL;
18882 break; }
18884 case 2: {
18885 uint32_t _ptr_level2;
18886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
18887 if (_ptr_level2) {
18888 NDR_PULL_ALLOC(ndr, r->level2);
18889 } else {
18890 r->level2 = NULL;
18892 break; }
18894 case 3: {
18895 uint32_t _ptr_level3;
18896 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
18897 if (_ptr_level3) {
18898 NDR_PULL_ALLOC(ndr, r->level3);
18899 } else {
18900 r->level3 = NULL;
18902 break; }
18904 default:
18905 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18908 if (ndr_flags & NDR_BUFFERS) {
18909 switch (level) {
18910 case 1:
18911 if (r->level1) {
18912 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
18913 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
18914 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18915 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
18917 break;
18919 case 2:
18920 if (r->level2) {
18921 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
18922 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
18923 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
18926 break;
18928 case 3:
18929 if (r->level3) {
18930 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
18931 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
18932 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
18935 break;
18937 default:
18938 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18941 return NDR_ERR_SUCCESS;
18944 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
18946 int level;
18947 level = ndr_print_get_switch_value(ndr, r);
18948 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
18949 switch (level) {
18950 case 1:
18951 ndr_print_ptr(ndr, "level1", r->level1);
18952 ndr->depth++;
18953 if (r->level1) {
18954 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
18956 ndr->depth--;
18957 break;
18959 case 2:
18960 ndr_print_ptr(ndr, "level2", r->level2);
18961 ndr->depth++;
18962 if (r->level2) {
18963 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
18965 ndr->depth--;
18966 break;
18968 case 3:
18969 ndr_print_ptr(ndr, "level3", r->level3);
18970 ndr->depth++;
18971 if (r->level3) {
18972 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
18974 ndr->depth--;
18975 break;
18977 default:
18978 ndr_print_bad_level(ndr, name, level);
18982 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
18984 if (ndr_flags & NDR_SCALARS) {
18985 NDR_CHECK(ndr_push_align(ndr, 5));
18986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
18987 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
18988 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18989 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18991 if (ndr_flags & NDR_BUFFERS) {
18992 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18994 return NDR_ERR_SUCCESS;
18997 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
18999 if (ndr_flags & NDR_SCALARS) {
19000 NDR_CHECK(ndr_pull_align(ndr, 5));
19001 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
19002 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
19003 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19004 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19006 if (ndr_flags & NDR_BUFFERS) {
19007 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19009 return NDR_ERR_SUCCESS;
19012 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
19014 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
19015 ndr->depth++;
19016 ndr_print_uint32(ndr, "level", r->level);
19017 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
19018 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
19019 ndr->depth--;
19022 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19025 return NDR_ERR_SUCCESS;
19028 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19030 uint32_t v;
19031 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19032 *r = v;
19033 return NDR_ERR_SUCCESS;
19036 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
19038 ndr_print_uint32(ndr, name, r);
19039 ndr->depth++;
19040 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
19041 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
19042 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
19043 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
19044 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
19045 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
19046 ndr->depth--;
19049 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
19051 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
19052 if (ndr_flags & NDR_SCALARS) {
19053 NDR_CHECK(ndr_push_align(ndr, 5));
19054 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19056 uint32_t _flags_save_string = ndr->flags;
19057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19058 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
19059 ndr->flags = _flags_save_string;
19061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
19062 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
19063 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
19064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
19065 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19067 if (ndr_flags & NDR_BUFFERS) {
19068 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
19070 uint32_t _flags_save_string = ndr->flags;
19071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19072 if (r->value_name) {
19073 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->value_name));
19074 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
19076 ndr->flags = _flags_save_string;
19078 if (r->data) {
19079 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data));
19081 struct ndr_push *_ndr_data;
19082 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19083 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
19084 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19085 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19089 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
19090 return NDR_ERR_SUCCESS;
19093 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
19095 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
19096 uint32_t _ptr_value_name;
19097 TALLOC_CTX *_mem_save_value_name_0;
19098 uint32_t _ptr_data;
19099 TALLOC_CTX *_mem_save_data_0;
19100 if (ndr_flags & NDR_SCALARS) {
19101 NDR_CHECK(ndr_pull_align(ndr, 5));
19102 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19104 uint32_t _flags_save_string = ndr->flags;
19105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
19107 if (_ptr_value_name) {
19108 NDR_PULL_ALLOC(ndr, r->value_name);
19109 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
19110 } else {
19111 r->value_name = NULL;
19113 ndr->flags = _flags_save_string;
19115 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
19116 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
19117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
19118 if (_ptr_data) {
19119 NDR_PULL_ALLOC(ndr, r->data);
19120 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
19121 } else {
19122 r->data = NULL;
19124 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
19125 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19127 if (ndr_flags & NDR_BUFFERS) {
19128 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19130 uint32_t _flags_save_string = ndr->flags;
19131 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19132 if (r->value_name) {
19133 uint32_t _relative_save_offset;
19134 _relative_save_offset = ndr->offset;
19135 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
19136 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19137 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
19138 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
19139 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
19140 ndr->offset = _relative_save_offset;
19142 ndr->flags = _flags_save_string;
19144 if (r->data) {
19145 uint32_t _relative_save_offset;
19146 _relative_save_offset = ndr->offset;
19147 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
19148 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
19149 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
19151 struct ndr_pull *_ndr_data;
19152 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19153 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
19154 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19155 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
19158 ndr->offset = _relative_save_offset;
19161 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
19162 return NDR_ERR_SUCCESS;
19165 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
19167 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
19168 ndr->depth++;
19169 ndr_print_ptr(ndr, "value_name", r->value_name);
19170 ndr->depth++;
19171 if (r->value_name) {
19172 ndr_print_string(ndr, "value_name", r->value_name);
19174 ndr->depth--;
19175 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
19176 ndr_print_winreg_Type(ndr, "type", r->type);
19177 ndr_print_ptr(ndr, "data", r->data);
19178 ndr->depth++;
19179 if (r->data) {
19180 ndr_print_set_switch_value(ndr, r->data, r->type);
19181 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
19183 ndr->depth--;
19184 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);
19185 ndr->depth--;
19188 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
19190 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
19193 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19196 return NDR_ERR_SUCCESS;
19199 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19201 uint32_t v;
19202 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19203 *r = v;
19204 return NDR_ERR_SUCCESS;
19207 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19209 ndr_print_uint32(ndr, name, r);
19210 ndr->depth++;
19211 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
19212 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
19213 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
19214 ndr->depth--;
19217 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
19219 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
19220 return NDR_ERR_SUCCESS;
19223 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
19225 uint32_t v;
19226 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19227 *r = v;
19228 return NDR_ERR_SUCCESS;
19231 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
19233 const char *val = NULL;
19235 switch (r) {
19236 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
19237 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
19239 ndr_print_enum(ndr, name, "ENUM", val, r);
19242 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
19244 if (ndr_flags & NDR_SCALARS) {
19245 NDR_CHECK(ndr_push_align(ndr, 4));
19246 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
19248 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19251 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19252 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19254 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19255 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19256 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19257 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19261 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19263 if (ndr_flags & NDR_BUFFERS) {
19265 return NDR_ERR_SUCCESS;
19268 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
19270 if (ndr_flags & NDR_SCALARS) {
19271 NDR_CHECK(ndr_pull_align(ndr, 4));
19272 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19273 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19274 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19276 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19277 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19278 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19279 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19280 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19281 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19282 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19283 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19284 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19285 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19287 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19289 if (ndr_flags & NDR_BUFFERS) {
19291 return NDR_ERR_SUCCESS;
19294 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
19296 ndr_print_struct(ndr, name, "spoolss_PortData1");
19297 ndr->depth++;
19298 ndr_print_string(ndr, "portname", r->portname);
19299 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
19300 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19301 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19302 ndr_print_uint32(ndr, "reserved", r->reserved);
19303 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19304 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19305 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19306 ndr_print_string(ndr, "queue", r->queue);
19307 ndr_print_string(ndr, "ip_address", r->ip_address);
19308 ndr_print_string(ndr, "hardware_address", r->hardware_address);
19309 ndr_print_string(ndr, "device_type", r->device_type);
19310 ndr_print_uint32(ndr, "port_number", r->port_number);
19311 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19312 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19313 ndr->depth--;
19316 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
19318 if (ndr_flags & NDR_SCALARS) {
19319 NDR_CHECK(ndr_push_align(ndr, 4));
19320 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
19322 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19325 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19326 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19328 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19329 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
19334 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19336 if (ndr_flags & NDR_BUFFERS) {
19338 return NDR_ERR_SUCCESS;
19341 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
19343 if (ndr_flags & NDR_SCALARS) {
19344 NDR_CHECK(ndr_pull_align(ndr, 4));
19345 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19346 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19347 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19348 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19350 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19351 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19353 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19354 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19355 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19356 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19357 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19358 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
19359 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19361 if (ndr_flags & NDR_BUFFERS) {
19363 return NDR_ERR_SUCCESS;
19366 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
19368 ndr_print_struct(ndr, name, "spoolss_PortData2");
19369 ndr->depth++;
19370 ndr_print_string(ndr, "portname", r->portname);
19371 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
19372 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19373 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19374 ndr_print_uint32(ndr, "reserved", r->reserved);
19375 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19376 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19377 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19378 ndr_print_string(ndr, "queue", r->queue);
19379 ndr_print_string(ndr, "device_type", r->device_type);
19380 ndr_print_uint32(ndr, "port_number", r->port_number);
19381 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19382 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19383 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
19384 ndr->depth--;
19387 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
19389 if (ndr_flags & NDR_SCALARS) {
19390 NDR_CHECK(ndr_push_align(ndr, 4));
19392 uint32_t _flags_save_string = ndr->flags;
19393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19394 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
19395 ndr->flags = _flags_save_string;
19397 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19399 if (ndr_flags & NDR_BUFFERS) {
19401 return NDR_ERR_SUCCESS;
19404 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
19406 if (ndr_flags & NDR_SCALARS) {
19407 NDR_CHECK(ndr_pull_align(ndr, 4));
19409 uint32_t _flags_save_string = ndr->flags;
19410 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19411 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
19412 ndr->flags = _flags_save_string;
19414 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19416 if (ndr_flags & NDR_BUFFERS) {
19418 return NDR_ERR_SUCCESS;
19421 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
19423 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
19424 ndr->depth++;
19425 ndr_print_string(ndr, "dll_name", r->dll_name);
19426 ndr->depth--;
19429 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19432 return NDR_ERR_SUCCESS;
19435 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19437 uint32_t v;
19438 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19439 *r = v;
19440 return NDR_ERR_SUCCESS;
19443 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19445 ndr_print_uint32(ndr, name, r);
19446 ndr->depth++;
19447 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
19448 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
19449 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
19450 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
19451 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
19452 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
19453 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
19454 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
19455 ndr->depth--;
19458 static enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, int ndr_flags, const struct spoolss_CorePrinterDriver *r)
19460 if (ndr_flags & NDR_SCALARS) {
19461 NDR_CHECK(ndr_push_align(ndr, 8));
19462 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
19463 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
19464 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
19465 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 520, sizeof(uint8_t), CH_UTF8));
19466 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
19468 if (ndr_flags & NDR_BUFFERS) {
19470 return NDR_ERR_SUCCESS;
19473 static enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, int ndr_flags, struct spoolss_CorePrinterDriver *r)
19475 if (ndr_flags & NDR_SCALARS) {
19476 NDR_CHECK(ndr_pull_align(ndr, 8));
19477 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
19478 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
19479 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
19480 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 520, sizeof(uint8_t), CH_UTF8));
19481 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
19483 if (ndr_flags & NDR_BUFFERS) {
19485 return NDR_ERR_SUCCESS;
19488 _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
19490 ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
19491 ndr->depth++;
19492 ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
19493 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
19494 ndr_print_hyper(ndr, "driver_version", r->driver_version);
19495 ndr_print_string(ndr, "formname", r->formname);
19496 ndr->depth--;
19499 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
19501 if (flags & NDR_IN) {
19502 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
19503 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19504 if (r->in.server) {
19505 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19506 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19507 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19508 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19511 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19512 if (r->in.buffer) {
19513 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19517 if (flags & NDR_OUT) {
19518 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19519 if (r->out.info) {
19520 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19522 if (r->out.needed == NULL) {
19523 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19526 if (r->out.count == NULL) {
19527 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19530 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19532 return NDR_ERR_SUCCESS;
19535 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
19537 uint32_t _ptr_server;
19538 uint32_t _ptr_buffer;
19539 uint32_t _ptr_info;
19540 TALLOC_CTX *_mem_save_server_0;
19541 TALLOC_CTX *_mem_save_buffer_0;
19542 TALLOC_CTX *_mem_save_info_0;
19543 TALLOC_CTX *_mem_save_needed_0;
19544 TALLOC_CTX *_mem_save_count_0;
19545 if (flags & NDR_IN) {
19546 ZERO_STRUCT(r->out);
19548 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
19549 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19550 if (_ptr_server) {
19551 NDR_PULL_ALLOC(ndr, r->in.server);
19552 } else {
19553 r->in.server = NULL;
19555 if (r->in.server) {
19556 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19557 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19558 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19559 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19560 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19561 return 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));
19563 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19564 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19568 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19569 if (_ptr_buffer) {
19570 NDR_PULL_ALLOC(ndr, r->in.buffer);
19571 } else {
19572 r->in.buffer = NULL;
19574 if (r->in.buffer) {
19575 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19576 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19577 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19580 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19581 NDR_PULL_ALLOC(ndr, r->out.needed);
19582 ZERO_STRUCTP(r->out.needed);
19583 NDR_PULL_ALLOC(ndr, r->out.count);
19584 ZERO_STRUCTP(r->out.count);
19586 if (flags & NDR_OUT) {
19587 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19588 if (_ptr_info) {
19589 NDR_PULL_ALLOC(ndr, r->out.info);
19590 } else {
19591 r->out.info = NULL;
19593 if (r->out.info) {
19594 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19595 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19596 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19597 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19599 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19600 NDR_PULL_ALLOC(ndr, r->out.needed);
19602 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19603 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19604 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19605 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19606 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19607 NDR_PULL_ALLOC(ndr, r->out.count);
19609 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19610 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19611 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19612 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19613 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19615 return NDR_ERR_SUCCESS;
19618 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
19620 uint32_t cntr_info_0;
19621 if (flags & NDR_IN) {
19622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19625 if (flags & NDR_OUT) {
19626 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19627 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19628 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19630 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19631 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
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 cntr_info_0;
19640 TALLOC_CTX *_mem_save_info_0;
19641 if (flags & NDR_IN) {
19642 ZERO_STRUCT(r->out);
19644 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19645 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19647 if (flags & NDR_OUT) {
19648 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19649 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19650 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19651 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19652 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19653 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19655 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19656 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19658 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19660 return NDR_ERR_SUCCESS;
19663 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
19665 uint32_t cntr_info_2;
19666 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
19667 ndr->depth++;
19668 if (flags & NDR_SET_VALUES) {
19669 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19671 if (flags & NDR_IN) {
19672 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
19673 ndr->depth++;
19674 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
19675 ndr_print_ptr(ndr, "server", r->in.server);
19676 ndr->depth++;
19677 if (r->in.server) {
19678 ndr_print_string(ndr, "server", r->in.server);
19680 ndr->depth--;
19681 ndr_print_uint32(ndr, "level", r->in.level);
19682 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19683 ndr->depth++;
19684 if (r->in.buffer) {
19685 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19687 ndr->depth--;
19688 ndr_print_uint32(ndr, "offered", r->in.offered);
19689 ndr->depth--;
19691 if (flags & NDR_OUT) {
19692 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
19693 ndr->depth++;
19694 ndr_print_ptr(ndr, "count", r->out.count);
19695 ndr->depth++;
19696 ndr_print_uint32(ndr, "count", *r->out.count);
19697 ndr->depth--;
19698 ndr_print_ptr(ndr, "info", r->out.info);
19699 ndr->depth++;
19700 ndr_print_ptr(ndr, "info", *r->out.info);
19701 ndr->depth++;
19702 if (*r->out.info) {
19703 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19704 ndr->depth++;
19705 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19706 char *idx_2=NULL;
19707 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19708 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19709 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19710 free(idx_2);
19713 ndr->depth--;
19715 ndr->depth--;
19716 ndr->depth--;
19717 ndr_print_ptr(ndr, "needed", r->out.needed);
19718 ndr->depth++;
19719 ndr_print_uint32(ndr, "needed", *r->out.needed);
19720 ndr->depth--;
19721 ndr_print_WERROR(ndr, "result", r->out.result);
19722 ndr->depth--;
19724 ndr->depth--;
19727 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
19729 if (flags & NDR_IN) {
19730 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
19731 if (r->in.printername) {
19732 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
19733 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19734 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
19735 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19737 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
19738 if (r->in.datatype) {
19739 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
19740 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19741 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
19742 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19744 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
19745 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
19747 if (flags & NDR_OUT) {
19748 if (r->out.handle == NULL) {
19749 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19751 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19752 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19754 return NDR_ERR_SUCCESS;
19757 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
19759 uint32_t _ptr_printername;
19760 uint32_t _ptr_datatype;
19761 TALLOC_CTX *_mem_save_printername_0;
19762 TALLOC_CTX *_mem_save_datatype_0;
19763 TALLOC_CTX *_mem_save_handle_0;
19764 if (flags & NDR_IN) {
19765 ZERO_STRUCT(r->out);
19767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
19768 if (_ptr_printername) {
19769 NDR_PULL_ALLOC(ndr, r->in.printername);
19770 } else {
19771 r->in.printername = NULL;
19773 if (r->in.printername) {
19774 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19775 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
19776 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
19777 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
19778 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
19779 return 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));
19781 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
19782 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
19783 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
19785 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
19786 if (_ptr_datatype) {
19787 NDR_PULL_ALLOC(ndr, r->in.datatype);
19788 } else {
19789 r->in.datatype = NULL;
19791 if (r->in.datatype) {
19792 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
19793 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
19794 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
19795 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
19796 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
19797 return 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));
19799 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
19800 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
19801 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
19803 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
19804 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
19805 NDR_PULL_ALLOC(ndr, r->out.handle);
19806 ZERO_STRUCTP(r->out.handle);
19808 if (flags & NDR_OUT) {
19809 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19810 NDR_PULL_ALLOC(ndr, r->out.handle);
19812 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19813 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
19814 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19815 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19816 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19818 return NDR_ERR_SUCCESS;
19821 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
19823 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
19824 ndr->depth++;
19825 if (flags & NDR_SET_VALUES) {
19826 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19828 if (flags & NDR_IN) {
19829 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
19830 ndr->depth++;
19831 ndr_print_ptr(ndr, "printername", r->in.printername);
19832 ndr->depth++;
19833 if (r->in.printername) {
19834 ndr_print_string(ndr, "printername", r->in.printername);
19836 ndr->depth--;
19837 ndr_print_ptr(ndr, "datatype", r->in.datatype);
19838 ndr->depth++;
19839 if (r->in.datatype) {
19840 ndr_print_string(ndr, "datatype", r->in.datatype);
19842 ndr->depth--;
19843 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
19844 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
19845 ndr->depth--;
19847 if (flags & NDR_OUT) {
19848 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
19849 ndr->depth++;
19850 ndr_print_ptr(ndr, "handle", r->out.handle);
19851 ndr->depth++;
19852 ndr_print_policy_handle(ndr, "handle", r->out.handle);
19853 ndr->depth--;
19854 ndr_print_WERROR(ndr, "result", r->out.result);
19855 ndr->depth--;
19857 ndr->depth--;
19860 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
19862 if (flags & NDR_IN) {
19863 if (r->in.handle == NULL) {
19864 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19866 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
19868 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
19869 if (r->in.ctr) {
19870 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
19872 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
19874 if (flags & NDR_OUT) {
19875 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19877 return NDR_ERR_SUCCESS;
19880 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
19882 uint32_t _ptr_ctr;
19883 TALLOC_CTX *_mem_save_handle_0;
19884 TALLOC_CTX *_mem_save_ctr_0;
19885 if (flags & NDR_IN) {
19886 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19887 NDR_PULL_ALLOC(ndr, r->in.handle);
19889 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19890 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19891 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
19894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
19895 if (_ptr_ctr) {
19896 NDR_PULL_ALLOC(ndr, r->in.ctr);
19897 } else {
19898 r->in.ctr = NULL;
19900 if (r->in.ctr) {
19901 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19902 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
19903 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
19904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
19906 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
19908 if (flags & NDR_OUT) {
19909 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19911 return NDR_ERR_SUCCESS;
19914 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
19916 ndr_print_struct(ndr, name, "spoolss_SetJob");
19917 ndr->depth++;
19918 if (flags & NDR_SET_VALUES) {
19919 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19921 if (flags & NDR_IN) {
19922 ndr_print_struct(ndr, "in", "spoolss_SetJob");
19923 ndr->depth++;
19924 ndr_print_ptr(ndr, "handle", r->in.handle);
19925 ndr->depth++;
19926 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19927 ndr->depth--;
19928 ndr_print_uint32(ndr, "job_id", r->in.job_id);
19929 ndr_print_ptr(ndr, "ctr", r->in.ctr);
19930 ndr->depth++;
19931 if (r->in.ctr) {
19932 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
19934 ndr->depth--;
19935 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
19936 ndr->depth--;
19938 if (flags & NDR_OUT) {
19939 ndr_print_struct(ndr, "out", "spoolss_SetJob");
19940 ndr->depth++;
19941 ndr_print_WERROR(ndr, "result", r->out.result);
19942 ndr->depth--;
19944 ndr->depth--;
19947 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
19949 if (flags & NDR_IN) {
19950 if (r->in.handle == NULL) {
19951 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19953 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
19955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19956 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19957 if (r->in.buffer) {
19958 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19962 if (flags & NDR_OUT) {
19963 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19964 if (r->out.info) {
19966 struct ndr_push *_ndr_info;
19967 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19968 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19969 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19970 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19973 if (r->out.needed == NULL) {
19974 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
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_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
19984 uint32_t _ptr_buffer;
19985 uint32_t _ptr_info;
19986 TALLOC_CTX *_mem_save_handle_0;
19987 TALLOC_CTX *_mem_save_buffer_0;
19988 TALLOC_CTX *_mem_save_info_0;
19989 TALLOC_CTX *_mem_save_needed_0;
19990 if (flags & NDR_IN) {
19991 ZERO_STRUCT(r->out);
19993 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19994 NDR_PULL_ALLOC(ndr, r->in.handle);
19996 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19997 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19998 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19999 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20000 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20001 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20002 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20003 if (_ptr_buffer) {
20004 NDR_PULL_ALLOC(ndr, r->in.buffer);
20005 } else {
20006 r->in.buffer = NULL;
20008 if (r->in.buffer) {
20009 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20010 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20011 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20012 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20014 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20015 NDR_PULL_ALLOC(ndr, r->out.needed);
20016 ZERO_STRUCTP(r->out.needed);
20018 if (flags & NDR_OUT) {
20019 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20020 if (_ptr_info) {
20021 NDR_PULL_ALLOC(ndr, r->out.info);
20022 } else {
20023 r->out.info = NULL;
20025 if (r->out.info) {
20026 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20027 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20029 struct ndr_pull *_ndr_info;
20030 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20031 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20032 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20033 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20037 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20038 NDR_PULL_ALLOC(ndr, r->out.needed);
20040 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20041 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20042 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20043 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20044 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20046 return NDR_ERR_SUCCESS;
20049 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
20051 ndr_print_struct(ndr, name, "spoolss_GetJob");
20052 ndr->depth++;
20053 if (flags & NDR_SET_VALUES) {
20054 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20056 if (flags & NDR_IN) {
20057 ndr_print_struct(ndr, "in", "spoolss_GetJob");
20058 ndr->depth++;
20059 ndr_print_ptr(ndr, "handle", r->in.handle);
20060 ndr->depth++;
20061 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20062 ndr->depth--;
20063 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20064 ndr_print_uint32(ndr, "level", r->in.level);
20065 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20066 ndr->depth++;
20067 if (r->in.buffer) {
20068 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20070 ndr->depth--;
20071 ndr_print_uint32(ndr, "offered", r->in.offered);
20072 ndr->depth--;
20074 if (flags & NDR_OUT) {
20075 ndr_print_struct(ndr, "out", "spoolss_GetJob");
20076 ndr->depth++;
20077 ndr_print_ptr(ndr, "info", r->out.info);
20078 ndr->depth++;
20079 if (r->out.info) {
20080 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20081 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
20083 ndr->depth--;
20084 ndr_print_ptr(ndr, "needed", r->out.needed);
20085 ndr->depth++;
20086 ndr_print_uint32(ndr, "needed", *r->out.needed);
20087 ndr->depth--;
20088 ndr_print_WERROR(ndr, "result", r->out.result);
20089 ndr->depth--;
20091 ndr->depth--;
20094 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
20096 if (flags & NDR_IN) {
20097 if (r->in.handle == NULL) {
20098 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20100 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
20102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
20103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20104 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20105 if (r->in.buffer) {
20106 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20110 if (flags & NDR_OUT) {
20111 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20112 if (r->out.info) {
20113 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20115 if (r->out.needed == NULL) {
20116 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20119 if (r->out.count == NULL) {
20120 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20123 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20125 return NDR_ERR_SUCCESS;
20128 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
20130 uint32_t _ptr_buffer;
20131 uint32_t _ptr_info;
20132 TALLOC_CTX *_mem_save_handle_0;
20133 TALLOC_CTX *_mem_save_buffer_0;
20134 TALLOC_CTX *_mem_save_info_0;
20135 TALLOC_CTX *_mem_save_needed_0;
20136 TALLOC_CTX *_mem_save_count_0;
20137 if (flags & NDR_IN) {
20138 ZERO_STRUCT(r->out);
20140 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20141 NDR_PULL_ALLOC(ndr, r->in.handle);
20143 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20144 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20145 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20147 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
20148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
20149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20150 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20151 if (_ptr_buffer) {
20152 NDR_PULL_ALLOC(ndr, r->in.buffer);
20153 } else {
20154 r->in.buffer = NULL;
20156 if (r->in.buffer) {
20157 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20158 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20159 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20160 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20163 NDR_PULL_ALLOC(ndr, r->out.needed);
20164 ZERO_STRUCTP(r->out.needed);
20165 NDR_PULL_ALLOC(ndr, r->out.count);
20166 ZERO_STRUCTP(r->out.count);
20168 if (flags & NDR_OUT) {
20169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20170 if (_ptr_info) {
20171 NDR_PULL_ALLOC(ndr, r->out.info);
20172 } else {
20173 r->out.info = NULL;
20175 if (r->out.info) {
20176 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20177 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20178 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20181 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20182 NDR_PULL_ALLOC(ndr, r->out.needed);
20184 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20185 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20186 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20187 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20188 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20189 NDR_PULL_ALLOC(ndr, r->out.count);
20191 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20192 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20193 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20194 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20195 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20197 return NDR_ERR_SUCCESS;
20200 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
20202 uint32_t cntr_info_0;
20203 if (flags & NDR_IN) {
20204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20207 if (flags & NDR_OUT) {
20208 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20209 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20210 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20212 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20213 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20216 return NDR_ERR_SUCCESS;
20219 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
20221 uint32_t cntr_info_0;
20222 TALLOC_CTX *_mem_save_info_0;
20223 if (flags & NDR_IN) {
20224 ZERO_STRUCT(r->out);
20226 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20227 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20229 if (flags & NDR_OUT) {
20230 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20231 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20232 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20233 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20234 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20235 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20237 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20238 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20240 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20242 return NDR_ERR_SUCCESS;
20245 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
20247 uint32_t cntr_info_2;
20248 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
20249 ndr->depth++;
20250 if (flags & NDR_SET_VALUES) {
20251 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20253 if (flags & NDR_IN) {
20254 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
20255 ndr->depth++;
20256 ndr_print_ptr(ndr, "handle", r->in.handle);
20257 ndr->depth++;
20258 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20259 ndr->depth--;
20260 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
20261 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
20262 ndr_print_uint32(ndr, "level", r->in.level);
20263 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20264 ndr->depth++;
20265 if (r->in.buffer) {
20266 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20268 ndr->depth--;
20269 ndr_print_uint32(ndr, "offered", r->in.offered);
20270 ndr->depth--;
20272 if (flags & NDR_OUT) {
20273 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
20274 ndr->depth++;
20275 ndr_print_ptr(ndr, "count", r->out.count);
20276 ndr->depth++;
20277 ndr_print_uint32(ndr, "count", *r->out.count);
20278 ndr->depth--;
20279 ndr_print_ptr(ndr, "info", r->out.info);
20280 ndr->depth++;
20281 ndr_print_ptr(ndr, "info", *r->out.info);
20282 ndr->depth++;
20283 if (*r->out.info) {
20284 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20285 ndr->depth++;
20286 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20287 char *idx_2=NULL;
20288 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20289 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20290 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20291 free(idx_2);
20294 ndr->depth--;
20296 ndr->depth--;
20297 ndr->depth--;
20298 ndr_print_ptr(ndr, "needed", r->out.needed);
20299 ndr->depth++;
20300 ndr_print_uint32(ndr, "needed", *r->out.needed);
20301 ndr->depth--;
20302 ndr_print_WERROR(ndr, "result", r->out.result);
20303 ndr->depth--;
20305 ndr->depth--;
20308 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
20310 if (flags & NDR_IN) {
20311 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20312 if (r->in.server) {
20313 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20314 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20315 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20316 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20318 if (r->in.info_ctr == NULL) {
20319 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20321 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20322 if (r->in.devmode_ctr == NULL) {
20323 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20325 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20326 if (r->in.secdesc_ctr == NULL) {
20327 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20329 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20331 if (flags & NDR_OUT) {
20332 if (r->out.handle == NULL) {
20333 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20335 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20336 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20338 return NDR_ERR_SUCCESS;
20341 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
20343 uint32_t _ptr_server;
20344 TALLOC_CTX *_mem_save_server_0;
20345 TALLOC_CTX *_mem_save_info_ctr_0;
20346 TALLOC_CTX *_mem_save_devmode_ctr_0;
20347 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20348 TALLOC_CTX *_mem_save_handle_0;
20349 if (flags & NDR_IN) {
20350 ZERO_STRUCT(r->out);
20352 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20353 if (_ptr_server) {
20354 NDR_PULL_ALLOC(ndr, r->in.server);
20355 } else {
20356 r->in.server = NULL;
20358 if (r->in.server) {
20359 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20360 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20361 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20362 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20363 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20364 return 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));
20366 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20367 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20368 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20370 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20371 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20373 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20374 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20375 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20377 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20378 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20380 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20381 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20382 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20383 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20384 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20385 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20387 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20388 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20389 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20391 NDR_PULL_ALLOC(ndr, r->out.handle);
20392 ZERO_STRUCTP(r->out.handle);
20394 if (flags & NDR_OUT) {
20395 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20396 NDR_PULL_ALLOC(ndr, r->out.handle);
20398 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20399 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20400 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20402 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20404 return NDR_ERR_SUCCESS;
20407 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
20409 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
20410 ndr->depth++;
20411 if (flags & NDR_SET_VALUES) {
20412 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20414 if (flags & NDR_IN) {
20415 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
20416 ndr->depth++;
20417 ndr_print_ptr(ndr, "server", r->in.server);
20418 ndr->depth++;
20419 if (r->in.server) {
20420 ndr_print_string(ndr, "server", r->in.server);
20422 ndr->depth--;
20423 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20424 ndr->depth++;
20425 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20426 ndr->depth--;
20427 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20428 ndr->depth++;
20429 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20430 ndr->depth--;
20431 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20432 ndr->depth++;
20433 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20434 ndr->depth--;
20435 ndr->depth--;
20437 if (flags & NDR_OUT) {
20438 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
20439 ndr->depth++;
20440 ndr_print_ptr(ndr, "handle", r->out.handle);
20441 ndr->depth++;
20442 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20443 ndr->depth--;
20444 ndr_print_WERROR(ndr, "result", r->out.result);
20445 ndr->depth--;
20447 ndr->depth--;
20450 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
20452 if (flags & NDR_IN) {
20453 if (r->in.handle == NULL) {
20454 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20456 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20458 if (flags & NDR_OUT) {
20459 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20461 return NDR_ERR_SUCCESS;
20464 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
20466 TALLOC_CTX *_mem_save_handle_0;
20467 if (flags & NDR_IN) {
20468 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20469 NDR_PULL_ALLOC(ndr, r->in.handle);
20471 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20472 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20473 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20474 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20476 if (flags & NDR_OUT) {
20477 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20479 return NDR_ERR_SUCCESS;
20482 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
20484 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
20485 ndr->depth++;
20486 if (flags & NDR_SET_VALUES) {
20487 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20489 if (flags & NDR_IN) {
20490 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
20491 ndr->depth++;
20492 ndr_print_ptr(ndr, "handle", r->in.handle);
20493 ndr->depth++;
20494 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20495 ndr->depth--;
20496 ndr->depth--;
20498 if (flags & NDR_OUT) {
20499 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
20500 ndr->depth++;
20501 ndr_print_WERROR(ndr, "result", r->out.result);
20502 ndr->depth--;
20504 ndr->depth--;
20507 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
20509 if (flags & NDR_IN) {
20510 if (r->in.handle == NULL) {
20511 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20513 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20514 if (r->in.info_ctr == NULL) {
20515 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20517 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20518 if (r->in.devmode_ctr == NULL) {
20519 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20521 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20522 if (r->in.secdesc_ctr == NULL) {
20523 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20525 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20526 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
20528 if (flags & NDR_OUT) {
20529 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20531 return NDR_ERR_SUCCESS;
20534 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
20536 TALLOC_CTX *_mem_save_handle_0;
20537 TALLOC_CTX *_mem_save_info_ctr_0;
20538 TALLOC_CTX *_mem_save_devmode_ctr_0;
20539 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20540 if (flags & NDR_IN) {
20541 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20542 NDR_PULL_ALLOC(ndr, r->in.handle);
20544 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20545 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20546 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20548 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20549 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20551 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20552 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20553 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20555 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20556 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20558 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20559 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20560 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20562 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20563 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20565 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20566 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20567 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20568 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20569 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
20571 if (flags & NDR_OUT) {
20572 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20574 return NDR_ERR_SUCCESS;
20577 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
20579 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
20580 ndr->depth++;
20581 if (flags & NDR_SET_VALUES) {
20582 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20584 if (flags & NDR_IN) {
20585 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
20586 ndr->depth++;
20587 ndr_print_ptr(ndr, "handle", r->in.handle);
20588 ndr->depth++;
20589 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20590 ndr->depth--;
20591 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20592 ndr->depth++;
20593 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20594 ndr->depth--;
20595 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20596 ndr->depth++;
20597 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20598 ndr->depth--;
20599 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20600 ndr->depth++;
20601 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20602 ndr->depth--;
20603 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
20604 ndr->depth--;
20606 if (flags & NDR_OUT) {
20607 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
20608 ndr->depth++;
20609 ndr_print_WERROR(ndr, "result", r->out.result);
20610 ndr->depth--;
20612 ndr->depth--;
20615 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
20617 if (flags & NDR_IN) {
20618 if (r->in.handle == NULL) {
20619 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20621 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20623 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20624 if (r->in.buffer) {
20625 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20629 if (flags & NDR_OUT) {
20630 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20631 if (r->out.info) {
20633 struct ndr_push *_ndr_info;
20634 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20635 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20636 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20637 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20640 if (r->out.needed == NULL) {
20641 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20644 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20646 return NDR_ERR_SUCCESS;
20649 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
20651 uint32_t _ptr_buffer;
20652 uint32_t _ptr_info;
20653 TALLOC_CTX *_mem_save_handle_0;
20654 TALLOC_CTX *_mem_save_buffer_0;
20655 TALLOC_CTX *_mem_save_info_0;
20656 TALLOC_CTX *_mem_save_needed_0;
20657 if (flags & NDR_IN) {
20658 ZERO_STRUCT(r->out);
20660 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20661 NDR_PULL_ALLOC(ndr, r->in.handle);
20663 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20664 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20665 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20667 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20668 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20669 if (_ptr_buffer) {
20670 NDR_PULL_ALLOC(ndr, r->in.buffer);
20671 } else {
20672 r->in.buffer = NULL;
20674 if (r->in.buffer) {
20675 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20676 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20677 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20680 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20681 NDR_PULL_ALLOC(ndr, r->out.needed);
20682 ZERO_STRUCTP(r->out.needed);
20684 if (flags & NDR_OUT) {
20685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20686 if (_ptr_info) {
20687 NDR_PULL_ALLOC(ndr, r->out.info);
20688 } else {
20689 r->out.info = NULL;
20691 if (r->out.info) {
20692 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20693 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20695 struct ndr_pull *_ndr_info;
20696 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20697 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20698 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20699 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20703 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20704 NDR_PULL_ALLOC(ndr, r->out.needed);
20706 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20707 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20708 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20709 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20710 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20712 return NDR_ERR_SUCCESS;
20715 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
20717 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
20718 ndr->depth++;
20719 if (flags & NDR_SET_VALUES) {
20720 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20722 if (flags & NDR_IN) {
20723 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
20724 ndr->depth++;
20725 ndr_print_ptr(ndr, "handle", r->in.handle);
20726 ndr->depth++;
20727 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20728 ndr->depth--;
20729 ndr_print_uint32(ndr, "level", r->in.level);
20730 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20731 ndr->depth++;
20732 if (r->in.buffer) {
20733 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20735 ndr->depth--;
20736 ndr_print_uint32(ndr, "offered", r->in.offered);
20737 ndr->depth--;
20739 if (flags & NDR_OUT) {
20740 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
20741 ndr->depth++;
20742 ndr_print_ptr(ndr, "info", r->out.info);
20743 ndr->depth++;
20744 if (r->out.info) {
20745 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20746 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
20748 ndr->depth--;
20749 ndr_print_ptr(ndr, "needed", r->out.needed);
20750 ndr->depth++;
20751 ndr_print_uint32(ndr, "needed", *r->out.needed);
20752 ndr->depth--;
20753 ndr_print_WERROR(ndr, "result", r->out.result);
20754 ndr->depth--;
20756 ndr->depth--;
20759 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
20761 if (flags & NDR_IN) {
20762 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
20763 if (r->in.servername) {
20764 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20765 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20766 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20767 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20769 if (r->in.info_ctr == NULL) {
20770 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20772 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20774 if (flags & NDR_OUT) {
20775 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20777 return NDR_ERR_SUCCESS;
20780 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
20782 uint32_t _ptr_servername;
20783 TALLOC_CTX *_mem_save_servername_0;
20784 TALLOC_CTX *_mem_save_info_ctr_0;
20785 if (flags & NDR_IN) {
20786 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
20787 if (_ptr_servername) {
20788 NDR_PULL_ALLOC(ndr, r->in.servername);
20789 } else {
20790 r->in.servername = NULL;
20792 if (r->in.servername) {
20793 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20794 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
20795 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20796 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20797 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
20798 return 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));
20800 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
20801 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
20802 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
20804 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20805 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20807 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20808 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20809 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20812 if (flags & NDR_OUT) {
20813 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20815 return NDR_ERR_SUCCESS;
20818 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
20820 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
20821 ndr->depth++;
20822 if (flags & NDR_SET_VALUES) {
20823 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20825 if (flags & NDR_IN) {
20826 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
20827 ndr->depth++;
20828 ndr_print_ptr(ndr, "servername", r->in.servername);
20829 ndr->depth++;
20830 if (r->in.servername) {
20831 ndr_print_string(ndr, "servername", r->in.servername);
20833 ndr->depth--;
20834 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20835 ndr->depth++;
20836 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20837 ndr->depth--;
20838 ndr->depth--;
20840 if (flags & NDR_OUT) {
20841 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
20842 ndr->depth++;
20843 ndr_print_WERROR(ndr, "result", r->out.result);
20844 ndr->depth--;
20846 ndr->depth--;
20849 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
20851 if (flags & NDR_IN) {
20852 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20853 if (r->in.server) {
20854 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20855 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20856 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20857 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20859 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20860 if (r->in.environment) {
20861 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20862 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20863 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20864 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20867 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20868 if (r->in.buffer) {
20869 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20871 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20873 if (flags & NDR_OUT) {
20874 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20875 if (r->out.info) {
20876 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20878 if (r->out.needed == NULL) {
20879 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20882 if (r->out.count == NULL) {
20883 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20886 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20888 return NDR_ERR_SUCCESS;
20891 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
20893 uint32_t _ptr_server;
20894 uint32_t _ptr_environment;
20895 uint32_t _ptr_buffer;
20896 uint32_t _ptr_info;
20897 TALLOC_CTX *_mem_save_server_0;
20898 TALLOC_CTX *_mem_save_environment_0;
20899 TALLOC_CTX *_mem_save_buffer_0;
20900 TALLOC_CTX *_mem_save_info_0;
20901 TALLOC_CTX *_mem_save_needed_0;
20902 TALLOC_CTX *_mem_save_count_0;
20903 if (flags & NDR_IN) {
20904 ZERO_STRUCT(r->out);
20906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20907 if (_ptr_server) {
20908 NDR_PULL_ALLOC(ndr, r->in.server);
20909 } else {
20910 r->in.server = NULL;
20912 if (r->in.server) {
20913 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20914 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20915 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20916 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20917 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20918 return 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));
20920 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20921 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20924 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20925 if (_ptr_environment) {
20926 NDR_PULL_ALLOC(ndr, r->in.environment);
20927 } else {
20928 r->in.environment = NULL;
20930 if (r->in.environment) {
20931 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20932 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20933 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20934 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20935 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20936 return 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));
20938 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20939 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20942 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20943 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20944 if (_ptr_buffer) {
20945 NDR_PULL_ALLOC(ndr, r->in.buffer);
20946 } else {
20947 r->in.buffer = NULL;
20949 if (r->in.buffer) {
20950 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20951 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20952 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20955 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20956 NDR_PULL_ALLOC(ndr, r->out.needed);
20957 ZERO_STRUCTP(r->out.needed);
20958 NDR_PULL_ALLOC(ndr, r->out.count);
20959 ZERO_STRUCTP(r->out.count);
20961 if (flags & NDR_OUT) {
20962 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20963 if (_ptr_info) {
20964 NDR_PULL_ALLOC(ndr, r->out.info);
20965 } else {
20966 r->out.info = NULL;
20968 if (r->out.info) {
20969 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20970 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20971 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20974 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20975 NDR_PULL_ALLOC(ndr, r->out.needed);
20977 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20978 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20979 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20980 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20981 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20982 NDR_PULL_ALLOC(ndr, r->out.count);
20984 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20985 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20986 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20988 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20990 return NDR_ERR_SUCCESS;
20993 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
20995 uint32_t cntr_info_0;
20996 if (flags & NDR_IN) {
20997 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21000 if (flags & NDR_OUT) {
21001 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21002 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21003 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21005 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21006 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21009 return NDR_ERR_SUCCESS;
21012 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
21014 uint32_t cntr_info_0;
21015 TALLOC_CTX *_mem_save_info_0;
21016 if (flags & NDR_IN) {
21017 ZERO_STRUCT(r->out);
21019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21020 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21022 if (flags & NDR_OUT) {
21023 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21024 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21025 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21026 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21027 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21028 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21030 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21031 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21035 return NDR_ERR_SUCCESS;
21038 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
21040 uint32_t cntr_info_2;
21041 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
21042 ndr->depth++;
21043 if (flags & NDR_SET_VALUES) {
21044 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21046 if (flags & NDR_IN) {
21047 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
21048 ndr->depth++;
21049 ndr_print_ptr(ndr, "server", r->in.server);
21050 ndr->depth++;
21051 if (r->in.server) {
21052 ndr_print_string(ndr, "server", r->in.server);
21054 ndr->depth--;
21055 ndr_print_ptr(ndr, "environment", r->in.environment);
21056 ndr->depth++;
21057 if (r->in.environment) {
21058 ndr_print_string(ndr, "environment", r->in.environment);
21060 ndr->depth--;
21061 ndr_print_uint32(ndr, "level", r->in.level);
21062 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21063 ndr->depth++;
21064 if (r->in.buffer) {
21065 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21067 ndr->depth--;
21068 ndr_print_uint32(ndr, "offered", r->in.offered);
21069 ndr->depth--;
21071 if (flags & NDR_OUT) {
21072 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
21073 ndr->depth++;
21074 ndr_print_ptr(ndr, "count", r->out.count);
21075 ndr->depth++;
21076 ndr_print_uint32(ndr, "count", *r->out.count);
21077 ndr->depth--;
21078 ndr_print_ptr(ndr, "info", r->out.info);
21079 ndr->depth++;
21080 ndr_print_ptr(ndr, "info", *r->out.info);
21081 ndr->depth++;
21082 if (*r->out.info) {
21083 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21084 ndr->depth++;
21085 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21086 char *idx_2=NULL;
21087 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21088 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21089 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21090 free(idx_2);
21093 ndr->depth--;
21095 ndr->depth--;
21096 ndr->depth--;
21097 ndr_print_ptr(ndr, "needed", r->out.needed);
21098 ndr->depth++;
21099 ndr_print_uint32(ndr, "needed", *r->out.needed);
21100 ndr->depth--;
21101 ndr_print_WERROR(ndr, "result", r->out.result);
21102 ndr->depth--;
21104 ndr->depth--;
21107 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
21109 if (flags & NDR_IN) {
21110 if (r->in.handle == NULL) {
21111 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21113 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21114 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
21115 if (r->in.architecture) {
21116 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21117 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21118 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21119 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21122 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21123 if (r->in.buffer) {
21124 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21128 if (flags & NDR_OUT) {
21129 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21130 if (r->out.info) {
21132 struct ndr_push *_ndr_info;
21133 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21134 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21135 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21136 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21139 if (r->out.needed == NULL) {
21140 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21143 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21145 return NDR_ERR_SUCCESS;
21148 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
21150 uint32_t _ptr_architecture;
21151 uint32_t _ptr_buffer;
21152 uint32_t _ptr_info;
21153 TALLOC_CTX *_mem_save_handle_0;
21154 TALLOC_CTX *_mem_save_architecture_0;
21155 TALLOC_CTX *_mem_save_buffer_0;
21156 TALLOC_CTX *_mem_save_info_0;
21157 TALLOC_CTX *_mem_save_needed_0;
21158 if (flags & NDR_IN) {
21159 ZERO_STRUCT(r->out);
21161 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21162 NDR_PULL_ALLOC(ndr, r->in.handle);
21164 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21165 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21166 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21167 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21168 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
21169 if (_ptr_architecture) {
21170 NDR_PULL_ALLOC(ndr, r->in.architecture);
21171 } else {
21172 r->in.architecture = NULL;
21174 if (r->in.architecture) {
21175 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
21176 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
21177 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21178 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21179 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21180 return 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));
21182 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21183 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21184 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
21186 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21188 if (_ptr_buffer) {
21189 NDR_PULL_ALLOC(ndr, r->in.buffer);
21190 } else {
21191 r->in.buffer = NULL;
21193 if (r->in.buffer) {
21194 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21195 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21196 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21199 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21200 NDR_PULL_ALLOC(ndr, r->out.needed);
21201 ZERO_STRUCTP(r->out.needed);
21203 if (flags & NDR_OUT) {
21204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21205 if (_ptr_info) {
21206 NDR_PULL_ALLOC(ndr, r->out.info);
21207 } else {
21208 r->out.info = NULL;
21210 if (r->out.info) {
21211 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21212 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21214 struct ndr_pull *_ndr_info;
21215 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21216 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21217 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21218 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21222 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21223 NDR_PULL_ALLOC(ndr, r->out.needed);
21225 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21226 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21227 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21229 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21231 return NDR_ERR_SUCCESS;
21234 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
21236 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
21237 ndr->depth++;
21238 if (flags & NDR_SET_VALUES) {
21239 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21241 if (flags & NDR_IN) {
21242 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
21243 ndr->depth++;
21244 ndr_print_ptr(ndr, "handle", r->in.handle);
21245 ndr->depth++;
21246 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21247 ndr->depth--;
21248 ndr_print_ptr(ndr, "architecture", r->in.architecture);
21249 ndr->depth++;
21250 if (r->in.architecture) {
21251 ndr_print_string(ndr, "architecture", r->in.architecture);
21253 ndr->depth--;
21254 ndr_print_uint32(ndr, "level", r->in.level);
21255 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21256 ndr->depth++;
21257 if (r->in.buffer) {
21258 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21260 ndr->depth--;
21261 ndr_print_uint32(ndr, "offered", r->in.offered);
21262 ndr->depth--;
21264 if (flags & NDR_OUT) {
21265 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
21266 ndr->depth++;
21267 ndr_print_ptr(ndr, "info", r->out.info);
21268 ndr->depth++;
21269 if (r->out.info) {
21270 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21271 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
21273 ndr->depth--;
21274 ndr_print_ptr(ndr, "needed", r->out.needed);
21275 ndr->depth++;
21276 ndr_print_uint32(ndr, "needed", *r->out.needed);
21277 ndr->depth--;
21278 ndr_print_WERROR(ndr, "result", r->out.result);
21279 ndr->depth--;
21281 ndr->depth--;
21284 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21286 if (flags & NDR_IN) {
21287 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21288 if (r->in.server) {
21289 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21290 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21291 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21292 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21294 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21295 if (r->in.environment) {
21296 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21297 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21298 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21299 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21302 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21303 if (r->in.buffer) {
21304 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21308 if (flags & NDR_OUT) {
21309 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21310 if (r->out.info) {
21312 struct ndr_push *_ndr_info;
21313 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21314 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21315 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21316 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21319 if (r->out.needed == NULL) {
21320 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21323 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21325 return NDR_ERR_SUCCESS;
21328 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
21330 uint32_t _ptr_server;
21331 uint32_t _ptr_environment;
21332 uint32_t _ptr_buffer;
21333 uint32_t _ptr_info;
21334 TALLOC_CTX *_mem_save_server_0;
21335 TALLOC_CTX *_mem_save_environment_0;
21336 TALLOC_CTX *_mem_save_buffer_0;
21337 TALLOC_CTX *_mem_save_info_0;
21338 TALLOC_CTX *_mem_save_needed_0;
21339 if (flags & NDR_IN) {
21340 ZERO_STRUCT(r->out);
21342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21343 if (_ptr_server) {
21344 NDR_PULL_ALLOC(ndr, r->in.server);
21345 } else {
21346 r->in.server = NULL;
21348 if (r->in.server) {
21349 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21350 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21351 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21352 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21353 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21354 return 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));
21356 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21357 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21361 if (_ptr_environment) {
21362 NDR_PULL_ALLOC(ndr, r->in.environment);
21363 } else {
21364 r->in.environment = NULL;
21366 if (r->in.environment) {
21367 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21368 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21369 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21370 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21371 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21372 return 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));
21374 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21375 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21379 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21380 if (_ptr_buffer) {
21381 NDR_PULL_ALLOC(ndr, r->in.buffer);
21382 } else {
21383 r->in.buffer = NULL;
21385 if (r->in.buffer) {
21386 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21387 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21388 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21389 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21391 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21392 NDR_PULL_ALLOC(ndr, r->out.needed);
21393 ZERO_STRUCTP(r->out.needed);
21395 if (flags & NDR_OUT) {
21396 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21397 if (_ptr_info) {
21398 NDR_PULL_ALLOC(ndr, r->out.info);
21399 } else {
21400 r->out.info = NULL;
21402 if (r->out.info) {
21403 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21404 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21406 struct ndr_pull *_ndr_info;
21407 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21408 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21409 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21410 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21412 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21414 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21415 NDR_PULL_ALLOC(ndr, r->out.needed);
21417 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21418 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21421 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21423 return NDR_ERR_SUCCESS;
21426 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21428 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
21429 ndr->depth++;
21430 if (flags & NDR_SET_VALUES) {
21431 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21433 if (flags & NDR_IN) {
21434 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
21435 ndr->depth++;
21436 ndr_print_ptr(ndr, "server", r->in.server);
21437 ndr->depth++;
21438 if (r->in.server) {
21439 ndr_print_string(ndr, "server", r->in.server);
21441 ndr->depth--;
21442 ndr_print_ptr(ndr, "environment", r->in.environment);
21443 ndr->depth++;
21444 if (r->in.environment) {
21445 ndr_print_string(ndr, "environment", r->in.environment);
21447 ndr->depth--;
21448 ndr_print_uint32(ndr, "level", r->in.level);
21449 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21450 ndr->depth++;
21451 if (r->in.buffer) {
21452 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21454 ndr->depth--;
21455 ndr_print_uint32(ndr, "offered", r->in.offered);
21456 ndr->depth--;
21458 if (flags & NDR_OUT) {
21459 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
21460 ndr->depth++;
21461 ndr_print_ptr(ndr, "info", r->out.info);
21462 ndr->depth++;
21463 if (r->out.info) {
21464 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21465 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
21467 ndr->depth--;
21468 ndr_print_ptr(ndr, "needed", r->out.needed);
21469 ndr->depth++;
21470 ndr_print_uint32(ndr, "needed", *r->out.needed);
21471 ndr->depth--;
21472 ndr_print_WERROR(ndr, "result", r->out.result);
21473 ndr->depth--;
21475 ndr->depth--;
21478 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
21480 if (flags & NDR_IN) {
21481 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21482 if (r->in.server) {
21483 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21485 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21486 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21488 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21489 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21490 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21491 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21492 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21493 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21494 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21495 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21497 if (flags & NDR_OUT) {
21498 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21500 return NDR_ERR_SUCCESS;
21503 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
21505 uint32_t _ptr_server;
21506 TALLOC_CTX *_mem_save_server_0;
21507 if (flags & NDR_IN) {
21508 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21509 if (_ptr_server) {
21510 NDR_PULL_ALLOC(ndr, r->in.server);
21511 } else {
21512 r->in.server = NULL;
21514 if (r->in.server) {
21515 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21516 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21517 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21518 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21519 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21520 return 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));
21522 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21523 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21526 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21527 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21528 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21529 return 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));
21531 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21532 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21533 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
21534 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
21535 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
21536 return 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));
21538 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
21539 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
21541 if (flags & NDR_OUT) {
21542 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21544 return NDR_ERR_SUCCESS;
21547 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
21549 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
21550 ndr->depth++;
21551 if (flags & NDR_SET_VALUES) {
21552 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21554 if (flags & NDR_IN) {
21555 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
21556 ndr->depth++;
21557 ndr_print_ptr(ndr, "server", r->in.server);
21558 ndr->depth++;
21559 if (r->in.server) {
21560 ndr_print_string(ndr, "server", r->in.server);
21562 ndr->depth--;
21563 ndr_print_string(ndr, "architecture", r->in.architecture);
21564 ndr_print_string(ndr, "driver", r->in.driver);
21565 ndr->depth--;
21567 if (flags & NDR_OUT) {
21568 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
21569 ndr->depth++;
21570 ndr_print_WERROR(ndr, "result", r->out.result);
21571 ndr->depth--;
21573 ndr->depth--;
21576 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
21578 if (flags & NDR_IN) {
21579 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21580 if (r->in.server) {
21581 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21582 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21583 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21584 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21586 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21587 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21588 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21589 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21590 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, 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.path_name, CH_UTF16)));
21593 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));
21594 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, 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.print_processor_name, CH_UTF16)));
21597 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));
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_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *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.path_name));
21636 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
21637 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
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.path_name), ndr_get_array_length(ndr, &r->in.path_name));
21640 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
21641 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));
21642 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
21643 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
21644 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
21645 return 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));
21647 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
21648 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));
21650 if (flags & NDR_OUT) {
21651 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21653 return NDR_ERR_SUCCESS;
21656 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
21658 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
21659 ndr->depth++;
21660 if (flags & NDR_SET_VALUES) {
21661 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21663 if (flags & NDR_IN) {
21664 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
21665 ndr->depth++;
21666 ndr_print_ptr(ndr, "server", r->in.server);
21667 ndr->depth++;
21668 if (r->in.server) {
21669 ndr_print_string(ndr, "server", r->in.server);
21671 ndr->depth--;
21672 ndr_print_string(ndr, "architecture", r->in.architecture);
21673 ndr_print_string(ndr, "path_name", r->in.path_name);
21674 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
21675 ndr->depth--;
21677 if (flags & NDR_OUT) {
21678 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
21679 ndr->depth++;
21680 ndr_print_WERROR(ndr, "result", r->out.result);
21681 ndr->depth--;
21683 ndr->depth--;
21686 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
21688 if (flags & NDR_IN) {
21689 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21690 if (r->in.servername) {
21691 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21692 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21693 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21694 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21696 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21697 if (r->in.environment) {
21698 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21699 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21700 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21701 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21704 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21705 if (r->in.buffer) {
21706 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21710 if (flags & NDR_OUT) {
21711 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21712 if (r->out.info) {
21713 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21715 if (r->out.needed == NULL) {
21716 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21719 if (r->out.count == NULL) {
21720 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21723 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21725 return NDR_ERR_SUCCESS;
21728 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
21730 uint32_t _ptr_servername;
21731 uint32_t _ptr_environment;
21732 uint32_t _ptr_buffer;
21733 uint32_t _ptr_info;
21734 TALLOC_CTX *_mem_save_servername_0;
21735 TALLOC_CTX *_mem_save_environment_0;
21736 TALLOC_CTX *_mem_save_buffer_0;
21737 TALLOC_CTX *_mem_save_info_0;
21738 TALLOC_CTX *_mem_save_needed_0;
21739 TALLOC_CTX *_mem_save_count_0;
21740 if (flags & NDR_IN) {
21741 ZERO_STRUCT(r->out);
21743 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
21744 if (_ptr_servername) {
21745 NDR_PULL_ALLOC(ndr, r->in.servername);
21746 } else {
21747 r->in.servername = NULL;
21749 if (r->in.servername) {
21750 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21751 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21752 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21753 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21754 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
21755 return 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));
21757 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
21758 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
21759 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21761 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21762 if (_ptr_environment) {
21763 NDR_PULL_ALLOC(ndr, r->in.environment);
21764 } else {
21765 r->in.environment = NULL;
21767 if (r->in.environment) {
21768 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21769 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21770 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21771 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21772 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21773 return 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));
21775 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21776 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21777 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21779 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21780 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21781 if (_ptr_buffer) {
21782 NDR_PULL_ALLOC(ndr, r->in.buffer);
21783 } else {
21784 r->in.buffer = NULL;
21786 if (r->in.buffer) {
21787 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21788 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21789 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21793 NDR_PULL_ALLOC(ndr, r->out.needed);
21794 ZERO_STRUCTP(r->out.needed);
21795 NDR_PULL_ALLOC(ndr, r->out.count);
21796 ZERO_STRUCTP(r->out.count);
21798 if (flags & NDR_OUT) {
21799 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21800 if (_ptr_info) {
21801 NDR_PULL_ALLOC(ndr, r->out.info);
21802 } else {
21803 r->out.info = NULL;
21805 if (r->out.info) {
21806 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21807 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21808 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21809 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21811 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21812 NDR_PULL_ALLOC(ndr, r->out.needed);
21814 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21815 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21816 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21817 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21818 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21819 NDR_PULL_ALLOC(ndr, r->out.count);
21821 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21822 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21823 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21824 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21825 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21827 return NDR_ERR_SUCCESS;
21830 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
21832 uint32_t cntr_info_0;
21833 if (flags & NDR_IN) {
21834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21837 if (flags & NDR_OUT) {
21838 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21839 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21840 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21842 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21843 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21846 return NDR_ERR_SUCCESS;
21849 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
21851 uint32_t cntr_info_0;
21852 TALLOC_CTX *_mem_save_info_0;
21853 if (flags & NDR_IN) {
21854 ZERO_STRUCT(r->out);
21856 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21857 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21859 if (flags & NDR_OUT) {
21860 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21861 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21862 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21863 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21864 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21865 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21867 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21868 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21872 return NDR_ERR_SUCCESS;
21875 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
21877 uint32_t cntr_info_2;
21878 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
21879 ndr->depth++;
21880 if (flags & NDR_SET_VALUES) {
21881 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21883 if (flags & NDR_IN) {
21884 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
21885 ndr->depth++;
21886 ndr_print_ptr(ndr, "servername", r->in.servername);
21887 ndr->depth++;
21888 if (r->in.servername) {
21889 ndr_print_string(ndr, "servername", r->in.servername);
21891 ndr->depth--;
21892 ndr_print_ptr(ndr, "environment", r->in.environment);
21893 ndr->depth++;
21894 if (r->in.environment) {
21895 ndr_print_string(ndr, "environment", r->in.environment);
21897 ndr->depth--;
21898 ndr_print_uint32(ndr, "level", r->in.level);
21899 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21900 ndr->depth++;
21901 if (r->in.buffer) {
21902 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21904 ndr->depth--;
21905 ndr_print_uint32(ndr, "offered", r->in.offered);
21906 ndr->depth--;
21908 if (flags & NDR_OUT) {
21909 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
21910 ndr->depth++;
21911 ndr_print_ptr(ndr, "count", r->out.count);
21912 ndr->depth++;
21913 ndr_print_uint32(ndr, "count", *r->out.count);
21914 ndr->depth--;
21915 ndr_print_ptr(ndr, "info", r->out.info);
21916 ndr->depth++;
21917 ndr_print_ptr(ndr, "info", *r->out.info);
21918 ndr->depth++;
21919 if (*r->out.info) {
21920 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21921 ndr->depth++;
21922 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21923 char *idx_2=NULL;
21924 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21925 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21926 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21927 free(idx_2);
21930 ndr->depth--;
21932 ndr->depth--;
21933 ndr->depth--;
21934 ndr_print_ptr(ndr, "needed", r->out.needed);
21935 ndr->depth++;
21936 ndr_print_uint32(ndr, "needed", *r->out.needed);
21937 ndr->depth--;
21938 ndr_print_WERROR(ndr, "result", r->out.result);
21939 ndr->depth--;
21941 ndr->depth--;
21944 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
21946 if (flags & NDR_IN) {
21947 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21948 if (r->in.server) {
21949 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21950 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21951 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21952 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21954 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21955 if (r->in.environment) {
21956 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21957 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21958 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21959 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21962 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21963 if (r->in.buffer) {
21964 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21966 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21968 if (flags & NDR_OUT) {
21969 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21970 if (r->out.info) {
21972 struct ndr_push *_ndr_info;
21973 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21974 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21975 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21976 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21979 if (r->out.needed == NULL) {
21980 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21983 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21985 return NDR_ERR_SUCCESS;
21988 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
21990 uint32_t _ptr_server;
21991 uint32_t _ptr_environment;
21992 uint32_t _ptr_buffer;
21993 uint32_t _ptr_info;
21994 TALLOC_CTX *_mem_save_server_0;
21995 TALLOC_CTX *_mem_save_environment_0;
21996 TALLOC_CTX *_mem_save_buffer_0;
21997 TALLOC_CTX *_mem_save_info_0;
21998 TALLOC_CTX *_mem_save_needed_0;
21999 if (flags & NDR_IN) {
22000 ZERO_STRUCT(r->out);
22002 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22003 if (_ptr_server) {
22004 NDR_PULL_ALLOC(ndr, r->in.server);
22005 } else {
22006 r->in.server = NULL;
22008 if (r->in.server) {
22009 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22010 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22011 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22012 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22013 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22014 return 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));
22016 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22017 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22018 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22020 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22021 if (_ptr_environment) {
22022 NDR_PULL_ALLOC(ndr, r->in.environment);
22023 } else {
22024 r->in.environment = NULL;
22026 if (r->in.environment) {
22027 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22028 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22029 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22030 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22031 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22032 return 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));
22034 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22035 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22036 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22038 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22039 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22040 if (_ptr_buffer) {
22041 NDR_PULL_ALLOC(ndr, r->in.buffer);
22042 } else {
22043 r->in.buffer = NULL;
22045 if (r->in.buffer) {
22046 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22047 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22048 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22051 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22052 NDR_PULL_ALLOC(ndr, r->out.needed);
22053 ZERO_STRUCTP(r->out.needed);
22055 if (flags & NDR_OUT) {
22056 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22057 if (_ptr_info) {
22058 NDR_PULL_ALLOC(ndr, r->out.info);
22059 } else {
22060 r->out.info = NULL;
22062 if (r->out.info) {
22063 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22064 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22066 struct ndr_pull *_ndr_info;
22067 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22068 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22069 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22070 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22074 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22075 NDR_PULL_ALLOC(ndr, r->out.needed);
22077 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22078 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22079 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22081 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22083 return NDR_ERR_SUCCESS;
22086 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22088 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
22089 ndr->depth++;
22090 if (flags & NDR_SET_VALUES) {
22091 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22093 if (flags & NDR_IN) {
22094 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
22095 ndr->depth++;
22096 ndr_print_ptr(ndr, "server", r->in.server);
22097 ndr->depth++;
22098 if (r->in.server) {
22099 ndr_print_string(ndr, "server", r->in.server);
22101 ndr->depth--;
22102 ndr_print_ptr(ndr, "environment", r->in.environment);
22103 ndr->depth++;
22104 if (r->in.environment) {
22105 ndr_print_string(ndr, "environment", r->in.environment);
22107 ndr->depth--;
22108 ndr_print_uint32(ndr, "level", r->in.level);
22109 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22110 ndr->depth++;
22111 if (r->in.buffer) {
22112 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22114 ndr->depth--;
22115 ndr_print_uint32(ndr, "offered", r->in.offered);
22116 ndr->depth--;
22118 if (flags & NDR_OUT) {
22119 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
22120 ndr->depth++;
22121 ndr_print_ptr(ndr, "info", r->out.info);
22122 ndr->depth++;
22123 if (r->out.info) {
22124 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22125 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
22127 ndr->depth--;
22128 ndr_print_ptr(ndr, "needed", r->out.needed);
22129 ndr->depth++;
22130 ndr_print_uint32(ndr, "needed", *r->out.needed);
22131 ndr->depth--;
22132 ndr_print_WERROR(ndr, "result", r->out.result);
22133 ndr->depth--;
22135 ndr->depth--;
22138 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
22140 if (flags & NDR_IN) {
22141 if (r->in.handle == NULL) {
22142 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22144 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22146 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22147 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22149 if (flags & NDR_OUT) {
22150 if (r->out.job_id == NULL) {
22151 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22153 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
22154 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22156 return NDR_ERR_SUCCESS;
22159 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
22161 TALLOC_CTX *_mem_save_handle_0;
22162 TALLOC_CTX *_mem_save_job_id_0;
22163 if (flags & NDR_IN) {
22164 ZERO_STRUCT(r->out);
22166 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22167 NDR_PULL_ALLOC(ndr, r->in.handle);
22169 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22170 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22171 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22172 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22174 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22175 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22176 NDR_PULL_ALLOC(ndr, r->out.job_id);
22177 ZERO_STRUCTP(r->out.job_id);
22179 if (flags & NDR_OUT) {
22180 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22181 NDR_PULL_ALLOC(ndr, r->out.job_id);
22183 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
22184 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
22185 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
22186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
22187 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22189 return NDR_ERR_SUCCESS;
22192 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
22194 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
22195 ndr->depth++;
22196 if (flags & NDR_SET_VALUES) {
22197 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22199 if (flags & NDR_IN) {
22200 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
22201 ndr->depth++;
22202 ndr_print_ptr(ndr, "handle", r->in.handle);
22203 ndr->depth++;
22204 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22205 ndr->depth--;
22206 ndr_print_uint32(ndr, "level", r->in.level);
22207 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22208 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
22209 ndr->depth--;
22211 if (flags & NDR_OUT) {
22212 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
22213 ndr->depth++;
22214 ndr_print_ptr(ndr, "job_id", r->out.job_id);
22215 ndr->depth++;
22216 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
22217 ndr->depth--;
22218 ndr_print_WERROR(ndr, "result", r->out.result);
22219 ndr->depth--;
22221 ndr->depth--;
22224 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
22226 if (flags & NDR_IN) {
22227 if (r->in.handle == NULL) {
22228 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22230 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22232 if (flags & NDR_OUT) {
22233 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22235 return NDR_ERR_SUCCESS;
22238 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
22240 TALLOC_CTX *_mem_save_handle_0;
22241 if (flags & NDR_IN) {
22242 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22243 NDR_PULL_ALLOC(ndr, r->in.handle);
22245 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22246 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22247 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22248 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22250 if (flags & NDR_OUT) {
22251 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22253 return NDR_ERR_SUCCESS;
22256 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
22258 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
22259 ndr->depth++;
22260 if (flags & NDR_SET_VALUES) {
22261 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22263 if (flags & NDR_IN) {
22264 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
22265 ndr->depth++;
22266 ndr_print_ptr(ndr, "handle", r->in.handle);
22267 ndr->depth++;
22268 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22269 ndr->depth--;
22270 ndr->depth--;
22272 if (flags & NDR_OUT) {
22273 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
22274 ndr->depth++;
22275 ndr_print_WERROR(ndr, "result", r->out.result);
22276 ndr->depth--;
22278 ndr->depth--;
22281 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
22283 if (flags & NDR_IN) {
22284 if (r->in.handle == NULL) {
22285 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22287 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22288 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
22289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
22291 if (flags & NDR_OUT) {
22292 if (r->out.num_written == NULL) {
22293 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
22296 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22298 return NDR_ERR_SUCCESS;
22301 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
22303 TALLOC_CTX *_mem_save_handle_0;
22304 TALLOC_CTX *_mem_save_num_written_0;
22305 if (flags & NDR_IN) {
22306 ZERO_STRUCT(r->out);
22308 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22309 NDR_PULL_ALLOC(ndr, r->in.handle);
22311 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22312 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22313 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22314 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22315 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
22316 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
22317 NDR_PULL_ALLOC(ndr, r->out.num_written);
22318 ZERO_STRUCTP(r->out.num_written);
22320 if (flags & NDR_OUT) {
22321 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22322 NDR_PULL_ALLOC(ndr, r->out.num_written);
22324 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
22325 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
22326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
22327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
22328 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22330 return NDR_ERR_SUCCESS;
22333 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
22335 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
22336 ndr->depth++;
22337 if (flags & NDR_SET_VALUES) {
22338 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22340 if (flags & NDR_IN) {
22341 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
22342 ndr->depth++;
22343 ndr_print_ptr(ndr, "handle", r->in.handle);
22344 ndr->depth++;
22345 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22346 ndr->depth--;
22347 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
22348 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
22349 ndr->depth--;
22351 if (flags & NDR_OUT) {
22352 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
22353 ndr->depth++;
22354 ndr_print_ptr(ndr, "num_written", r->out.num_written);
22355 ndr->depth++;
22356 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
22357 ndr->depth--;
22358 ndr_print_WERROR(ndr, "result", r->out.result);
22359 ndr->depth--;
22361 ndr->depth--;
22364 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
22366 if (flags & NDR_IN) {
22367 if (r->in.handle == NULL) {
22368 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22370 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22372 if (flags & NDR_OUT) {
22373 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22375 return NDR_ERR_SUCCESS;
22378 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
22380 TALLOC_CTX *_mem_save_handle_0;
22381 if (flags & NDR_IN) {
22382 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22383 NDR_PULL_ALLOC(ndr, r->in.handle);
22385 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22386 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22387 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22388 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22390 if (flags & NDR_OUT) {
22391 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22393 return NDR_ERR_SUCCESS;
22396 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
22398 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
22399 ndr->depth++;
22400 if (flags & NDR_SET_VALUES) {
22401 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22403 if (flags & NDR_IN) {
22404 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
22405 ndr->depth++;
22406 ndr_print_ptr(ndr, "handle", r->in.handle);
22407 ndr->depth++;
22408 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22409 ndr->depth--;
22410 ndr->depth--;
22412 if (flags & NDR_OUT) {
22413 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
22414 ndr->depth++;
22415 ndr_print_WERROR(ndr, "result", r->out.result);
22416 ndr->depth--;
22418 ndr->depth--;
22421 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
22423 if (flags & NDR_IN) {
22424 if (r->in.handle == NULL) {
22425 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22427 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22429 if (flags & NDR_OUT) {
22430 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22432 return NDR_ERR_SUCCESS;
22435 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
22437 TALLOC_CTX *_mem_save_handle_0;
22438 if (flags & NDR_IN) {
22439 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22440 NDR_PULL_ALLOC(ndr, r->in.handle);
22442 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22443 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22444 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22447 if (flags & NDR_OUT) {
22448 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22450 return NDR_ERR_SUCCESS;
22453 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
22455 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
22456 ndr->depth++;
22457 if (flags & NDR_SET_VALUES) {
22458 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22460 if (flags & NDR_IN) {
22461 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
22462 ndr->depth++;
22463 ndr_print_ptr(ndr, "handle", r->in.handle);
22464 ndr->depth++;
22465 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22466 ndr->depth--;
22467 ndr->depth--;
22469 if (flags & NDR_OUT) {
22470 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
22471 ndr->depth++;
22472 ndr_print_WERROR(ndr, "result", r->out.result);
22473 ndr->depth--;
22475 ndr->depth--;
22478 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
22480 if (flags & NDR_IN) {
22481 if (r->in.handle == NULL) {
22482 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22484 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
22487 if (flags & NDR_OUT) {
22488 if (r->out.data == NULL) {
22489 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22491 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
22492 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
22493 if (r->out._data_size == NULL) {
22494 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22496 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
22497 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22499 return NDR_ERR_SUCCESS;
22502 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
22504 TALLOC_CTX *_mem_save_handle_0;
22505 TALLOC_CTX *_mem_save__data_size_0;
22506 if (flags & NDR_IN) {
22507 ZERO_STRUCT(r->out);
22509 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22510 NDR_PULL_ALLOC(ndr, r->in.handle);
22512 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22513 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22514 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22515 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22516 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
22517 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
22518 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
22519 NDR_PULL_ALLOC(ndr, r->out._data_size);
22520 ZERO_STRUCTP(r->out._data_size);
22522 if (flags & NDR_OUT) {
22523 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
22524 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22525 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
22527 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
22528 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22529 NDR_PULL_ALLOC(ndr, r->out._data_size);
22531 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
22532 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
22533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
22534 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
22535 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22536 if (r->out.data) {
22537 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
22540 return NDR_ERR_SUCCESS;
22543 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
22545 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
22546 ndr->depth++;
22547 if (flags & NDR_SET_VALUES) {
22548 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22550 if (flags & NDR_IN) {
22551 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
22552 ndr->depth++;
22553 ndr_print_ptr(ndr, "handle", r->in.handle);
22554 ndr->depth++;
22555 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22556 ndr->depth--;
22557 ndr_print_uint32(ndr, "data_size", r->in.data_size);
22558 ndr->depth--;
22560 if (flags & NDR_OUT) {
22561 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
22562 ndr->depth++;
22563 ndr_print_ptr(ndr, "data", r->out.data);
22564 ndr->depth++;
22565 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
22566 ndr->depth--;
22567 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
22568 ndr->depth++;
22569 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
22570 ndr->depth--;
22571 ndr_print_WERROR(ndr, "result", r->out.result);
22572 ndr->depth--;
22574 ndr->depth--;
22577 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
22579 if (flags & NDR_IN) {
22580 if (r->in.handle == NULL) {
22581 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22583 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22585 if (flags & NDR_OUT) {
22586 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22588 return NDR_ERR_SUCCESS;
22591 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
22593 TALLOC_CTX *_mem_save_handle_0;
22594 if (flags & NDR_IN) {
22595 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22596 NDR_PULL_ALLOC(ndr, r->in.handle);
22598 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22599 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22600 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22603 if (flags & NDR_OUT) {
22604 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22606 return NDR_ERR_SUCCESS;
22609 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
22611 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
22612 ndr->depth++;
22613 if (flags & NDR_SET_VALUES) {
22614 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22616 if (flags & NDR_IN) {
22617 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
22618 ndr->depth++;
22619 ndr_print_ptr(ndr, "handle", r->in.handle);
22620 ndr->depth++;
22621 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22622 ndr->depth--;
22623 ndr->depth--;
22625 if (flags & NDR_OUT) {
22626 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
22627 ndr->depth++;
22628 ndr_print_WERROR(ndr, "result", r->out.result);
22629 ndr->depth--;
22631 ndr->depth--;
22634 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
22636 if (flags & NDR_IN) {
22637 if (r->in.handle == NULL) {
22638 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22640 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22641 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22642 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22643 if (r->in.buffer) {
22644 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
22645 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
22647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22649 if (flags & NDR_OUT) {
22650 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
22651 if (r->out.buffer) {
22652 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
22653 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
22655 if (r->out.needed == NULL) {
22656 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22659 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22661 return NDR_ERR_SUCCESS;
22664 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
22666 uint32_t _ptr_buffer;
22667 TALLOC_CTX *_mem_save_handle_0;
22668 TALLOC_CTX *_mem_save_buffer_0;
22669 TALLOC_CTX *_mem_save_needed_0;
22670 if (flags & NDR_IN) {
22671 ZERO_STRUCT(r->out);
22673 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22674 NDR_PULL_ALLOC(ndr, r->in.handle);
22676 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22677 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22678 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22679 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22680 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22682 if (_ptr_buffer) {
22683 NDR_PULL_ALLOC(ndr, r->in.buffer);
22684 } else {
22685 r->in.buffer = NULL;
22687 if (r->in.buffer) {
22688 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22689 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22690 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
22691 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
22692 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
22693 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22695 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22696 NDR_PULL_ALLOC(ndr, r->out.needed);
22697 ZERO_STRUCTP(r->out.needed);
22698 if (r->in.buffer) {
22699 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
22702 if (flags & NDR_OUT) {
22703 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22704 if (_ptr_buffer) {
22705 NDR_PULL_ALLOC(ndr, r->out.buffer);
22706 } else {
22707 r->out.buffer = NULL;
22709 if (r->out.buffer) {
22710 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22711 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
22712 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
22713 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
22714 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
22715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22717 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22718 NDR_PULL_ALLOC(ndr, r->out.needed);
22720 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22721 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22724 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22725 if (r->out.buffer) {
22726 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
22729 return NDR_ERR_SUCCESS;
22732 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
22734 ndr_print_struct(ndr, name, "spoolss_AddJob");
22735 ndr->depth++;
22736 if (flags & NDR_SET_VALUES) {
22737 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22739 if (flags & NDR_IN) {
22740 ndr_print_struct(ndr, "in", "spoolss_AddJob");
22741 ndr->depth++;
22742 ndr_print_ptr(ndr, "handle", r->in.handle);
22743 ndr->depth++;
22744 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22745 ndr->depth--;
22746 ndr_print_uint32(ndr, "level", r->in.level);
22747 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22748 ndr->depth++;
22749 if (r->in.buffer) {
22750 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
22752 ndr->depth--;
22753 ndr_print_uint32(ndr, "offered", r->in.offered);
22754 ndr->depth--;
22756 if (flags & NDR_OUT) {
22757 ndr_print_struct(ndr, "out", "spoolss_AddJob");
22758 ndr->depth++;
22759 ndr_print_ptr(ndr, "buffer", r->out.buffer);
22760 ndr->depth++;
22761 if (r->out.buffer) {
22762 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
22764 ndr->depth--;
22765 ndr_print_ptr(ndr, "needed", r->out.needed);
22766 ndr->depth++;
22767 ndr_print_uint32(ndr, "needed", *r->out.needed);
22768 ndr->depth--;
22769 ndr_print_WERROR(ndr, "result", r->out.result);
22770 ndr->depth--;
22772 ndr->depth--;
22775 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
22777 if (flags & NDR_IN) {
22778 if (r->in.handle == NULL) {
22779 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22781 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
22784 if (flags & NDR_OUT) {
22785 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22787 return NDR_ERR_SUCCESS;
22790 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
22792 TALLOC_CTX *_mem_save_handle_0;
22793 if (flags & NDR_IN) {
22794 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22795 NDR_PULL_ALLOC(ndr, r->in.handle);
22797 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22798 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22799 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22800 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
22803 if (flags & NDR_OUT) {
22804 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22806 return NDR_ERR_SUCCESS;
22809 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
22811 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
22812 ndr->depth++;
22813 if (flags & NDR_SET_VALUES) {
22814 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22816 if (flags & NDR_IN) {
22817 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
22818 ndr->depth++;
22819 ndr_print_ptr(ndr, "handle", r->in.handle);
22820 ndr->depth++;
22821 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22822 ndr->depth--;
22823 ndr_print_uint32(ndr, "jobid", r->in.jobid);
22824 ndr->depth--;
22826 if (flags & NDR_OUT) {
22827 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
22828 ndr->depth++;
22829 ndr_print_WERROR(ndr, "result", r->out.result);
22830 ndr->depth--;
22832 ndr->depth--;
22835 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
22837 if (flags & NDR_IN) {
22838 if (r->in.handle == NULL) {
22839 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22841 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22842 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22843 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22844 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22845 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));
22846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22848 if (flags & NDR_OUT) {
22849 if (r->out.type == NULL) {
22850 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22852 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
22853 if (r->out.data == NULL) {
22854 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22856 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
22857 if (r->out.needed == NULL) {
22858 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22861 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22863 return NDR_ERR_SUCCESS;
22866 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
22868 TALLOC_CTX *_mem_save_handle_0;
22869 TALLOC_CTX *_mem_save_type_0;
22870 TALLOC_CTX *_mem_save_data_0;
22871 TALLOC_CTX *_mem_save_needed_0;
22872 if (flags & NDR_IN) {
22873 ZERO_STRUCT(r->out);
22875 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22876 NDR_PULL_ALLOC(ndr, r->in.handle);
22878 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22879 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22880 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22882 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22883 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22884 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22885 return 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));
22887 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22888 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));
22889 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22890 NDR_PULL_ALLOC(ndr, r->out.type);
22891 ZERO_STRUCTP(r->out.type);
22892 NDR_PULL_ALLOC(ndr, r->out.data);
22893 ZERO_STRUCTP(r->out.data);
22894 NDR_PULL_ALLOC(ndr, r->out.needed);
22895 ZERO_STRUCTP(r->out.needed);
22897 if (flags & NDR_OUT) {
22898 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22899 NDR_PULL_ALLOC(ndr, r->out.type);
22901 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
22902 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
22903 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
22904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
22905 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22906 NDR_PULL_ALLOC(ndr, r->out.data);
22908 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
22909 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
22910 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
22911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
22912 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22913 NDR_PULL_ALLOC(ndr, r->out.needed);
22915 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22916 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22917 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22919 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22921 return NDR_ERR_SUCCESS;
22924 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
22926 if (flags & NDR_IN) {
22927 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
22929 if (flags & NDR_OUT) {
22930 if (r->out.data == NULL) {
22931 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22933 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
22934 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
22936 return NDR_ERR_SUCCESS;
22939 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
22941 TALLOC_CTX *_mem_save_data_0;
22942 if (flags & NDR_IN) {
22943 ZERO_STRUCT(r->out);
22945 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
22946 NDR_PULL_ALLOC(ndr, r->out.data);
22947 ZERO_STRUCTP(r->out.data);
22949 if (flags & NDR_OUT) {
22950 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22951 NDR_PULL_ALLOC(ndr, r->out.data);
22953 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
22954 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
22955 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
22956 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
22957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
22959 return NDR_ERR_SUCCESS;
22962 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
22964 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
22965 ndr->depth++;
22966 if (flags & NDR_SET_VALUES) {
22967 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22969 if (flags & NDR_IN) {
22970 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
22971 ndr->depth++;
22972 ndr_print_ptr(ndr, "handle", r->in.handle);
22973 ndr->depth++;
22974 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22975 ndr->depth--;
22976 ndr_print_string(ndr, "value_name", r->in.value_name);
22977 ndr_print_uint32(ndr, "offered", r->in.offered);
22978 ndr->depth--;
22980 if (flags & NDR_OUT) {
22981 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
22982 ndr->depth++;
22983 ndr_print_ptr(ndr, "type", r->out.type);
22984 ndr->depth++;
22985 ndr_print_winreg_Type(ndr, "type", *r->out.type);
22986 ndr->depth--;
22987 ndr_print_ptr(ndr, "data", r->out.data);
22988 ndr->depth++;
22989 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
22990 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
22991 ndr->depth--;
22992 ndr_print_ptr(ndr, "needed", r->out.needed);
22993 ndr->depth++;
22994 ndr_print_uint32(ndr, "needed", *r->out.needed);
22995 ndr->depth--;
22996 ndr_print_WERROR(ndr, "result", r->out.result);
22997 ndr->depth--;
22999 ndr->depth--;
23002 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
23004 if (flags & NDR_IN) {
23005 if (r->in.handle == NULL) {
23006 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23008 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23009 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23010 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23011 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23012 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));
23013 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23014 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
23017 if (flags & NDR_OUT) {
23018 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23020 return NDR_ERR_SUCCESS;
23023 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
23025 if (flags & NDR_IN) {
23026 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23028 if (flags & NDR_OUT) {
23029 if (r->out.data == NULL) {
23030 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23032 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23033 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23035 return NDR_ERR_SUCCESS;
23038 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
23040 TALLOC_CTX *_mem_save_handle_0;
23041 if (flags & NDR_IN) {
23042 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23043 NDR_PULL_ALLOC(ndr, r->in.handle);
23045 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23046 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23047 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23049 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23050 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23051 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23052 return 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));
23054 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23055 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));
23056 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23058 struct ndr_pull *_ndr_data;
23059 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
23060 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
23061 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
23062 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
23064 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
23066 if (flags & NDR_OUT) {
23067 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23069 return NDR_ERR_SUCCESS;
23072 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
23074 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
23075 ndr->depth++;
23076 if (flags & NDR_SET_VALUES) {
23077 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23079 if (flags & NDR_IN) {
23080 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
23081 ndr->depth++;
23082 ndr_print_ptr(ndr, "handle", r->in.handle);
23083 ndr->depth++;
23084 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23085 ndr->depth--;
23086 ndr_print_string(ndr, "value_name", r->in.value_name);
23087 ndr_print_winreg_Type(ndr, "type", r->in.type);
23088 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
23089 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
23090 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);
23091 ndr->depth--;
23093 if (flags & NDR_OUT) {
23094 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
23095 ndr->depth++;
23096 ndr_print_WERROR(ndr, "result", r->out.result);
23097 ndr->depth--;
23099 ndr->depth--;
23102 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
23104 if (flags & NDR_IN) {
23106 if (flags & NDR_OUT) {
23107 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23109 return NDR_ERR_SUCCESS;
23112 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
23114 if (flags & NDR_IN) {
23116 if (flags & NDR_OUT) {
23117 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23119 return NDR_ERR_SUCCESS;
23122 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
23124 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
23125 ndr->depth++;
23126 if (flags & NDR_SET_VALUES) {
23127 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23129 if (flags & NDR_IN) {
23130 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
23131 ndr->depth++;
23132 ndr->depth--;
23134 if (flags & NDR_OUT) {
23135 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
23136 ndr->depth++;
23137 ndr_print_WERROR(ndr, "result", r->out.result);
23138 ndr->depth--;
23140 ndr->depth--;
23143 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
23145 if (flags & NDR_IN) {
23146 if (r->in.handle == NULL) {
23147 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23149 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23151 if (flags & NDR_OUT) {
23152 if (r->out.handle == NULL) {
23153 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23155 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23156 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23158 return NDR_ERR_SUCCESS;
23161 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
23163 TALLOC_CTX *_mem_save_handle_0;
23164 if (flags & NDR_IN) {
23165 ZERO_STRUCT(r->out);
23167 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23168 NDR_PULL_ALLOC(ndr, r->in.handle);
23170 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23171 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23172 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23174 NDR_PULL_ALLOC(ndr, r->out.handle);
23175 *r->out.handle = *r->in.handle;
23177 if (flags & NDR_OUT) {
23178 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23179 NDR_PULL_ALLOC(ndr, r->out.handle);
23181 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23182 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
23183 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23184 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23185 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23187 return NDR_ERR_SUCCESS;
23190 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
23192 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
23193 ndr->depth++;
23194 if (flags & NDR_SET_VALUES) {
23195 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23197 if (flags & NDR_IN) {
23198 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
23199 ndr->depth++;
23200 ndr_print_ptr(ndr, "handle", r->in.handle);
23201 ndr->depth++;
23202 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23203 ndr->depth--;
23204 ndr->depth--;
23206 if (flags & NDR_OUT) {
23207 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
23208 ndr->depth++;
23209 ndr_print_ptr(ndr, "handle", r->out.handle);
23210 ndr->depth++;
23211 ndr_print_policy_handle(ndr, "handle", r->out.handle);
23212 ndr->depth--;
23213 ndr_print_WERROR(ndr, "result", r->out.result);
23214 ndr->depth--;
23216 ndr->depth--;
23219 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
23221 if (flags & NDR_IN) {
23222 if (r->in.handle == NULL) {
23223 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23225 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23227 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23228 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23230 if (flags & NDR_OUT) {
23231 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23233 return NDR_ERR_SUCCESS;
23236 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
23238 TALLOC_CTX *_mem_save_handle_0;
23239 if (flags & NDR_IN) {
23240 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23241 NDR_PULL_ALLOC(ndr, r->in.handle);
23243 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23244 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23245 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23247 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23248 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23249 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23251 if (flags & NDR_OUT) {
23252 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23254 return NDR_ERR_SUCCESS;
23257 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
23259 ndr_print_struct(ndr, name, "spoolss_AddForm");
23260 ndr->depth++;
23261 if (flags & NDR_SET_VALUES) {
23262 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23264 if (flags & NDR_IN) {
23265 ndr_print_struct(ndr, "in", "spoolss_AddForm");
23266 ndr->depth++;
23267 ndr_print_ptr(ndr, "handle", r->in.handle);
23268 ndr->depth++;
23269 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23270 ndr->depth--;
23271 ndr_print_uint32(ndr, "level", r->in.level);
23272 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23273 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23274 ndr->depth--;
23276 if (flags & NDR_OUT) {
23277 ndr_print_struct(ndr, "out", "spoolss_AddForm");
23278 ndr->depth++;
23279 ndr_print_WERROR(ndr, "result", r->out.result);
23280 ndr->depth--;
23282 ndr->depth--;
23285 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
23287 if (flags & NDR_IN) {
23288 if (r->in.handle == NULL) {
23289 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23291 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23292 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23293 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23294 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23295 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));
23297 if (flags & NDR_OUT) {
23298 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23300 return NDR_ERR_SUCCESS;
23303 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
23305 TALLOC_CTX *_mem_save_handle_0;
23306 if (flags & NDR_IN) {
23307 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23308 NDR_PULL_ALLOC(ndr, r->in.handle);
23310 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23311 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23312 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23314 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23315 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23316 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23317 return 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));
23319 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23320 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));
23322 if (flags & NDR_OUT) {
23323 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23325 return NDR_ERR_SUCCESS;
23328 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
23330 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
23331 ndr->depth++;
23332 if (flags & NDR_SET_VALUES) {
23333 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23335 if (flags & NDR_IN) {
23336 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
23337 ndr->depth++;
23338 ndr_print_ptr(ndr, "handle", r->in.handle);
23339 ndr->depth++;
23340 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23341 ndr->depth--;
23342 ndr_print_string(ndr, "form_name", r->in.form_name);
23343 ndr->depth--;
23345 if (flags & NDR_OUT) {
23346 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
23347 ndr->depth++;
23348 ndr_print_WERROR(ndr, "result", r->out.result);
23349 ndr->depth--;
23351 ndr->depth--;
23354 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
23356 if (flags & NDR_IN) {
23357 if (r->in.handle == NULL) {
23358 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23360 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23361 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23362 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23363 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23364 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));
23365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23366 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23367 if (r->in.buffer) {
23368 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23372 if (flags & NDR_OUT) {
23373 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23374 if (r->out.info) {
23376 struct ndr_push *_ndr_info;
23377 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23378 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23379 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23380 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23383 if (r->out.needed == NULL) {
23384 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23387 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23389 return NDR_ERR_SUCCESS;
23392 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
23394 uint32_t _ptr_buffer;
23395 uint32_t _ptr_info;
23396 TALLOC_CTX *_mem_save_handle_0;
23397 TALLOC_CTX *_mem_save_buffer_0;
23398 TALLOC_CTX *_mem_save_info_0;
23399 TALLOC_CTX *_mem_save_needed_0;
23400 if (flags & NDR_IN) {
23401 ZERO_STRUCT(r->out);
23403 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23404 NDR_PULL_ALLOC(ndr, r->in.handle);
23406 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23407 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23408 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23410 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23411 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23412 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23413 return 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));
23415 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23416 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));
23417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23418 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23419 if (_ptr_buffer) {
23420 NDR_PULL_ALLOC(ndr, r->in.buffer);
23421 } else {
23422 r->in.buffer = NULL;
23424 if (r->in.buffer) {
23425 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23426 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23427 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23428 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23431 NDR_PULL_ALLOC(ndr, r->out.needed);
23432 ZERO_STRUCTP(r->out.needed);
23434 if (flags & NDR_OUT) {
23435 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23436 if (_ptr_info) {
23437 NDR_PULL_ALLOC(ndr, r->out.info);
23438 } else {
23439 r->out.info = NULL;
23441 if (r->out.info) {
23442 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23443 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23445 struct ndr_pull *_ndr_info;
23446 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23447 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23448 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23449 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23453 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23454 NDR_PULL_ALLOC(ndr, r->out.needed);
23456 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23457 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23458 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23459 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23460 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23462 return NDR_ERR_SUCCESS;
23465 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
23467 ndr_print_struct(ndr, name, "spoolss_GetForm");
23468 ndr->depth++;
23469 if (flags & NDR_SET_VALUES) {
23470 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23472 if (flags & NDR_IN) {
23473 ndr_print_struct(ndr, "in", "spoolss_GetForm");
23474 ndr->depth++;
23475 ndr_print_ptr(ndr, "handle", r->in.handle);
23476 ndr->depth++;
23477 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23478 ndr->depth--;
23479 ndr_print_string(ndr, "form_name", r->in.form_name);
23480 ndr_print_uint32(ndr, "level", r->in.level);
23481 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23482 ndr->depth++;
23483 if (r->in.buffer) {
23484 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23486 ndr->depth--;
23487 ndr_print_uint32(ndr, "offered", r->in.offered);
23488 ndr->depth--;
23490 if (flags & NDR_OUT) {
23491 ndr_print_struct(ndr, "out", "spoolss_GetForm");
23492 ndr->depth++;
23493 ndr_print_ptr(ndr, "info", r->out.info);
23494 ndr->depth++;
23495 if (r->out.info) {
23496 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23497 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
23499 ndr->depth--;
23500 ndr_print_ptr(ndr, "needed", r->out.needed);
23501 ndr->depth++;
23502 ndr_print_uint32(ndr, "needed", *r->out.needed);
23503 ndr->depth--;
23504 ndr_print_WERROR(ndr, "result", r->out.result);
23505 ndr->depth--;
23507 ndr->depth--;
23510 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
23512 if (flags & NDR_IN) {
23513 if (r->in.handle == NULL) {
23514 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23516 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23517 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23518 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23519 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23520 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));
23521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23522 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23523 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23525 if (flags & NDR_OUT) {
23526 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23528 return NDR_ERR_SUCCESS;
23531 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
23533 TALLOC_CTX *_mem_save_handle_0;
23534 if (flags & NDR_IN) {
23535 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23536 NDR_PULL_ALLOC(ndr, r->in.handle);
23538 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23539 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23540 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23542 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23543 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23544 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23545 return 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));
23547 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23548 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));
23549 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23550 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23551 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23553 if (flags & NDR_OUT) {
23554 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23556 return NDR_ERR_SUCCESS;
23559 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
23561 ndr_print_struct(ndr, name, "spoolss_SetForm");
23562 ndr->depth++;
23563 if (flags & NDR_SET_VALUES) {
23564 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23566 if (flags & NDR_IN) {
23567 ndr_print_struct(ndr, "in", "spoolss_SetForm");
23568 ndr->depth++;
23569 ndr_print_ptr(ndr, "handle", r->in.handle);
23570 ndr->depth++;
23571 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23572 ndr->depth--;
23573 ndr_print_string(ndr, "form_name", r->in.form_name);
23574 ndr_print_uint32(ndr, "level", r->in.level);
23575 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23576 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23577 ndr->depth--;
23579 if (flags & NDR_OUT) {
23580 ndr_print_struct(ndr, "out", "spoolss_SetForm");
23581 ndr->depth++;
23582 ndr_print_WERROR(ndr, "result", r->out.result);
23583 ndr->depth--;
23585 ndr->depth--;
23588 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
23590 if (flags & NDR_IN) {
23591 if (r->in.handle == NULL) {
23592 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23594 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23596 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23597 if (r->in.buffer) {
23598 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23602 if (flags & NDR_OUT) {
23603 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23604 if (r->out.info) {
23605 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23607 if (r->out.needed == NULL) {
23608 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23611 if (r->out.count == NULL) {
23612 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23615 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23617 return NDR_ERR_SUCCESS;
23620 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
23622 uint32_t _ptr_buffer;
23623 uint32_t _ptr_info;
23624 TALLOC_CTX *_mem_save_handle_0;
23625 TALLOC_CTX *_mem_save_buffer_0;
23626 TALLOC_CTX *_mem_save_info_0;
23627 TALLOC_CTX *_mem_save_needed_0;
23628 TALLOC_CTX *_mem_save_count_0;
23629 if (flags & NDR_IN) {
23630 ZERO_STRUCT(r->out);
23632 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23633 NDR_PULL_ALLOC(ndr, r->in.handle);
23635 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23636 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23637 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23639 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23640 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23641 if (_ptr_buffer) {
23642 NDR_PULL_ALLOC(ndr, r->in.buffer);
23643 } else {
23644 r->in.buffer = NULL;
23646 if (r->in.buffer) {
23647 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23648 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23649 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23650 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23653 NDR_PULL_ALLOC(ndr, r->out.needed);
23654 ZERO_STRUCTP(r->out.needed);
23655 NDR_PULL_ALLOC(ndr, r->out.count);
23656 ZERO_STRUCTP(r->out.count);
23658 if (flags & NDR_OUT) {
23659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23660 if (_ptr_info) {
23661 NDR_PULL_ALLOC(ndr, r->out.info);
23662 } else {
23663 r->out.info = NULL;
23665 if (r->out.info) {
23666 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23667 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23668 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23671 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23672 NDR_PULL_ALLOC(ndr, r->out.needed);
23674 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23675 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23678 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23679 NDR_PULL_ALLOC(ndr, r->out.count);
23681 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23682 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23684 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23685 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23687 return NDR_ERR_SUCCESS;
23690 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
23692 uint32_t cntr_info_0;
23693 if (flags & NDR_IN) {
23694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23697 if (flags & NDR_OUT) {
23698 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23699 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23700 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23702 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23703 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23706 return NDR_ERR_SUCCESS;
23709 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
23711 uint32_t cntr_info_0;
23712 TALLOC_CTX *_mem_save_info_0;
23713 if (flags & NDR_IN) {
23714 ZERO_STRUCT(r->out);
23716 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23719 if (flags & NDR_OUT) {
23720 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23721 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23722 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23723 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23724 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23725 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23727 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23728 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23730 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23732 return NDR_ERR_SUCCESS;
23735 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
23737 uint32_t cntr_info_2;
23738 ndr_print_struct(ndr, name, "spoolss_EnumForms");
23739 ndr->depth++;
23740 if (flags & NDR_SET_VALUES) {
23741 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23743 if (flags & NDR_IN) {
23744 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
23745 ndr->depth++;
23746 ndr_print_ptr(ndr, "handle", r->in.handle);
23747 ndr->depth++;
23748 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23749 ndr->depth--;
23750 ndr_print_uint32(ndr, "level", r->in.level);
23751 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23752 ndr->depth++;
23753 if (r->in.buffer) {
23754 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23756 ndr->depth--;
23757 ndr_print_uint32(ndr, "offered", r->in.offered);
23758 ndr->depth--;
23760 if (flags & NDR_OUT) {
23761 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
23762 ndr->depth++;
23763 ndr_print_ptr(ndr, "count", r->out.count);
23764 ndr->depth++;
23765 ndr_print_uint32(ndr, "count", *r->out.count);
23766 ndr->depth--;
23767 ndr_print_ptr(ndr, "info", r->out.info);
23768 ndr->depth++;
23769 ndr_print_ptr(ndr, "info", *r->out.info);
23770 ndr->depth++;
23771 if (*r->out.info) {
23772 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23773 ndr->depth++;
23774 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23775 char *idx_2=NULL;
23776 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23777 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23778 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23779 free(idx_2);
23782 ndr->depth--;
23784 ndr->depth--;
23785 ndr->depth--;
23786 ndr_print_ptr(ndr, "needed", r->out.needed);
23787 ndr->depth++;
23788 ndr_print_uint32(ndr, "needed", *r->out.needed);
23789 ndr->depth--;
23790 ndr_print_WERROR(ndr, "result", r->out.result);
23791 ndr->depth--;
23793 ndr->depth--;
23796 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
23798 if (flags & NDR_IN) {
23799 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23800 if (r->in.servername) {
23801 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23802 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23803 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23804 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23807 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23808 if (r->in.buffer) {
23809 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23813 if (flags & NDR_OUT) {
23814 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23815 if (r->out.info) {
23816 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23818 if (r->out.needed == NULL) {
23819 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23822 if (r->out.count == NULL) {
23823 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23826 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23828 return NDR_ERR_SUCCESS;
23831 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
23833 uint32_t _ptr_servername;
23834 uint32_t _ptr_buffer;
23835 uint32_t _ptr_info;
23836 TALLOC_CTX *_mem_save_servername_0;
23837 TALLOC_CTX *_mem_save_buffer_0;
23838 TALLOC_CTX *_mem_save_info_0;
23839 TALLOC_CTX *_mem_save_needed_0;
23840 TALLOC_CTX *_mem_save_count_0;
23841 if (flags & NDR_IN) {
23842 ZERO_STRUCT(r->out);
23844 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23845 if (_ptr_servername) {
23846 NDR_PULL_ALLOC(ndr, r->in.servername);
23847 } else {
23848 r->in.servername = NULL;
23850 if (r->in.servername) {
23851 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23852 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23853 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23854 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23855 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23856 return 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));
23858 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23859 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23860 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23862 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23863 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23864 if (_ptr_buffer) {
23865 NDR_PULL_ALLOC(ndr, r->in.buffer);
23866 } else {
23867 r->in.buffer = NULL;
23869 if (r->in.buffer) {
23870 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23871 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23872 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23875 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23876 NDR_PULL_ALLOC(ndr, r->out.needed);
23877 ZERO_STRUCTP(r->out.needed);
23878 NDR_PULL_ALLOC(ndr, r->out.count);
23879 ZERO_STRUCTP(r->out.count);
23881 if (flags & NDR_OUT) {
23882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23883 if (_ptr_info) {
23884 NDR_PULL_ALLOC(ndr, r->out.info);
23885 } else {
23886 r->out.info = NULL;
23888 if (r->out.info) {
23889 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23890 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23891 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23894 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23895 NDR_PULL_ALLOC(ndr, r->out.needed);
23897 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23898 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23901 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23902 NDR_PULL_ALLOC(ndr, r->out.count);
23904 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23905 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23908 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23910 return NDR_ERR_SUCCESS;
23913 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
23915 uint32_t cntr_info_0;
23916 if (flags & NDR_IN) {
23917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23918 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23920 if (flags & NDR_OUT) {
23921 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23922 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23923 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23925 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23926 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23929 return NDR_ERR_SUCCESS;
23932 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
23934 uint32_t cntr_info_0;
23935 TALLOC_CTX *_mem_save_info_0;
23936 if (flags & NDR_IN) {
23937 ZERO_STRUCT(r->out);
23939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23940 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23942 if (flags & NDR_OUT) {
23943 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23944 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23945 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23946 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23947 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23948 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23950 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23951 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23955 return NDR_ERR_SUCCESS;
23958 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
23960 uint32_t cntr_info_2;
23961 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
23962 ndr->depth++;
23963 if (flags & NDR_SET_VALUES) {
23964 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23966 if (flags & NDR_IN) {
23967 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
23968 ndr->depth++;
23969 ndr_print_ptr(ndr, "servername", r->in.servername);
23970 ndr->depth++;
23971 if (r->in.servername) {
23972 ndr_print_string(ndr, "servername", r->in.servername);
23974 ndr->depth--;
23975 ndr_print_uint32(ndr, "level", r->in.level);
23976 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23977 ndr->depth++;
23978 if (r->in.buffer) {
23979 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23981 ndr->depth--;
23982 ndr_print_uint32(ndr, "offered", r->in.offered);
23983 ndr->depth--;
23985 if (flags & NDR_OUT) {
23986 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
23987 ndr->depth++;
23988 ndr_print_ptr(ndr, "count", r->out.count);
23989 ndr->depth++;
23990 ndr_print_uint32(ndr, "count", *r->out.count);
23991 ndr->depth--;
23992 ndr_print_ptr(ndr, "info", r->out.info);
23993 ndr->depth++;
23994 ndr_print_ptr(ndr, "info", *r->out.info);
23995 ndr->depth++;
23996 if (*r->out.info) {
23997 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23998 ndr->depth++;
23999 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24000 char *idx_2=NULL;
24001 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24002 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24003 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24004 free(idx_2);
24007 ndr->depth--;
24009 ndr->depth--;
24010 ndr->depth--;
24011 ndr_print_ptr(ndr, "needed", r->out.needed);
24012 ndr->depth++;
24013 ndr_print_uint32(ndr, "needed", *r->out.needed);
24014 ndr->depth--;
24015 ndr_print_WERROR(ndr, "result", r->out.result);
24016 ndr->depth--;
24018 ndr->depth--;
24021 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
24023 if (flags & NDR_IN) {
24024 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24025 if (r->in.servername) {
24026 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24027 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24028 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24029 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24032 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24033 if (r->in.buffer) {
24034 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24038 if (flags & NDR_OUT) {
24039 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24040 if (r->out.info) {
24041 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24043 if (r->out.needed == NULL) {
24044 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24047 if (r->out.count == NULL) {
24048 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24051 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24053 return NDR_ERR_SUCCESS;
24056 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
24058 uint32_t _ptr_servername;
24059 uint32_t _ptr_buffer;
24060 uint32_t _ptr_info;
24061 TALLOC_CTX *_mem_save_servername_0;
24062 TALLOC_CTX *_mem_save_buffer_0;
24063 TALLOC_CTX *_mem_save_info_0;
24064 TALLOC_CTX *_mem_save_needed_0;
24065 TALLOC_CTX *_mem_save_count_0;
24066 if (flags & NDR_IN) {
24067 ZERO_STRUCT(r->out);
24069 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24070 if (_ptr_servername) {
24071 NDR_PULL_ALLOC(ndr, r->in.servername);
24072 } else {
24073 r->in.servername = NULL;
24075 if (r->in.servername) {
24076 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24077 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24078 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24079 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24080 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24081 return 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));
24083 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24084 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24087 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24088 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24089 if (_ptr_buffer) {
24090 NDR_PULL_ALLOC(ndr, r->in.buffer);
24091 } else {
24092 r->in.buffer = NULL;
24094 if (r->in.buffer) {
24095 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24096 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24097 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24100 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24101 NDR_PULL_ALLOC(ndr, r->out.needed);
24102 ZERO_STRUCTP(r->out.needed);
24103 NDR_PULL_ALLOC(ndr, r->out.count);
24104 ZERO_STRUCTP(r->out.count);
24106 if (flags & NDR_OUT) {
24107 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24108 if (_ptr_info) {
24109 NDR_PULL_ALLOC(ndr, r->out.info);
24110 } else {
24111 r->out.info = NULL;
24113 if (r->out.info) {
24114 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24115 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24116 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24119 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24120 NDR_PULL_ALLOC(ndr, r->out.needed);
24122 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24123 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24124 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24125 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24126 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24127 NDR_PULL_ALLOC(ndr, r->out.count);
24129 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24130 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24131 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24133 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24135 return NDR_ERR_SUCCESS;
24138 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
24140 uint32_t cntr_info_0;
24141 if (flags & NDR_IN) {
24142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24145 if (flags & NDR_OUT) {
24146 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24147 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24148 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24150 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24151 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24154 return NDR_ERR_SUCCESS;
24157 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
24159 uint32_t cntr_info_0;
24160 TALLOC_CTX *_mem_save_info_0;
24161 if (flags & NDR_IN) {
24162 ZERO_STRUCT(r->out);
24164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24165 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24167 if (flags & NDR_OUT) {
24168 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24169 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24170 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24171 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24172 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24173 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24175 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24176 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24180 return NDR_ERR_SUCCESS;
24183 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
24185 uint32_t cntr_info_2;
24186 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
24187 ndr->depth++;
24188 if (flags & NDR_SET_VALUES) {
24189 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24191 if (flags & NDR_IN) {
24192 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
24193 ndr->depth++;
24194 ndr_print_ptr(ndr, "servername", r->in.servername);
24195 ndr->depth++;
24196 if (r->in.servername) {
24197 ndr_print_string(ndr, "servername", r->in.servername);
24199 ndr->depth--;
24200 ndr_print_uint32(ndr, "level", r->in.level);
24201 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24202 ndr->depth++;
24203 if (r->in.buffer) {
24204 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24206 ndr->depth--;
24207 ndr_print_uint32(ndr, "offered", r->in.offered);
24208 ndr->depth--;
24210 if (flags & NDR_OUT) {
24211 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
24212 ndr->depth++;
24213 ndr_print_ptr(ndr, "count", r->out.count);
24214 ndr->depth++;
24215 ndr_print_uint32(ndr, "count", *r->out.count);
24216 ndr->depth--;
24217 ndr_print_ptr(ndr, "info", r->out.info);
24218 ndr->depth++;
24219 ndr_print_ptr(ndr, "info", *r->out.info);
24220 ndr->depth++;
24221 if (*r->out.info) {
24222 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24223 ndr->depth++;
24224 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24225 char *idx_2=NULL;
24226 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24227 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24228 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24229 free(idx_2);
24232 ndr->depth--;
24234 ndr->depth--;
24235 ndr->depth--;
24236 ndr_print_ptr(ndr, "needed", r->out.needed);
24237 ndr->depth++;
24238 ndr_print_uint32(ndr, "needed", *r->out.needed);
24239 ndr->depth--;
24240 ndr_print_WERROR(ndr, "result", r->out.result);
24241 ndr->depth--;
24243 ndr->depth--;
24246 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
24248 if (flags & NDR_IN) {
24249 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
24250 if (r->in.server_name) {
24251 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24252 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24253 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24254 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));
24256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
24257 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24258 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24259 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24260 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));
24262 if (flags & NDR_OUT) {
24263 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24265 return NDR_ERR_SUCCESS;
24268 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
24270 uint32_t _ptr_server_name;
24271 TALLOC_CTX *_mem_save_server_name_0;
24272 if (flags & NDR_IN) {
24273 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
24274 if (_ptr_server_name) {
24275 NDR_PULL_ALLOC(ndr, r->in.server_name);
24276 } else {
24277 r->in.server_name = NULL;
24279 if (r->in.server_name) {
24280 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
24281 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
24282 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24283 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24284 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
24285 return 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));
24287 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
24288 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));
24289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
24291 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
24292 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
24293 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
24294 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
24295 return 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));
24297 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
24298 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));
24300 if (flags & NDR_OUT) {
24301 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24303 return NDR_ERR_SUCCESS;
24306 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
24308 ndr_print_struct(ndr, name, "spoolss_AddPort");
24309 ndr->depth++;
24310 if (flags & NDR_SET_VALUES) {
24311 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24313 if (flags & NDR_IN) {
24314 ndr_print_struct(ndr, "in", "spoolss_AddPort");
24315 ndr->depth++;
24316 ndr_print_ptr(ndr, "server_name", r->in.server_name);
24317 ndr->depth++;
24318 if (r->in.server_name) {
24319 ndr_print_string(ndr, "server_name", r->in.server_name);
24321 ndr->depth--;
24322 ndr_print_uint32(ndr, "unknown", r->in.unknown);
24323 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
24324 ndr->depth--;
24326 if (flags & NDR_OUT) {
24327 ndr_print_struct(ndr, "out", "spoolss_AddPort");
24328 ndr->depth++;
24329 ndr_print_WERROR(ndr, "result", r->out.result);
24330 ndr->depth--;
24332 ndr->depth--;
24335 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
24337 if (flags & NDR_IN) {
24339 if (flags & NDR_OUT) {
24340 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24342 return NDR_ERR_SUCCESS;
24345 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
24347 if (flags & NDR_IN) {
24349 if (flags & NDR_OUT) {
24350 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24352 return NDR_ERR_SUCCESS;
24355 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
24357 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
24358 ndr->depth++;
24359 if (flags & NDR_SET_VALUES) {
24360 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24362 if (flags & NDR_IN) {
24363 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
24364 ndr->depth++;
24365 ndr->depth--;
24367 if (flags & NDR_OUT) {
24368 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
24369 ndr->depth++;
24370 ndr_print_WERROR(ndr, "result", r->out.result);
24371 ndr->depth--;
24373 ndr->depth--;
24376 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
24378 if (flags & NDR_IN) {
24380 if (flags & NDR_OUT) {
24381 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24383 return NDR_ERR_SUCCESS;
24386 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
24388 if (flags & NDR_IN) {
24390 if (flags & NDR_OUT) {
24391 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24393 return NDR_ERR_SUCCESS;
24396 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
24398 ndr_print_struct(ndr, name, "spoolss_DeletePort");
24399 ndr->depth++;
24400 if (flags & NDR_SET_VALUES) {
24401 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24403 if (flags & NDR_IN) {
24404 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
24405 ndr->depth++;
24406 ndr->depth--;
24408 if (flags & NDR_OUT) {
24409 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
24410 ndr->depth++;
24411 ndr_print_WERROR(ndr, "result", r->out.result);
24412 ndr->depth--;
24414 ndr->depth--;
24417 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
24419 if (flags & NDR_IN) {
24420 if (r->in.handle == NULL) {
24421 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24423 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24424 if (r->in.devmode_ctr == NULL) {
24425 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24427 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24429 if (flags & NDR_OUT) {
24430 if (r->out.gdi_handle == NULL) {
24431 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24433 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24434 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24436 return NDR_ERR_SUCCESS;
24439 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
24441 TALLOC_CTX *_mem_save_handle_0;
24442 TALLOC_CTX *_mem_save_gdi_handle_0;
24443 TALLOC_CTX *_mem_save_devmode_ctr_0;
24444 if (flags & NDR_IN) {
24445 ZERO_STRUCT(r->out);
24447 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24448 NDR_PULL_ALLOC(ndr, r->in.handle);
24450 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24451 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24452 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24454 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24455 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
24457 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24458 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
24459 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24461 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24462 ZERO_STRUCTP(r->out.gdi_handle);
24464 if (flags & NDR_OUT) {
24465 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24466 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24468 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24469 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24470 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24472 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24474 return NDR_ERR_SUCCESS;
24477 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
24479 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
24480 ndr->depth++;
24481 if (flags & NDR_SET_VALUES) {
24482 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24484 if (flags & NDR_IN) {
24485 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
24486 ndr->depth++;
24487 ndr_print_ptr(ndr, "handle", r->in.handle);
24488 ndr->depth++;
24489 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24490 ndr->depth--;
24491 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
24492 ndr->depth++;
24493 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
24494 ndr->depth--;
24495 ndr->depth--;
24497 if (flags & NDR_OUT) {
24498 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
24499 ndr->depth++;
24500 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
24501 ndr->depth++;
24502 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
24503 ndr->depth--;
24504 ndr_print_WERROR(ndr, "result", r->out.result);
24505 ndr->depth--;
24507 ndr->depth--;
24510 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24512 if (flags & NDR_IN) {
24514 if (flags & NDR_OUT) {
24515 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24517 return NDR_ERR_SUCCESS;
24520 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
24522 if (flags & NDR_IN) {
24524 if (flags & NDR_OUT) {
24525 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24527 return NDR_ERR_SUCCESS;
24530 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24532 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
24533 ndr->depth++;
24534 if (flags & NDR_SET_VALUES) {
24535 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24537 if (flags & NDR_IN) {
24538 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
24539 ndr->depth++;
24540 ndr->depth--;
24542 if (flags & NDR_OUT) {
24543 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
24544 ndr->depth++;
24545 ndr_print_WERROR(ndr, "result", r->out.result);
24546 ndr->depth--;
24548 ndr->depth--;
24551 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
24553 if (flags & NDR_IN) {
24554 if (r->in.gdi_handle == NULL) {
24555 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24557 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
24559 if (flags & NDR_OUT) {
24560 if (r->out.gdi_handle == NULL) {
24561 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24563 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24564 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24566 return NDR_ERR_SUCCESS;
24569 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
24571 TALLOC_CTX *_mem_save_gdi_handle_0;
24572 if (flags & NDR_IN) {
24573 ZERO_STRUCT(r->out);
24575 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24576 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
24578 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24579 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24580 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
24581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24582 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24583 *r->out.gdi_handle = *r->in.gdi_handle;
24585 if (flags & NDR_OUT) {
24586 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24587 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24589 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24590 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24591 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24593 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24595 return NDR_ERR_SUCCESS;
24598 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
24600 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
24601 ndr->depth++;
24602 if (flags & NDR_SET_VALUES) {
24603 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24605 if (flags & NDR_IN) {
24606 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
24607 ndr->depth++;
24608 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
24609 ndr->depth++;
24610 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
24611 ndr->depth--;
24612 ndr->depth--;
24614 if (flags & NDR_OUT) {
24615 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
24616 ndr->depth++;
24617 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
24618 ndr->depth++;
24619 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
24620 ndr->depth--;
24621 ndr_print_WERROR(ndr, "result", r->out.result);
24622 ndr->depth--;
24624 ndr->depth--;
24627 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
24629 if (flags & NDR_IN) {
24631 if (flags & NDR_OUT) {
24632 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24634 return NDR_ERR_SUCCESS;
24637 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
24639 if (flags & NDR_IN) {
24641 if (flags & NDR_OUT) {
24642 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24644 return NDR_ERR_SUCCESS;
24647 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
24649 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
24650 ndr->depth++;
24651 if (flags & NDR_SET_VALUES) {
24652 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24654 if (flags & NDR_IN) {
24655 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
24656 ndr->depth++;
24657 ndr->depth--;
24659 if (flags & NDR_OUT) {
24660 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
24661 ndr->depth++;
24662 ndr_print_WERROR(ndr, "result", r->out.result);
24663 ndr->depth--;
24665 ndr->depth--;
24668 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
24670 if (flags & NDR_IN) {
24672 if (flags & NDR_OUT) {
24673 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24675 return NDR_ERR_SUCCESS;
24678 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
24680 if (flags & NDR_IN) {
24682 if (flags & NDR_OUT) {
24683 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24685 return NDR_ERR_SUCCESS;
24688 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
24690 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
24691 ndr->depth++;
24692 if (flags & NDR_SET_VALUES) {
24693 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24695 if (flags & NDR_IN) {
24696 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
24697 ndr->depth++;
24698 ndr->depth--;
24700 if (flags & NDR_OUT) {
24701 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
24702 ndr->depth++;
24703 ndr_print_WERROR(ndr, "result", r->out.result);
24704 ndr->depth--;
24706 ndr->depth--;
24709 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
24711 if (flags & NDR_IN) {
24713 if (flags & NDR_OUT) {
24714 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24716 return NDR_ERR_SUCCESS;
24719 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
24721 if (flags & NDR_IN) {
24723 if (flags & NDR_OUT) {
24724 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24726 return NDR_ERR_SUCCESS;
24729 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
24731 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
24732 ndr->depth++;
24733 if (flags & NDR_SET_VALUES) {
24734 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24736 if (flags & NDR_IN) {
24737 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
24738 ndr->depth++;
24739 ndr->depth--;
24741 if (flags & NDR_OUT) {
24742 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
24743 ndr->depth++;
24744 ndr_print_WERROR(ndr, "result", r->out.result);
24745 ndr->depth--;
24747 ndr->depth--;
24750 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
24752 if (flags & NDR_IN) {
24754 if (flags & NDR_OUT) {
24755 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24757 return NDR_ERR_SUCCESS;
24760 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
24762 if (flags & NDR_IN) {
24764 if (flags & NDR_OUT) {
24765 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24767 return NDR_ERR_SUCCESS;
24770 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
24772 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
24773 ndr->depth++;
24774 if (flags & NDR_SET_VALUES) {
24775 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24777 if (flags & NDR_IN) {
24778 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
24779 ndr->depth++;
24780 ndr->depth--;
24782 if (flags & NDR_OUT) {
24783 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
24784 ndr->depth++;
24785 ndr_print_WERROR(ndr, "result", r->out.result);
24786 ndr->depth--;
24788 ndr->depth--;
24791 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
24793 if (flags & NDR_IN) {
24795 if (flags & NDR_OUT) {
24796 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24798 return NDR_ERR_SUCCESS;
24801 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
24803 if (flags & NDR_IN) {
24805 if (flags & NDR_OUT) {
24806 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24808 return NDR_ERR_SUCCESS;
24811 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
24813 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
24814 ndr->depth++;
24815 if (flags & NDR_SET_VALUES) {
24816 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24818 if (flags & NDR_IN) {
24819 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
24820 ndr->depth++;
24821 ndr->depth--;
24823 if (flags & NDR_OUT) {
24824 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
24825 ndr->depth++;
24826 ndr_print_WERROR(ndr, "result", r->out.result);
24827 ndr->depth--;
24829 ndr->depth--;
24832 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
24834 if (flags & NDR_IN) {
24836 if (flags & NDR_OUT) {
24837 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24839 return NDR_ERR_SUCCESS;
24842 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
24844 if (flags & NDR_IN) {
24846 if (flags & NDR_OUT) {
24847 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24849 return NDR_ERR_SUCCESS;
24852 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
24854 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
24855 ndr->depth++;
24856 if (flags & NDR_SET_VALUES) {
24857 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24859 if (flags & NDR_IN) {
24860 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
24861 ndr->depth++;
24862 ndr->depth--;
24864 if (flags & NDR_OUT) {
24865 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
24866 ndr->depth++;
24867 ndr_print_WERROR(ndr, "result", r->out.result);
24868 ndr->depth--;
24870 ndr->depth--;
24873 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
24875 if (flags & NDR_IN) {
24877 if (flags & NDR_OUT) {
24878 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24880 return NDR_ERR_SUCCESS;
24883 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
24885 if (flags & NDR_IN) {
24887 if (flags & NDR_OUT) {
24888 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24890 return NDR_ERR_SUCCESS;
24893 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
24895 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
24896 ndr->depth++;
24897 if (flags & NDR_SET_VALUES) {
24898 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24900 if (flags & NDR_IN) {
24901 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
24902 ndr->depth++;
24903 ndr->depth--;
24905 if (flags & NDR_OUT) {
24906 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
24907 ndr->depth++;
24908 ndr_print_WERROR(ndr, "result", r->out.result);
24909 ndr->depth--;
24911 ndr->depth--;
24914 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
24916 if (flags & NDR_IN) {
24918 if (flags & NDR_OUT) {
24919 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24921 return NDR_ERR_SUCCESS;
24924 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
24926 if (flags & NDR_IN) {
24928 if (flags & NDR_OUT) {
24929 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24931 return NDR_ERR_SUCCESS;
24934 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
24936 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
24937 ndr->depth++;
24938 if (flags & NDR_SET_VALUES) {
24939 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24941 if (flags & NDR_IN) {
24942 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
24943 ndr->depth++;
24944 ndr->depth--;
24946 if (flags & NDR_OUT) {
24947 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
24948 ndr->depth++;
24949 ndr_print_WERROR(ndr, "result", r->out.result);
24950 ndr->depth--;
24952 ndr->depth--;
24955 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
24957 if (flags & NDR_IN) {
24958 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24959 if (r->in.servername) {
24960 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24961 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24962 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24963 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24965 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
24966 if (r->in.print_processor_name) {
24967 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
24968 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24969 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
24970 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));
24972 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24973 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24974 if (r->in.buffer) {
24975 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24979 if (flags & NDR_OUT) {
24980 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24981 if (r->out.info) {
24982 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24984 if (r->out.needed == NULL) {
24985 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24988 if (r->out.count == NULL) {
24989 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24991 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24992 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24994 return NDR_ERR_SUCCESS;
24997 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
24999 uint32_t _ptr_servername;
25000 uint32_t _ptr_print_processor_name;
25001 uint32_t _ptr_buffer;
25002 uint32_t _ptr_info;
25003 TALLOC_CTX *_mem_save_servername_0;
25004 TALLOC_CTX *_mem_save_print_processor_name_0;
25005 TALLOC_CTX *_mem_save_buffer_0;
25006 TALLOC_CTX *_mem_save_info_0;
25007 TALLOC_CTX *_mem_save_needed_0;
25008 TALLOC_CTX *_mem_save_count_0;
25009 if (flags & NDR_IN) {
25010 ZERO_STRUCT(r->out);
25012 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25013 if (_ptr_servername) {
25014 NDR_PULL_ALLOC(ndr, r->in.servername);
25015 } else {
25016 r->in.servername = NULL;
25018 if (r->in.servername) {
25019 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25020 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25021 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25022 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25023 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25024 return 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));
25026 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25027 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25030 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
25031 if (_ptr_print_processor_name) {
25032 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
25033 } else {
25034 r->in.print_processor_name = NULL;
25036 if (r->in.print_processor_name) {
25037 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25038 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
25039 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
25040 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
25041 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
25042 return 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));
25044 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
25045 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));
25046 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
25048 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25049 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25050 if (_ptr_buffer) {
25051 NDR_PULL_ALLOC(ndr, r->in.buffer);
25052 } else {
25053 r->in.buffer = NULL;
25055 if (r->in.buffer) {
25056 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25057 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25058 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25061 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25062 NDR_PULL_ALLOC(ndr, r->out.needed);
25063 ZERO_STRUCTP(r->out.needed);
25064 NDR_PULL_ALLOC(ndr, r->out.count);
25065 ZERO_STRUCTP(r->out.count);
25067 if (flags & NDR_OUT) {
25068 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25069 if (_ptr_info) {
25070 NDR_PULL_ALLOC(ndr, r->out.info);
25071 } else {
25072 r->out.info = NULL;
25074 if (r->out.info) {
25075 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25076 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25077 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25080 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25081 NDR_PULL_ALLOC(ndr, r->out.needed);
25083 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25084 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25085 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25087 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25088 NDR_PULL_ALLOC(ndr, r->out.count);
25090 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25091 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25092 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25094 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25096 return NDR_ERR_SUCCESS;
25099 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
25101 uint32_t cntr_info_0;
25102 if (flags & NDR_IN) {
25103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25106 if (flags & NDR_OUT) {
25107 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25108 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25109 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25111 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25112 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25115 return NDR_ERR_SUCCESS;
25118 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
25120 uint32_t cntr_info_0;
25121 TALLOC_CTX *_mem_save_info_0;
25122 if (flags & NDR_IN) {
25123 ZERO_STRUCT(r->out);
25125 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25126 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25128 if (flags & NDR_OUT) {
25129 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25130 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25131 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25132 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25133 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25134 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25136 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25137 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25139 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25141 return NDR_ERR_SUCCESS;
25144 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
25146 uint32_t cntr_info_2;
25147 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
25148 ndr->depth++;
25149 if (flags & NDR_SET_VALUES) {
25150 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25152 if (flags & NDR_IN) {
25153 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
25154 ndr->depth++;
25155 ndr_print_ptr(ndr, "servername", r->in.servername);
25156 ndr->depth++;
25157 if (r->in.servername) {
25158 ndr_print_string(ndr, "servername", r->in.servername);
25160 ndr->depth--;
25161 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
25162 ndr->depth++;
25163 if (r->in.print_processor_name) {
25164 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
25166 ndr->depth--;
25167 ndr_print_uint32(ndr, "level", r->in.level);
25168 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25169 ndr->depth++;
25170 if (r->in.buffer) {
25171 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25173 ndr->depth--;
25174 ndr_print_uint32(ndr, "offered", r->in.offered);
25175 ndr->depth--;
25177 if (flags & NDR_OUT) {
25178 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
25179 ndr->depth++;
25180 ndr_print_ptr(ndr, "count", r->out.count);
25181 ndr->depth++;
25182 ndr_print_uint32(ndr, "count", *r->out.count);
25183 ndr->depth--;
25184 ndr_print_ptr(ndr, "info", r->out.info);
25185 ndr->depth++;
25186 ndr_print_ptr(ndr, "info", *r->out.info);
25187 ndr->depth++;
25188 if (*r->out.info) {
25189 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25190 ndr->depth++;
25191 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25192 char *idx_2=NULL;
25193 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25194 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25195 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25196 free(idx_2);
25199 ndr->depth--;
25201 ndr->depth--;
25202 ndr->depth--;
25203 ndr_print_ptr(ndr, "needed", r->out.needed);
25204 ndr->depth++;
25205 ndr_print_uint32(ndr, "needed", *r->out.needed);
25206 ndr->depth--;
25207 ndr_print_WERROR(ndr, "result", r->out.result);
25208 ndr->depth--;
25210 ndr->depth--;
25213 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
25215 if (flags & NDR_IN) {
25216 if (r->in.handle == NULL) {
25217 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25219 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25220 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
25221 if (r->in.data_type) {
25222 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25223 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25224 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25225 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));
25227 if (r->in.devmode_ctr == NULL) {
25228 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25230 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25232 if (flags & NDR_OUT) {
25233 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25235 return NDR_ERR_SUCCESS;
25238 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
25240 uint32_t _ptr_data_type;
25241 TALLOC_CTX *_mem_save_handle_0;
25242 TALLOC_CTX *_mem_save_data_type_0;
25243 TALLOC_CTX *_mem_save_devmode_ctr_0;
25244 if (flags & NDR_IN) {
25245 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25246 NDR_PULL_ALLOC(ndr, r->in.handle);
25248 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25249 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25250 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25252 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
25253 if (_ptr_data_type) {
25254 NDR_PULL_ALLOC(ndr, r->in.data_type);
25255 } else {
25256 r->in.data_type = NULL;
25258 if (r->in.data_type) {
25259 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25260 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
25261 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
25262 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
25263 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
25264 return 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));
25266 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
25267 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));
25268 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
25270 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25271 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25273 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25274 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25275 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25278 if (flags & NDR_OUT) {
25279 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25281 return NDR_ERR_SUCCESS;
25284 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
25286 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
25287 ndr->depth++;
25288 if (flags & NDR_SET_VALUES) {
25289 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25291 if (flags & NDR_IN) {
25292 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
25293 ndr->depth++;
25294 ndr_print_ptr(ndr, "handle", r->in.handle);
25295 ndr->depth++;
25296 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25297 ndr->depth--;
25298 ndr_print_ptr(ndr, "data_type", r->in.data_type);
25299 ndr->depth++;
25300 if (r->in.data_type) {
25301 ndr_print_string(ndr, "data_type", r->in.data_type);
25303 ndr->depth--;
25304 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25305 ndr->depth++;
25306 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25307 ndr->depth--;
25308 ndr->depth--;
25310 if (flags & NDR_OUT) {
25311 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
25312 ndr->depth++;
25313 ndr_print_WERROR(ndr, "result", r->out.result);
25314 ndr->depth--;
25316 ndr->depth--;
25319 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
25321 if (flags & NDR_IN) {
25322 if (r->in.handle == NULL) {
25323 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25325 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25326 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
25327 if (r->in.architecture) {
25328 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25329 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25330 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25331 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25334 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25335 if (r->in.buffer) {
25336 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
25340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
25342 if (flags & NDR_OUT) {
25343 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25344 if (r->out.info) {
25346 struct ndr_push *_ndr_info;
25347 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25348 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
25349 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25350 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25353 if (r->out.needed == NULL) {
25354 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25357 if (r->out.server_major_version == NULL) {
25358 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
25361 if (r->out.server_minor_version == NULL) {
25362 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
25365 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25367 return NDR_ERR_SUCCESS;
25370 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
25372 uint32_t _ptr_architecture;
25373 uint32_t _ptr_buffer;
25374 uint32_t _ptr_info;
25375 TALLOC_CTX *_mem_save_handle_0;
25376 TALLOC_CTX *_mem_save_architecture_0;
25377 TALLOC_CTX *_mem_save_buffer_0;
25378 TALLOC_CTX *_mem_save_info_0;
25379 TALLOC_CTX *_mem_save_needed_0;
25380 TALLOC_CTX *_mem_save_server_major_version_0;
25381 TALLOC_CTX *_mem_save_server_minor_version_0;
25382 if (flags & NDR_IN) {
25383 ZERO_STRUCT(r->out);
25385 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25386 NDR_PULL_ALLOC(ndr, r->in.handle);
25388 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25389 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25390 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25392 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
25393 if (_ptr_architecture) {
25394 NDR_PULL_ALLOC(ndr, r->in.architecture);
25395 } else {
25396 r->in.architecture = NULL;
25398 if (r->in.architecture) {
25399 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
25400 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
25401 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
25402 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
25403 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
25404 return 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));
25406 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
25407 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
25408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
25410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25411 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25412 if (_ptr_buffer) {
25413 NDR_PULL_ALLOC(ndr, r->in.buffer);
25414 } else {
25415 r->in.buffer = NULL;
25417 if (r->in.buffer) {
25418 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25419 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25420 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
25425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
25426 NDR_PULL_ALLOC(ndr, r->out.needed);
25427 ZERO_STRUCTP(r->out.needed);
25428 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25429 ZERO_STRUCTP(r->out.server_major_version);
25430 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25431 ZERO_STRUCTP(r->out.server_minor_version);
25433 if (flags & NDR_OUT) {
25434 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25435 if (_ptr_info) {
25436 NDR_PULL_ALLOC(ndr, r->out.info);
25437 } else {
25438 r->out.info = NULL;
25440 if (r->out.info) {
25441 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25442 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25444 struct ndr_pull *_ndr_info;
25445 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25446 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
25447 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25448 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25452 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25453 NDR_PULL_ALLOC(ndr, r->out.needed);
25455 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25456 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25457 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25459 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25460 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25462 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25463 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
25464 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
25465 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
25466 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25467 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25469 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25470 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
25471 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
25472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
25473 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25475 return NDR_ERR_SUCCESS;
25478 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
25480 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
25481 ndr->depth++;
25482 if (flags & NDR_SET_VALUES) {
25483 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25485 if (flags & NDR_IN) {
25486 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
25487 ndr->depth++;
25488 ndr_print_ptr(ndr, "handle", r->in.handle);
25489 ndr->depth++;
25490 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25491 ndr->depth--;
25492 ndr_print_ptr(ndr, "architecture", r->in.architecture);
25493 ndr->depth++;
25494 if (r->in.architecture) {
25495 ndr_print_string(ndr, "architecture", r->in.architecture);
25497 ndr->depth--;
25498 ndr_print_uint32(ndr, "level", r->in.level);
25499 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25500 ndr->depth++;
25501 if (r->in.buffer) {
25502 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25504 ndr->depth--;
25505 ndr_print_uint32(ndr, "offered", r->in.offered);
25506 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
25507 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
25508 ndr->depth--;
25510 if (flags & NDR_OUT) {
25511 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
25512 ndr->depth++;
25513 ndr_print_ptr(ndr, "info", r->out.info);
25514 ndr->depth++;
25515 if (r->out.info) {
25516 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
25517 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
25519 ndr->depth--;
25520 ndr_print_ptr(ndr, "needed", r->out.needed);
25521 ndr->depth++;
25522 ndr_print_uint32(ndr, "needed", *r->out.needed);
25523 ndr->depth--;
25524 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
25525 ndr->depth++;
25526 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
25527 ndr->depth--;
25528 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
25529 ndr->depth++;
25530 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
25531 ndr->depth--;
25532 ndr_print_WERROR(ndr, "result", r->out.result);
25533 ndr->depth--;
25535 ndr->depth--;
25538 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25540 if (flags & NDR_IN) {
25542 if (flags & NDR_OUT) {
25543 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25545 return NDR_ERR_SUCCESS;
25548 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
25550 if (flags & NDR_IN) {
25552 if (flags & NDR_OUT) {
25553 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25555 return NDR_ERR_SUCCESS;
25558 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25560 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
25561 ndr->depth++;
25562 if (flags & NDR_SET_VALUES) {
25563 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25565 if (flags & NDR_IN) {
25566 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
25567 ndr->depth++;
25568 ndr->depth--;
25570 if (flags & NDR_OUT) {
25571 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
25572 ndr->depth++;
25573 ndr_print_WERROR(ndr, "result", r->out.result);
25574 ndr->depth--;
25576 ndr->depth--;
25579 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
25581 if (flags & NDR_IN) {
25583 if (flags & NDR_OUT) {
25584 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25586 return NDR_ERR_SUCCESS;
25589 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
25591 if (flags & NDR_IN) {
25593 if (flags & NDR_OUT) {
25594 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25596 return NDR_ERR_SUCCESS;
25599 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
25601 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
25602 ndr->depth++;
25603 if (flags & NDR_SET_VALUES) {
25604 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25606 if (flags & NDR_IN) {
25607 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
25608 ndr->depth++;
25609 ndr->depth--;
25611 if (flags & NDR_OUT) {
25612 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
25613 ndr->depth++;
25614 ndr_print_WERROR(ndr, "result", r->out.result);
25615 ndr->depth--;
25617 ndr->depth--;
25620 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
25622 if (flags & NDR_IN) {
25623 if (r->in.handle == NULL) {
25624 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25626 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25628 if (flags & NDR_OUT) {
25629 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25631 return NDR_ERR_SUCCESS;
25634 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
25636 TALLOC_CTX *_mem_save_handle_0;
25637 if (flags & NDR_IN) {
25638 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25639 NDR_PULL_ALLOC(ndr, r->in.handle);
25641 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25642 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25643 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25646 if (flags & NDR_OUT) {
25647 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25649 return NDR_ERR_SUCCESS;
25652 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
25654 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
25655 ndr->depth++;
25656 if (flags & NDR_SET_VALUES) {
25657 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25659 if (flags & NDR_IN) {
25660 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
25661 ndr->depth++;
25662 ndr_print_ptr(ndr, "handle", r->in.handle);
25663 ndr->depth++;
25664 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25665 ndr->depth--;
25666 ndr->depth--;
25668 if (flags & NDR_OUT) {
25669 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
25670 ndr->depth++;
25671 ndr_print_WERROR(ndr, "result", r->out.result);
25672 ndr->depth--;
25674 ndr->depth--;
25677 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25679 if (flags & NDR_IN) {
25681 if (flags & NDR_OUT) {
25682 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25684 return NDR_ERR_SUCCESS;
25687 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25689 if (flags & NDR_IN) {
25691 if (flags & NDR_OUT) {
25692 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25694 return NDR_ERR_SUCCESS;
25697 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25699 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25700 ndr->depth++;
25701 if (flags & NDR_SET_VALUES) {
25702 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25704 if (flags & NDR_IN) {
25705 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25706 ndr->depth++;
25707 ndr->depth--;
25709 if (flags & NDR_OUT) {
25710 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25711 ndr->depth++;
25712 ndr_print_WERROR(ndr, "result", r->out.result);
25713 ndr->depth--;
25715 ndr->depth--;
25718 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
25720 if (flags & NDR_IN) {
25721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25723 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25724 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));
25725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
25726 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
25727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25728 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25729 if (r->in.buffer) {
25730 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
25731 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
25734 if (flags & NDR_OUT) {
25735 if (r->out.handle == NULL) {
25736 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25738 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25739 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25741 return NDR_ERR_SUCCESS;
25744 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
25746 uint32_t _ptr_buffer;
25747 TALLOC_CTX *_mem_save_buffer_0;
25748 TALLOC_CTX *_mem_save_handle_0;
25749 if (flags & NDR_IN) {
25750 ZERO_STRUCT(r->out);
25752 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
25753 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
25754 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
25755 return 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));
25757 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
25758 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));
25759 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
25760 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
25761 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
25762 if (r->in.bufsize > 512) {
25763 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
25765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25766 if (_ptr_buffer) {
25767 NDR_PULL_ALLOC(ndr, r->in.buffer);
25768 } else {
25769 r->in.buffer = NULL;
25771 if (r->in.buffer) {
25772 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25773 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25774 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25775 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25776 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25777 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25779 NDR_PULL_ALLOC(ndr, r->out.handle);
25780 ZERO_STRUCTP(r->out.handle);
25781 if (r->in.buffer) {
25782 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
25785 if (flags & NDR_OUT) {
25786 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25787 NDR_PULL_ALLOC(ndr, r->out.handle);
25789 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25790 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25791 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25793 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25795 return NDR_ERR_SUCCESS;
25798 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
25800 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
25801 ndr->depth++;
25802 if (flags & NDR_SET_VALUES) {
25803 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25805 if (flags & NDR_IN) {
25806 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
25807 ndr->depth++;
25808 ndr_print_string(ndr, "server_name", r->in.server_name);
25809 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
25810 ndr_print_winreg_Type(ndr, "type", r->in.type);
25811 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
25812 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25813 ndr->depth++;
25814 if (r->in.buffer) {
25815 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
25817 ndr->depth--;
25818 ndr->depth--;
25820 if (flags & NDR_OUT) {
25821 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
25822 ndr->depth++;
25823 ndr_print_ptr(ndr, "handle", r->out.handle);
25824 ndr->depth++;
25825 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25826 ndr->depth--;
25827 ndr_print_WERROR(ndr, "result", r->out.result);
25828 ndr->depth--;
25830 ndr->depth--;
25833 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
25835 if (flags & NDR_IN) {
25836 if (r->in.handle == NULL) {
25837 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25839 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25840 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
25841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25842 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25843 if (r->in.buffer) {
25844 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
25845 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
25848 if (flags & NDR_OUT) {
25849 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25851 return NDR_ERR_SUCCESS;
25854 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
25856 uint32_t _ptr_buffer;
25857 TALLOC_CTX *_mem_save_handle_0;
25858 TALLOC_CTX *_mem_save_buffer_0;
25859 if (flags & NDR_IN) {
25860 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25861 NDR_PULL_ALLOC(ndr, r->in.handle);
25863 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25864 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25865 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25867 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
25868 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
25869 if (r->in.bufsize > 512) {
25870 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
25872 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25873 if (_ptr_buffer) {
25874 NDR_PULL_ALLOC(ndr, r->in.buffer);
25875 } else {
25876 r->in.buffer = NULL;
25878 if (r->in.buffer) {
25879 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25880 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25881 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25882 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25883 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25886 if (r->in.buffer) {
25887 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
25890 if (flags & NDR_OUT) {
25891 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25893 return NDR_ERR_SUCCESS;
25896 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
25898 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
25899 ndr->depth++;
25900 if (flags & NDR_SET_VALUES) {
25901 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25903 if (flags & NDR_IN) {
25904 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
25905 ndr->depth++;
25906 ndr_print_ptr(ndr, "handle", r->in.handle);
25907 ndr->depth++;
25908 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25909 ndr->depth--;
25910 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
25911 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
25912 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25913 ndr->depth++;
25914 if (r->in.buffer) {
25915 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
25917 ndr->depth--;
25918 ndr->depth--;
25920 if (flags & NDR_OUT) {
25921 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
25922 ndr->depth++;
25923 ndr_print_WERROR(ndr, "result", r->out.result);
25924 ndr->depth--;
25926 ndr->depth--;
25929 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
25931 if (flags & NDR_IN) {
25932 if (r->in.handle == NULL) {
25933 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25935 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25937 if (flags & NDR_OUT) {
25938 if (r->out.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->out.handle));
25942 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25944 return NDR_ERR_SUCCESS;
25947 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
25949 TALLOC_CTX *_mem_save_handle_0;
25950 if (flags & NDR_IN) {
25951 ZERO_STRUCT(r->out);
25953 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25954 NDR_PULL_ALLOC(ndr, r->in.handle);
25956 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25957 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25958 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25960 NDR_PULL_ALLOC(ndr, r->out.handle);
25961 *r->out.handle = *r->in.handle;
25963 if (flags & NDR_OUT) {
25964 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25965 NDR_PULL_ALLOC(ndr, r->out.handle);
25967 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25968 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25969 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25971 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25973 return NDR_ERR_SUCCESS;
25976 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
25978 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
25979 ndr->depth++;
25980 if (flags & NDR_SET_VALUES) {
25981 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25983 if (flags & NDR_IN) {
25984 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
25985 ndr->depth++;
25986 ndr_print_ptr(ndr, "handle", r->in.handle);
25987 ndr->depth++;
25988 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25989 ndr->depth--;
25990 ndr->depth--;
25992 if (flags & NDR_OUT) {
25993 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
25994 ndr->depth++;
25995 ndr_print_ptr(ndr, "handle", r->out.handle);
25996 ndr->depth++;
25997 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25998 ndr->depth--;
25999 ndr_print_WERROR(ndr, "result", r->out.result);
26000 ndr->depth--;
26002 ndr->depth--;
26005 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
26007 if (flags & NDR_IN) {
26009 if (flags & NDR_OUT) {
26010 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26012 return NDR_ERR_SUCCESS;
26015 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
26017 if (flags & NDR_IN) {
26019 if (flags & NDR_OUT) {
26020 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26022 return NDR_ERR_SUCCESS;
26025 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
26027 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
26028 ndr->depth++;
26029 if (flags & NDR_SET_VALUES) {
26030 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26032 if (flags & NDR_IN) {
26033 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
26034 ndr->depth++;
26035 ndr->depth--;
26037 if (flags & NDR_OUT) {
26038 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
26039 ndr->depth++;
26040 ndr_print_WERROR(ndr, "result", r->out.result);
26041 ndr->depth--;
26043 ndr->depth--;
26046 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26048 if (flags & NDR_IN) {
26050 if (flags & NDR_OUT) {
26051 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26053 return NDR_ERR_SUCCESS;
26056 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26058 if (flags & NDR_IN) {
26060 if (flags & NDR_OUT) {
26061 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26063 return NDR_ERR_SUCCESS;
26066 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26068 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
26069 ndr->depth++;
26070 if (flags & NDR_SET_VALUES) {
26071 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26073 if (flags & NDR_IN) {
26074 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
26075 ndr->depth++;
26076 ndr->depth--;
26078 if (flags & NDR_OUT) {
26079 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
26080 ndr->depth++;
26081 ndr_print_WERROR(ndr, "result", r->out.result);
26082 ndr->depth--;
26084 ndr->depth--;
26087 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
26089 if (flags & NDR_IN) {
26091 if (flags & NDR_OUT) {
26092 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26094 return NDR_ERR_SUCCESS;
26097 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
26099 if (flags & NDR_IN) {
26101 if (flags & NDR_OUT) {
26102 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26104 return NDR_ERR_SUCCESS;
26107 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
26109 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
26110 ndr->depth++;
26111 if (flags & NDR_SET_VALUES) {
26112 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26114 if (flags & NDR_IN) {
26115 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
26116 ndr->depth++;
26117 ndr->depth--;
26119 if (flags & NDR_OUT) {
26120 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
26121 ndr->depth++;
26122 ndr_print_WERROR(ndr, "result", r->out.result);
26123 ndr->depth--;
26125 ndr->depth--;
26128 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
26130 if (flags & NDR_IN) {
26132 if (flags & NDR_OUT) {
26133 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26135 return NDR_ERR_SUCCESS;
26138 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
26140 if (flags & NDR_IN) {
26142 if (flags & NDR_OUT) {
26143 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26145 return NDR_ERR_SUCCESS;
26148 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
26150 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
26151 ndr->depth++;
26152 if (flags & NDR_SET_VALUES) {
26153 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26155 if (flags & NDR_IN) {
26156 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
26157 ndr->depth++;
26158 ndr->depth--;
26160 if (flags & NDR_OUT) {
26161 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
26162 ndr->depth++;
26163 ndr_print_WERROR(ndr, "result", r->out.result);
26164 ndr->depth--;
26166 ndr->depth--;
26169 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26171 if (flags & NDR_IN) {
26172 if (r->in.handle == NULL) {
26173 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26175 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26176 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26177 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
26178 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
26179 if (r->in.local_machine) {
26180 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26181 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26182 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26183 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));
26185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
26187 if (r->in.notify_options) {
26188 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26191 if (flags & NDR_OUT) {
26192 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26194 return NDR_ERR_SUCCESS;
26197 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26199 uint32_t _ptr_local_machine;
26200 uint32_t _ptr_notify_options;
26201 TALLOC_CTX *_mem_save_handle_0;
26202 TALLOC_CTX *_mem_save_local_machine_0;
26203 TALLOC_CTX *_mem_save_notify_options_0;
26204 if (flags & NDR_IN) {
26205 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26206 NDR_PULL_ALLOC(ndr, r->in.handle);
26208 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26209 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26210 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26211 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26212 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26213 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
26214 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
26215 if (_ptr_local_machine) {
26216 NDR_PULL_ALLOC(ndr, r->in.local_machine);
26217 } else {
26218 r->in.local_machine = NULL;
26220 if (r->in.local_machine) {
26221 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
26222 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
26223 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
26224 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
26225 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
26226 return 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));
26228 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
26229 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));
26230 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
26232 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26233 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
26234 if (_ptr_notify_options) {
26235 NDR_PULL_ALLOC(ndr, r->in.notify_options);
26236 } else {
26237 r->in.notify_options = NULL;
26239 if (r->in.notify_options) {
26240 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26241 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
26242 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26243 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
26246 if (flags & NDR_OUT) {
26247 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26249 return NDR_ERR_SUCCESS;
26252 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26254 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26255 ndr->depth++;
26256 if (flags & NDR_SET_VALUES) {
26257 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26259 if (flags & NDR_IN) {
26260 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26261 ndr->depth++;
26262 ndr_print_ptr(ndr, "handle", r->in.handle);
26263 ndr->depth++;
26264 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26265 ndr->depth--;
26266 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26267 ndr_print_uint32(ndr, "options", r->in.options);
26268 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
26269 ndr->depth++;
26270 if (r->in.local_machine) {
26271 ndr_print_string(ndr, "local_machine", r->in.local_machine);
26273 ndr->depth--;
26274 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26275 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
26276 ndr->depth++;
26277 if (r->in.notify_options) {
26278 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
26280 ndr->depth--;
26281 ndr->depth--;
26283 if (flags & NDR_OUT) {
26284 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26285 ndr->depth++;
26286 ndr_print_WERROR(ndr, "result", r->out.result);
26287 ndr->depth--;
26289 ndr->depth--;
26292 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26294 if (flags & NDR_IN) {
26295 if (r->in.handle == NULL) {
26296 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26298 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26299 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
26300 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
26302 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26303 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26305 if (flags & NDR_OUT) {
26306 if (r->out.reply_result == NULL) {
26307 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26309 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
26310 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26312 return NDR_ERR_SUCCESS;
26315 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
26317 TALLOC_CTX *_mem_save_handle_0;
26318 TALLOC_CTX *_mem_save_reply_result_0;
26319 if (flags & NDR_IN) {
26320 ZERO_STRUCT(r->out);
26322 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26323 NDR_PULL_ALLOC(ndr, r->in.handle);
26325 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26326 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26327 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26328 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
26330 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
26332 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26333 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26334 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26335 ZERO_STRUCTP(r->out.reply_result);
26337 if (flags & NDR_OUT) {
26338 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26339 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26341 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
26342 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
26343 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
26344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
26345 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26347 return NDR_ERR_SUCCESS;
26350 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26352 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
26353 ndr->depth++;
26354 if (flags & NDR_SET_VALUES) {
26355 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26357 if (flags & NDR_IN) {
26358 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
26359 ndr->depth++;
26360 ndr_print_ptr(ndr, "handle", r->in.handle);
26361 ndr->depth++;
26362 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26363 ndr->depth--;
26364 ndr_print_uint32(ndr, "color", r->in.color);
26365 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26366 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
26367 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
26368 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
26369 ndr->depth--;
26371 if (flags & NDR_OUT) {
26372 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
26373 ndr->depth++;
26374 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
26375 ndr->depth++;
26376 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
26377 ndr->depth--;
26378 ndr_print_WERROR(ndr, "result", r->out.result);
26379 ndr->depth--;
26381 ndr->depth--;
26384 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26386 if (flags & NDR_IN) {
26387 if (r->in.handle == NULL) {
26388 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26390 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
26392 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
26393 if (r->in.options) {
26394 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26397 if (flags & NDR_OUT) {
26398 if (r->out.info == NULL) {
26399 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26401 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
26402 if (*r->out.info) {
26403 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26405 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26407 return NDR_ERR_SUCCESS;
26410 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
26412 uint32_t _ptr_options;
26413 uint32_t _ptr_info;
26414 TALLOC_CTX *_mem_save_handle_0;
26415 TALLOC_CTX *_mem_save_options_0;
26416 TALLOC_CTX *_mem_save_info_0;
26417 TALLOC_CTX *_mem_save_info_1;
26418 if (flags & NDR_IN) {
26419 ZERO_STRUCT(r->out);
26421 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26422 NDR_PULL_ALLOC(ndr, r->in.handle);
26424 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26425 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26426 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
26429 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
26430 if (_ptr_options) {
26431 NDR_PULL_ALLOC(ndr, r->in.options);
26432 } else {
26433 r->in.options = NULL;
26435 if (r->in.options) {
26436 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26437 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
26438 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
26441 NDR_PULL_ALLOC(ndr, r->out.info);
26442 ZERO_STRUCTP(r->out.info);
26444 if (flags & NDR_OUT) {
26445 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26446 NDR_PULL_ALLOC(ndr, r->out.info);
26448 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26449 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
26450 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26451 if (_ptr_info) {
26452 NDR_PULL_ALLOC(ndr, *r->out.info);
26453 } else {
26454 *r->out.info = NULL;
26456 if (*r->out.info) {
26457 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
26458 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
26459 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
26462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
26463 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26465 return NDR_ERR_SUCCESS;
26468 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26470 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
26471 ndr->depth++;
26472 if (flags & NDR_SET_VALUES) {
26473 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26475 if (flags & NDR_IN) {
26476 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
26477 ndr->depth++;
26478 ndr_print_ptr(ndr, "handle", r->in.handle);
26479 ndr->depth++;
26480 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26481 ndr->depth--;
26482 ndr_print_uint32(ndr, "change_low", r->in.change_low);
26483 ndr_print_ptr(ndr, "options", r->in.options);
26484 ndr->depth++;
26485 if (r->in.options) {
26486 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
26488 ndr->depth--;
26489 ndr->depth--;
26491 if (flags & NDR_OUT) {
26492 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
26493 ndr->depth++;
26494 ndr_print_ptr(ndr, "info", r->out.info);
26495 ndr->depth++;
26496 ndr_print_ptr(ndr, "info", *r->out.info);
26497 ndr->depth++;
26498 if (*r->out.info) {
26499 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
26501 ndr->depth--;
26502 ndr->depth--;
26503 ndr_print_WERROR(ndr, "result", r->out.result);
26504 ndr->depth--;
26506 ndr->depth--;
26509 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
26511 if (flags & NDR_IN) {
26513 if (flags & NDR_OUT) {
26514 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26516 return NDR_ERR_SUCCESS;
26519 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
26521 if (flags & NDR_IN) {
26523 if (flags & NDR_OUT) {
26524 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26526 return NDR_ERR_SUCCESS;
26529 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
26531 ndr_print_struct(ndr, name, "spoolss_44");
26532 ndr->depth++;
26533 if (flags & NDR_SET_VALUES) {
26534 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26536 if (flags & NDR_IN) {
26537 ndr_print_struct(ndr, "in", "spoolss_44");
26538 ndr->depth++;
26539 ndr->depth--;
26541 if (flags & NDR_OUT) {
26542 ndr_print_struct(ndr, "out", "spoolss_44");
26543 ndr->depth++;
26544 ndr_print_WERROR(ndr, "result", r->out.result);
26545 ndr->depth--;
26547 ndr->depth--;
26550 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
26552 if (flags & NDR_IN) {
26553 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
26554 if (r->in.printername) {
26555 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26556 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26557 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26558 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26560 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
26561 if (r->in.datatype) {
26562 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26563 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26564 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26565 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26567 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26568 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
26569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26570 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
26571 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
26573 if (flags & NDR_OUT) {
26574 if (r->out.handle == NULL) {
26575 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26577 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26578 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26580 return NDR_ERR_SUCCESS;
26583 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
26585 uint32_t _ptr_printername;
26586 uint32_t _ptr_datatype;
26587 TALLOC_CTX *_mem_save_printername_0;
26588 TALLOC_CTX *_mem_save_datatype_0;
26589 TALLOC_CTX *_mem_save_handle_0;
26590 if (flags & NDR_IN) {
26591 ZERO_STRUCT(r->out);
26593 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
26594 if (_ptr_printername) {
26595 NDR_PULL_ALLOC(ndr, r->in.printername);
26596 } else {
26597 r->in.printername = NULL;
26599 if (r->in.printername) {
26600 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26601 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
26602 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
26603 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
26604 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
26605 return 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));
26607 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
26608 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
26609 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
26611 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
26612 if (_ptr_datatype) {
26613 NDR_PULL_ALLOC(ndr, r->in.datatype);
26614 } else {
26615 r->in.datatype = NULL;
26617 if (r->in.datatype) {
26618 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
26619 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
26620 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
26621 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
26622 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
26623 return 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));
26625 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
26626 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
26627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
26629 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26630 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
26631 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26632 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
26633 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
26634 NDR_PULL_ALLOC(ndr, r->out.handle);
26635 ZERO_STRUCTP(r->out.handle);
26637 if (flags & NDR_OUT) {
26638 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26639 NDR_PULL_ALLOC(ndr, r->out.handle);
26641 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26642 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26643 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26645 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26647 return NDR_ERR_SUCCESS;
26650 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
26652 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
26653 ndr->depth++;
26654 if (flags & NDR_SET_VALUES) {
26655 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26657 if (flags & NDR_IN) {
26658 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
26659 ndr->depth++;
26660 ndr_print_ptr(ndr, "printername", r->in.printername);
26661 ndr->depth++;
26662 if (r->in.printername) {
26663 ndr_print_string(ndr, "printername", r->in.printername);
26665 ndr->depth--;
26666 ndr_print_ptr(ndr, "datatype", r->in.datatype);
26667 ndr->depth++;
26668 if (r->in.datatype) {
26669 ndr_print_string(ndr, "datatype", r->in.datatype);
26671 ndr->depth--;
26672 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
26673 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
26674 ndr_print_uint32(ndr, "level", r->in.level);
26675 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
26676 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
26677 ndr->depth--;
26679 if (flags & NDR_OUT) {
26680 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
26681 ndr->depth++;
26682 ndr_print_ptr(ndr, "handle", r->out.handle);
26683 ndr->depth++;
26684 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26685 ndr->depth--;
26686 ndr_print_WERROR(ndr, "result", r->out.result);
26687 ndr->depth--;
26689 ndr->depth--;
26692 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
26694 if (flags & NDR_IN) {
26695 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26696 if (r->in.server) {
26697 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26698 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26699 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26700 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26702 if (r->in.info_ctr == NULL) {
26703 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26705 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26706 if (r->in.devmode_ctr == NULL) {
26707 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26709 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26710 if (r->in.secdesc_ctr == NULL) {
26711 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26713 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
26714 if (r->in.userlevel_ctr == NULL) {
26715 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26717 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
26719 if (flags & NDR_OUT) {
26720 if (r->out.handle == NULL) {
26721 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26723 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26724 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26726 return NDR_ERR_SUCCESS;
26729 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
26731 uint32_t _ptr_server;
26732 TALLOC_CTX *_mem_save_server_0;
26733 TALLOC_CTX *_mem_save_info_ctr_0;
26734 TALLOC_CTX *_mem_save_devmode_ctr_0;
26735 TALLOC_CTX *_mem_save_secdesc_ctr_0;
26736 TALLOC_CTX *_mem_save_userlevel_ctr_0;
26737 TALLOC_CTX *_mem_save_handle_0;
26738 if (flags & NDR_IN) {
26739 ZERO_STRUCT(r->out);
26741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26742 if (_ptr_server) {
26743 NDR_PULL_ALLOC(ndr, r->in.server);
26744 } else {
26745 r->in.server = NULL;
26747 if (r->in.server) {
26748 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26749 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26750 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26751 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26752 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
26753 return 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));
26755 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
26756 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
26757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26759 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26760 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
26762 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26763 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
26764 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26765 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26766 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26767 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
26769 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26770 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
26771 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26772 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26773 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26774 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
26776 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26777 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
26778 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
26779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26780 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26781 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
26783 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26784 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
26785 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
26786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26787 NDR_PULL_ALLOC(ndr, r->out.handle);
26788 ZERO_STRUCTP(r->out.handle);
26790 if (flags & NDR_OUT) {
26791 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26792 NDR_PULL_ALLOC(ndr, r->out.handle);
26794 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26795 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26796 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26798 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26800 return NDR_ERR_SUCCESS;
26803 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
26805 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
26806 ndr->depth++;
26807 if (flags & NDR_SET_VALUES) {
26808 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26810 if (flags & NDR_IN) {
26811 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
26812 ndr->depth++;
26813 ndr_print_ptr(ndr, "server", r->in.server);
26814 ndr->depth++;
26815 if (r->in.server) {
26816 ndr_print_string(ndr, "server", r->in.server);
26818 ndr->depth--;
26819 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
26820 ndr->depth++;
26821 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
26822 ndr->depth--;
26823 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
26824 ndr->depth++;
26825 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
26826 ndr->depth--;
26827 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
26828 ndr->depth++;
26829 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
26830 ndr->depth--;
26831 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
26832 ndr->depth++;
26833 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
26834 ndr->depth--;
26835 ndr->depth--;
26837 if (flags & NDR_OUT) {
26838 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
26839 ndr->depth++;
26840 ndr_print_ptr(ndr, "handle", r->out.handle);
26841 ndr->depth++;
26842 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26843 ndr->depth--;
26844 ndr_print_WERROR(ndr, "result", r->out.result);
26845 ndr->depth--;
26847 ndr->depth--;
26850 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
26852 if (flags & NDR_IN) {
26854 if (flags & NDR_OUT) {
26855 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26857 return NDR_ERR_SUCCESS;
26860 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
26862 if (flags & NDR_IN) {
26864 if (flags & NDR_OUT) {
26865 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26867 return NDR_ERR_SUCCESS;
26870 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
26872 ndr_print_struct(ndr, name, "spoolss_47");
26873 ndr->depth++;
26874 if (flags & NDR_SET_VALUES) {
26875 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26877 if (flags & NDR_IN) {
26878 ndr_print_struct(ndr, "in", "spoolss_47");
26879 ndr->depth++;
26880 ndr->depth--;
26882 if (flags & NDR_OUT) {
26883 ndr_print_struct(ndr, "out", "spoolss_47");
26884 ndr->depth++;
26885 ndr_print_WERROR(ndr, "result", r->out.result);
26886 ndr->depth--;
26888 ndr->depth--;
26891 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
26893 if (flags & NDR_IN) {
26894 if (r->in.handle == NULL) {
26895 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26897 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
26899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
26900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
26902 if (flags & NDR_OUT) {
26903 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
26904 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
26905 if (r->out.value_needed == NULL) {
26906 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
26909 if (r->out.type == NULL) {
26910 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26912 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
26914 uint32_t _flags_save_uint8 = ndr->flags;
26915 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
26916 if (r->out.data == NULL) {
26917 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26919 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
26920 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
26921 ndr->flags = _flags_save_uint8;
26923 if (r->out.data_needed == NULL) {
26924 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
26927 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26929 return NDR_ERR_SUCCESS;
26932 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
26934 TALLOC_CTX *_mem_save_handle_0;
26935 TALLOC_CTX *_mem_save_value_needed_0;
26936 TALLOC_CTX *_mem_save_type_0;
26937 TALLOC_CTX *_mem_save_data_needed_0;
26938 if (flags & NDR_IN) {
26939 ZERO_STRUCT(r->out);
26941 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26942 NDR_PULL_ALLOC(ndr, r->in.handle);
26944 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26945 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26946 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26948 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
26949 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
26950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
26951 NDR_PULL_ALLOC(ndr, r->out.value_needed);
26952 ZERO_STRUCTP(r->out.value_needed);
26953 NDR_PULL_ALLOC(ndr, r->out.type);
26954 ZERO_STRUCTP(r->out.type);
26955 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
26956 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
26957 NDR_PULL_ALLOC(ndr, r->out.data_needed);
26958 ZERO_STRUCTP(r->out.data_needed);
26960 if (flags & NDR_OUT) {
26961 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
26962 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));
26963 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26964 NDR_PULL_ALLOC(ndr, r->out.value_needed);
26966 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26967 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
26968 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
26969 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
26970 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26971 NDR_PULL_ALLOC(ndr, r->out.type);
26973 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26974 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
26975 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
26976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
26978 uint32_t _flags_save_uint8 = ndr->flags;
26979 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
26980 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
26981 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26982 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
26984 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
26985 ndr->flags = _flags_save_uint8;
26987 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26988 NDR_PULL_ALLOC(ndr, r->out.data_needed);
26990 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26991 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
26992 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
26993 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
26994 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26995 if (r->out.value_name) {
26996 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
26998 if (r->out.data) {
26999 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
27002 return NDR_ERR_SUCCESS;
27005 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
27007 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
27008 ndr->depth++;
27009 if (flags & NDR_SET_VALUES) {
27010 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27012 if (flags & NDR_IN) {
27013 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
27014 ndr->depth++;
27015 ndr_print_ptr(ndr, "handle", r->in.handle);
27016 ndr->depth++;
27017 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27018 ndr->depth--;
27019 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
27020 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
27021 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
27022 ndr->depth--;
27024 if (flags & NDR_OUT) {
27025 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
27026 ndr->depth++;
27027 ndr_print_string(ndr, "value_name", r->out.value_name);
27028 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
27029 ndr->depth++;
27030 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
27031 ndr->depth--;
27032 ndr_print_ptr(ndr, "type", r->out.type);
27033 ndr->depth++;
27034 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27035 ndr->depth--;
27036 ndr_print_ptr(ndr, "data", r->out.data);
27037 ndr->depth++;
27038 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
27039 ndr->depth--;
27040 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
27041 ndr->depth++;
27042 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
27043 ndr->depth--;
27044 ndr_print_WERROR(ndr, "result", r->out.result);
27045 ndr->depth--;
27047 ndr->depth--;
27050 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
27052 if (flags & NDR_IN) {
27053 if (r->in.handle == NULL) {
27054 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27056 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27057 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27058 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27059 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27060 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));
27062 if (flags & NDR_OUT) {
27063 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27065 return NDR_ERR_SUCCESS;
27068 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
27070 TALLOC_CTX *_mem_save_handle_0;
27071 if (flags & NDR_IN) {
27072 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27073 NDR_PULL_ALLOC(ndr, r->in.handle);
27075 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27076 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27077 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27079 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27080 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27081 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27082 return 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));
27084 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27085 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));
27087 if (flags & NDR_OUT) {
27088 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27090 return NDR_ERR_SUCCESS;
27093 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
27095 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
27096 ndr->depth++;
27097 if (flags & NDR_SET_VALUES) {
27098 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27100 if (flags & NDR_IN) {
27101 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
27102 ndr->depth++;
27103 ndr_print_ptr(ndr, "handle", r->in.handle);
27104 ndr->depth++;
27105 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27106 ndr->depth--;
27107 ndr_print_string(ndr, "value_name", r->in.value_name);
27108 ndr->depth--;
27110 if (flags & NDR_OUT) {
27111 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
27112 ndr->depth++;
27113 ndr_print_WERROR(ndr, "result", r->out.result);
27114 ndr->depth--;
27116 ndr->depth--;
27119 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
27121 if (flags & NDR_IN) {
27123 if (flags & NDR_OUT) {
27124 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27126 return NDR_ERR_SUCCESS;
27129 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
27131 if (flags & NDR_IN) {
27133 if (flags & NDR_OUT) {
27134 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27136 return NDR_ERR_SUCCESS;
27139 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
27141 ndr_print_struct(ndr, name, "spoolss_4a");
27142 ndr->depth++;
27143 if (flags & NDR_SET_VALUES) {
27144 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27146 if (flags & NDR_IN) {
27147 ndr_print_struct(ndr, "in", "spoolss_4a");
27148 ndr->depth++;
27149 ndr->depth--;
27151 if (flags & NDR_OUT) {
27152 ndr_print_struct(ndr, "out", "spoolss_4a");
27153 ndr->depth++;
27154 ndr_print_WERROR(ndr, "result", r->out.result);
27155 ndr->depth--;
27157 ndr->depth--;
27160 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
27162 if (flags & NDR_IN) {
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_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
27172 if (flags & NDR_IN) {
27174 if (flags & NDR_OUT) {
27175 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27177 return NDR_ERR_SUCCESS;
27180 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
27182 ndr_print_struct(ndr, name, "spoolss_4b");
27183 ndr->depth++;
27184 if (flags & NDR_SET_VALUES) {
27185 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27187 if (flags & NDR_IN) {
27188 ndr_print_struct(ndr, "in", "spoolss_4b");
27189 ndr->depth++;
27190 ndr->depth--;
27192 if (flags & NDR_OUT) {
27193 ndr_print_struct(ndr, "out", "spoolss_4b");
27194 ndr->depth++;
27195 ndr_print_WERROR(ndr, "result", r->out.result);
27196 ndr->depth--;
27198 ndr->depth--;
27201 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
27203 if (flags & NDR_IN) {
27205 if (flags & NDR_OUT) {
27206 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27208 return NDR_ERR_SUCCESS;
27211 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
27213 if (flags & NDR_IN) {
27215 if (flags & NDR_OUT) {
27216 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27218 return NDR_ERR_SUCCESS;
27221 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
27223 ndr_print_struct(ndr, name, "spoolss_4c");
27224 ndr->depth++;
27225 if (flags & NDR_SET_VALUES) {
27226 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27228 if (flags & NDR_IN) {
27229 ndr_print_struct(ndr, "in", "spoolss_4c");
27230 ndr->depth++;
27231 ndr->depth--;
27233 if (flags & NDR_OUT) {
27234 ndr_print_struct(ndr, "out", "spoolss_4c");
27235 ndr->depth++;
27236 ndr_print_WERROR(ndr, "result", r->out.result);
27237 ndr->depth--;
27239 ndr->depth--;
27242 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
27244 if (flags & NDR_IN) {
27245 if (r->in.handle == NULL) {
27246 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27248 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27250 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27251 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27252 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));
27253 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27254 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27255 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27256 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));
27257 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27258 if (r->in.buffer == NULL) {
27259 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27261 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
27262 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
27263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27265 if (flags & NDR_OUT) {
27266 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27268 return NDR_ERR_SUCCESS;
27271 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
27273 TALLOC_CTX *_mem_save_handle_0;
27274 if (flags & NDR_IN) {
27275 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27276 NDR_PULL_ALLOC(ndr, r->in.handle);
27278 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27279 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27280 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27282 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27283 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27284 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27285 return 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));
27287 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27288 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));
27289 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27290 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27291 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27292 return 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));
27294 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27295 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));
27296 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27297 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
27298 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27299 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
27301 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
27302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27303 if (r->in.buffer) {
27304 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
27307 if (flags & NDR_OUT) {
27308 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27310 return NDR_ERR_SUCCESS;
27313 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
27315 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
27316 ndr->depth++;
27317 if (flags & NDR_SET_VALUES) {
27318 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27320 if (flags & NDR_IN) {
27321 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
27322 ndr->depth++;
27323 ndr_print_ptr(ndr, "handle", r->in.handle);
27324 ndr->depth++;
27325 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27326 ndr->depth--;
27327 ndr_print_string(ndr, "key_name", r->in.key_name);
27328 ndr_print_string(ndr, "value_name", r->in.value_name);
27329 ndr_print_winreg_Type(ndr, "type", r->in.type);
27330 ndr_print_ptr(ndr, "buffer", r->in.buffer);
27331 ndr->depth++;
27332 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
27333 ndr->depth--;
27334 ndr_print_uint32(ndr, "offered", r->in.offered);
27335 ndr->depth--;
27337 if (flags & NDR_OUT) {
27338 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
27339 ndr->depth++;
27340 ndr_print_WERROR(ndr, "result", r->out.result);
27341 ndr->depth--;
27343 ndr->depth--;
27346 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
27348 if (flags & NDR_IN) {
27349 if (r->in.handle == NULL) {
27350 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27352 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27353 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27354 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27355 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27356 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));
27357 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27358 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27359 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27360 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));
27361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27363 if (flags & NDR_OUT) {
27364 if (r->out.type == NULL) {
27365 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27367 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27368 if (r->out.buffer == NULL) {
27369 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27371 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
27372 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
27373 if (r->out.needed == NULL) {
27374 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27377 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27379 return NDR_ERR_SUCCESS;
27382 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
27384 TALLOC_CTX *_mem_save_handle_0;
27385 TALLOC_CTX *_mem_save_type_0;
27386 TALLOC_CTX *_mem_save_needed_0;
27387 if (flags & NDR_IN) {
27388 ZERO_STRUCT(r->out);
27390 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27391 NDR_PULL_ALLOC(ndr, r->in.handle);
27393 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27394 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27395 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27397 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27398 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27399 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27400 return 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));
27402 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27403 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));
27404 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27405 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27406 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27407 return 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));
27409 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27410 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));
27411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27412 NDR_PULL_ALLOC(ndr, r->out.type);
27413 ZERO_STRUCTP(r->out.type);
27414 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
27415 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
27416 NDR_PULL_ALLOC(ndr, r->out.needed);
27417 ZERO_STRUCTP(r->out.needed);
27419 if (flags & NDR_OUT) {
27420 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27421 NDR_PULL_ALLOC(ndr, r->out.type);
27423 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27424 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27425 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27427 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
27428 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27429 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
27431 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
27432 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27433 NDR_PULL_ALLOC(ndr, r->out.needed);
27435 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27436 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27439 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27440 if (r->out.buffer) {
27441 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
27444 return NDR_ERR_SUCCESS;
27447 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
27449 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
27450 ndr->depth++;
27451 if (flags & NDR_SET_VALUES) {
27452 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27454 if (flags & NDR_IN) {
27455 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
27456 ndr->depth++;
27457 ndr_print_ptr(ndr, "handle", r->in.handle);
27458 ndr->depth++;
27459 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27460 ndr->depth--;
27461 ndr_print_string(ndr, "key_name", r->in.key_name);
27462 ndr_print_string(ndr, "value_name", r->in.value_name);
27463 ndr_print_uint32(ndr, "offered", r->in.offered);
27464 ndr->depth--;
27466 if (flags & NDR_OUT) {
27467 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
27468 ndr->depth++;
27469 ndr_print_ptr(ndr, "type", r->out.type);
27470 ndr->depth++;
27471 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27472 ndr->depth--;
27473 ndr_print_ptr(ndr, "buffer", r->out.buffer);
27474 ndr->depth++;
27475 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
27476 ndr->depth--;
27477 ndr_print_ptr(ndr, "needed", r->out.needed);
27478 ndr->depth++;
27479 ndr_print_uint32(ndr, "needed", *r->out.needed);
27480 ndr->depth--;
27481 ndr_print_WERROR(ndr, "result", r->out.result);
27482 ndr->depth--;
27484 ndr->depth--;
27487 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
27489 if (flags & NDR_IN) {
27490 if (r->in.handle == NULL) {
27491 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27493 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27494 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27495 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27496 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27497 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));
27498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27500 if (flags & NDR_OUT) {
27501 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
27502 if (r->out.needed == NULL) {
27503 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27506 if (r->out.count == NULL) {
27507 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
27510 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27512 return NDR_ERR_SUCCESS;
27515 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
27517 TALLOC_CTX *_mem_save_handle_0;
27518 TALLOC_CTX *_mem_save_needed_0;
27519 TALLOC_CTX *_mem_save_count_0;
27520 if (flags & NDR_IN) {
27521 ZERO_STRUCT(r->out);
27523 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27524 NDR_PULL_ALLOC(ndr, r->in.handle);
27526 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27527 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27528 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27529 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27530 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27531 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27532 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27533 return 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));
27535 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27536 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));
27537 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27538 NDR_PULL_ALLOC(ndr, r->out.needed);
27539 ZERO_STRUCTP(r->out.needed);
27540 NDR_PULL_ALLOC(ndr, r->out.count);
27541 ZERO_STRUCTP(r->out.count);
27543 if (flags & NDR_OUT) {
27544 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
27545 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27546 NDR_PULL_ALLOC(ndr, r->out.needed);
27548 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27549 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27550 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27551 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27552 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27553 NDR_PULL_ALLOC(ndr, r->out.count);
27555 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
27556 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
27557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
27558 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
27559 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27561 return NDR_ERR_SUCCESS;
27564 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
27566 uint32_t cntr_info_0;
27567 if (flags & NDR_IN) {
27568 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
27570 if (flags & NDR_OUT) {
27571 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27572 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27574 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27575 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27578 return NDR_ERR_SUCCESS;
27581 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
27583 uint32_t cntr_info_0;
27584 TALLOC_CTX *_mem_save_info_0;
27585 if (flags & NDR_IN) {
27586 ZERO_STRUCT(r->out);
27588 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
27590 if (flags & NDR_OUT) {
27591 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
27592 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27593 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
27594 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27595 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27597 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27598 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27600 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
27602 return NDR_ERR_SUCCESS;
27605 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
27607 uint32_t cntr_info_2;
27608 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
27609 ndr->depth++;
27610 if (flags & NDR_SET_VALUES) {
27611 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27613 if (flags & NDR_IN) {
27614 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
27615 ndr->depth++;
27616 ndr_print_ptr(ndr, "handle", r->in.handle);
27617 ndr->depth++;
27618 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27619 ndr->depth--;
27620 ndr_print_string(ndr, "key_name", r->in.key_name);
27621 ndr_print_uint32(ndr, "offered", r->in.offered);
27622 ndr->depth--;
27624 if (flags & NDR_OUT) {
27625 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
27626 ndr->depth++;
27627 ndr_print_ptr(ndr, "count", r->out.count);
27628 ndr->depth++;
27629 ndr_print_uint32(ndr, "count", *r->out.count);
27630 ndr->depth--;
27631 ndr_print_ptr(ndr, "info", r->out.info);
27632 ndr->depth++;
27633 ndr_print_ptr(ndr, "info", *r->out.info);
27634 ndr->depth++;
27635 if (*r->out.info) {
27636 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
27637 ndr->depth++;
27638 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
27639 char *idx_2=NULL;
27640 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
27641 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
27642 free(idx_2);
27645 ndr->depth--;
27647 ndr->depth--;
27648 ndr->depth--;
27649 ndr_print_ptr(ndr, "needed", r->out.needed);
27650 ndr->depth++;
27651 ndr_print_uint32(ndr, "needed", *r->out.needed);
27652 ndr->depth--;
27653 ndr_print_WERROR(ndr, "result", r->out.result);
27654 ndr->depth--;
27656 ndr->depth--;
27659 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
27661 if (flags & NDR_IN) {
27662 if (r->in.handle == NULL) {
27663 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27665 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27666 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27668 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27669 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));
27670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27672 if (flags & NDR_OUT) {
27674 uint32_t _flags_save_string_array = ndr->flags;
27675 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
27676 if (r->out.key_buffer == NULL) {
27677 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27679 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.key_buffer));
27680 if (*r->out.key_buffer) {
27682 struct ndr_push *_ndr_key_buffer;
27683 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, r->in.offered));
27684 NDR_CHECK(ndr_push_string_array(_ndr_key_buffer, NDR_SCALARS, *r->out.key_buffer));
27685 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, r->in.offered));
27688 ndr->flags = _flags_save_string_array;
27690 if (r->out.needed == NULL) {
27691 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27694 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27696 return NDR_ERR_SUCCESS;
27699 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
27701 uint32_t _ptr_key_buffer;
27702 TALLOC_CTX *_mem_save_handle_0;
27703 TALLOC_CTX *_mem_save_key_buffer_0;
27704 TALLOC_CTX *_mem_save_key_buffer_1;
27705 TALLOC_CTX *_mem_save_needed_0;
27706 if (flags & NDR_IN) {
27707 ZERO_STRUCT(r->out);
27709 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27710 NDR_PULL_ALLOC(ndr, r->in.handle);
27712 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27713 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27714 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27716 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27717 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27718 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27719 return 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));
27721 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27722 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));
27723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27724 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
27725 ZERO_STRUCTP(r->out.key_buffer);
27726 NDR_PULL_ALLOC(ndr, r->out.needed);
27727 ZERO_STRUCTP(r->out.needed);
27729 if (flags & NDR_OUT) {
27731 uint32_t _flags_save_string_array = ndr->flags;
27732 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
27733 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27734 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
27736 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27737 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
27738 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_key_buffer));
27739 if (_ptr_key_buffer) {
27740 NDR_PULL_ALLOC(ndr, *r->out.key_buffer);
27741 } else {
27742 *r->out.key_buffer = NULL;
27744 if (*r->out.key_buffer) {
27745 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
27746 NDR_PULL_SET_MEM_CTX(ndr, *r->out.key_buffer, 0);
27748 struct ndr_pull *_ndr_key_buffer;
27749 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, r->in.offered));
27750 NDR_CHECK(ndr_pull_string_array(_ndr_key_buffer, NDR_SCALARS, r->out.key_buffer));
27751 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, r->in.offered));
27753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
27755 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
27756 ndr->flags = _flags_save_string_array;
27758 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27759 NDR_PULL_ALLOC(ndr, r->out.needed);
27761 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27762 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27764 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27765 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27767 return NDR_ERR_SUCCESS;
27770 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
27772 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
27773 ndr->depth++;
27774 if (flags & NDR_SET_VALUES) {
27775 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27777 if (flags & NDR_IN) {
27778 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
27779 ndr->depth++;
27780 ndr_print_ptr(ndr, "handle", r->in.handle);
27781 ndr->depth++;
27782 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27783 ndr->depth--;
27784 ndr_print_string(ndr, "key_name", r->in.key_name);
27785 ndr_print_uint32(ndr, "offered", r->in.offered);
27786 ndr->depth--;
27788 if (flags & NDR_OUT) {
27789 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
27790 ndr->depth++;
27791 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
27792 ndr->depth++;
27793 ndr_print_ptr(ndr, "key_buffer", *r->out.key_buffer);
27794 ndr->depth++;
27795 if (*r->out.key_buffer) {
27796 ndr_print_string_array(ndr, "key_buffer", *r->out.key_buffer);
27798 ndr->depth--;
27799 ndr->depth--;
27800 ndr_print_ptr(ndr, "needed", r->out.needed);
27801 ndr->depth++;
27802 ndr_print_uint32(ndr, "needed", *r->out.needed);
27803 ndr->depth--;
27804 ndr_print_WERROR(ndr, "result", r->out.result);
27805 ndr->depth--;
27807 ndr->depth--;
27810 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
27812 if (flags & NDR_IN) {
27813 if (r->in.handle == NULL) {
27814 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27816 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27817 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27818 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27819 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27820 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));
27821 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27822 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27823 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27824 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));
27826 if (flags & NDR_OUT) {
27827 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27829 return NDR_ERR_SUCCESS;
27832 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
27834 TALLOC_CTX *_mem_save_handle_0;
27835 if (flags & NDR_IN) {
27836 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27837 NDR_PULL_ALLOC(ndr, r->in.handle);
27839 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27840 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27841 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27842 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27843 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27844 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27845 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27846 return 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));
27848 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27849 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));
27850 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27851 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27852 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27853 return 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));
27855 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27856 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));
27858 if (flags & NDR_OUT) {
27859 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27861 return NDR_ERR_SUCCESS;
27864 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
27866 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
27867 ndr->depth++;
27868 if (flags & NDR_SET_VALUES) {
27869 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27871 if (flags & NDR_IN) {
27872 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
27873 ndr->depth++;
27874 ndr_print_ptr(ndr, "handle", r->in.handle);
27875 ndr->depth++;
27876 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27877 ndr->depth--;
27878 ndr_print_string(ndr, "key_name", r->in.key_name);
27879 ndr_print_string(ndr, "value_name", r->in.value_name);
27880 ndr->depth--;
27882 if (flags & NDR_OUT) {
27883 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
27884 ndr->depth++;
27885 ndr_print_WERROR(ndr, "result", r->out.result);
27886 ndr->depth--;
27888 ndr->depth--;
27891 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
27893 if (flags & NDR_IN) {
27894 if (r->in.handle == NULL) {
27895 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27897 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27898 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27899 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27900 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27901 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));
27903 if (flags & NDR_OUT) {
27904 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27906 return NDR_ERR_SUCCESS;
27909 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
27911 TALLOC_CTX *_mem_save_handle_0;
27912 if (flags & NDR_IN) {
27913 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27914 NDR_PULL_ALLOC(ndr, r->in.handle);
27916 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27917 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27918 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27920 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27921 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27922 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27923 return 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));
27925 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27926 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));
27928 if (flags & NDR_OUT) {
27929 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27931 return NDR_ERR_SUCCESS;
27934 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
27936 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
27937 ndr->depth++;
27938 if (flags & NDR_SET_VALUES) {
27939 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27941 if (flags & NDR_IN) {
27942 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
27943 ndr->depth++;
27944 ndr_print_ptr(ndr, "handle", r->in.handle);
27945 ndr->depth++;
27946 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27947 ndr->depth--;
27948 ndr_print_string(ndr, "key_name", r->in.key_name);
27949 ndr->depth--;
27951 if (flags & NDR_OUT) {
27952 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
27953 ndr->depth++;
27954 ndr_print_WERROR(ndr, "result", r->out.result);
27955 ndr->depth--;
27957 ndr->depth--;
27960 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
27962 if (flags & NDR_IN) {
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_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
27972 if (flags & NDR_IN) {
27974 if (flags & NDR_OUT) {
27975 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27977 return NDR_ERR_SUCCESS;
27980 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
27982 ndr_print_struct(ndr, name, "spoolss_53");
27983 ndr->depth++;
27984 if (flags & NDR_SET_VALUES) {
27985 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27987 if (flags & NDR_IN) {
27988 ndr_print_struct(ndr, "in", "spoolss_53");
27989 ndr->depth++;
27990 ndr->depth--;
27992 if (flags & NDR_OUT) {
27993 ndr_print_struct(ndr, "out", "spoolss_53");
27994 ndr->depth++;
27995 ndr_print_WERROR(ndr, "result", r->out.result);
27996 ndr->depth--;
27998 ndr->depth--;
28001 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28003 if (flags & NDR_IN) {
28004 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
28005 if (r->in.server) {
28006 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28008 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28009 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28011 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28012 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28013 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28014 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28015 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28016 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28017 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28018 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28019 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
28020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
28022 if (flags & NDR_OUT) {
28023 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28025 return NDR_ERR_SUCCESS;
28028 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
28030 uint32_t _ptr_server;
28031 TALLOC_CTX *_mem_save_server_0;
28032 if (flags & NDR_IN) {
28033 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28034 if (_ptr_server) {
28035 NDR_PULL_ALLOC(ndr, r->in.server);
28036 } else {
28037 r->in.server = NULL;
28039 if (r->in.server) {
28040 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28041 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28042 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28043 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28044 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
28045 return 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));
28047 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
28048 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
28049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28051 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
28052 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
28053 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
28054 return 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));
28056 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
28057 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
28058 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
28059 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
28060 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
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.driver), ndr_get_array_length(ndr, &r->in.driver));
28063 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
28064 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
28065 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
28066 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
28068 if (flags & NDR_OUT) {
28069 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28071 return NDR_ERR_SUCCESS;
28074 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28076 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
28077 ndr->depth++;
28078 if (flags & NDR_SET_VALUES) {
28079 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28081 if (flags & NDR_IN) {
28082 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
28083 ndr->depth++;
28084 ndr_print_ptr(ndr, "server", r->in.server);
28085 ndr->depth++;
28086 if (r->in.server) {
28087 ndr_print_string(ndr, "server", r->in.server);
28089 ndr->depth--;
28090 ndr_print_string(ndr, "architecture", r->in.architecture);
28091 ndr_print_string(ndr, "driver", r->in.driver);
28092 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
28093 ndr_print_uint32(ndr, "version", r->in.version);
28094 ndr->depth--;
28096 if (flags & NDR_OUT) {
28097 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
28098 ndr->depth++;
28099 ndr_print_WERROR(ndr, "result", r->out.result);
28100 ndr->depth--;
28102 ndr->depth--;
28105 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
28107 if (flags & NDR_IN) {
28109 if (flags & NDR_OUT) {
28110 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28112 return NDR_ERR_SUCCESS;
28115 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
28117 if (flags & NDR_IN) {
28119 if (flags & NDR_OUT) {
28120 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28122 return NDR_ERR_SUCCESS;
28125 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
28127 ndr_print_struct(ndr, name, "spoolss_55");
28128 ndr->depth++;
28129 if (flags & NDR_SET_VALUES) {
28130 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28132 if (flags & NDR_IN) {
28133 ndr_print_struct(ndr, "in", "spoolss_55");
28134 ndr->depth++;
28135 ndr->depth--;
28137 if (flags & NDR_OUT) {
28138 ndr_print_struct(ndr, "out", "spoolss_55");
28139 ndr->depth++;
28140 ndr_print_WERROR(ndr, "result", r->out.result);
28141 ndr->depth--;
28143 ndr->depth--;
28146 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
28148 if (flags & NDR_IN) {
28150 if (flags & NDR_OUT) {
28151 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28153 return NDR_ERR_SUCCESS;
28156 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
28158 if (flags & NDR_IN) {
28160 if (flags & NDR_OUT) {
28161 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28163 return NDR_ERR_SUCCESS;
28166 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
28168 ndr_print_struct(ndr, name, "spoolss_56");
28169 ndr->depth++;
28170 if (flags & NDR_SET_VALUES) {
28171 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28173 if (flags & NDR_IN) {
28174 ndr_print_struct(ndr, "in", "spoolss_56");
28175 ndr->depth++;
28176 ndr->depth--;
28178 if (flags & NDR_OUT) {
28179 ndr_print_struct(ndr, "out", "spoolss_56");
28180 ndr->depth++;
28181 ndr_print_WERROR(ndr, "result", r->out.result);
28182 ndr->depth--;
28184 ndr->depth--;
28187 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
28189 if (flags & NDR_IN) {
28191 if (flags & NDR_OUT) {
28192 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28194 return NDR_ERR_SUCCESS;
28197 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
28199 if (flags & NDR_IN) {
28201 if (flags & NDR_OUT) {
28202 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28204 return NDR_ERR_SUCCESS;
28207 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
28209 ndr_print_struct(ndr, name, "spoolss_57");
28210 ndr->depth++;
28211 if (flags & NDR_SET_VALUES) {
28212 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28214 if (flags & NDR_IN) {
28215 ndr_print_struct(ndr, "in", "spoolss_57");
28216 ndr->depth++;
28217 ndr->depth--;
28219 if (flags & NDR_OUT) {
28220 ndr_print_struct(ndr, "out", "spoolss_57");
28221 ndr->depth++;
28222 ndr_print_WERROR(ndr, "result", r->out.result);
28223 ndr->depth--;
28225 ndr->depth--;
28228 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
28230 if (flags & NDR_IN) {
28231 if (r->in.handle == NULL) {
28232 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28234 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28235 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28236 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28237 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28238 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));
28239 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
28240 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
28241 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
28242 if (r->in.status_code == NULL) {
28243 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
28247 if (flags & NDR_OUT) {
28248 if (r->out.out_data == NULL) {
28249 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28251 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
28252 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
28253 if (r->out.needed == NULL) {
28254 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28257 if (r->out.status_code == NULL) {
28258 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
28261 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28263 return NDR_ERR_SUCCESS;
28266 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
28268 TALLOC_CTX *_mem_save_handle_0;
28269 TALLOC_CTX *_mem_save_needed_0;
28270 TALLOC_CTX *_mem_save_status_code_0;
28271 if (flags & NDR_IN) {
28272 ZERO_STRUCT(r->out);
28274 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28275 NDR_PULL_ALLOC(ndr, r->in.handle);
28277 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28278 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28279 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28280 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28281 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
28282 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
28283 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
28284 return 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));
28286 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
28287 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));
28288 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
28289 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
28290 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
28291 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28292 NDR_PULL_ALLOC(ndr, r->in.status_code);
28294 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28295 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
28296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
28297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28298 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
28299 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
28300 NDR_PULL_ALLOC(ndr, r->out.needed);
28301 ZERO_STRUCTP(r->out.needed);
28302 NDR_PULL_ALLOC(ndr, r->out.status_code);
28303 *r->out.status_code = *r->in.status_code;
28305 if (flags & NDR_OUT) {
28306 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
28307 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28308 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
28310 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
28311 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28312 NDR_PULL_ALLOC(ndr, r->out.needed);
28314 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28315 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28316 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28317 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28318 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28319 NDR_PULL_ALLOC(ndr, r->out.status_code);
28321 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28322 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
28323 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
28324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28325 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28326 if (r->out.out_data) {
28327 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
28330 return NDR_ERR_SUCCESS;
28333 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
28335 ndr_print_struct(ndr, name, "spoolss_XcvData");
28336 ndr->depth++;
28337 if (flags & NDR_SET_VALUES) {
28338 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28340 if (flags & NDR_IN) {
28341 ndr_print_struct(ndr, "in", "spoolss_XcvData");
28342 ndr->depth++;
28343 ndr_print_ptr(ndr, "handle", r->in.handle);
28344 ndr->depth++;
28345 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28346 ndr->depth--;
28347 ndr_print_string(ndr, "function_name", r->in.function_name);
28348 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
28349 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
28350 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
28351 ndr_print_ptr(ndr, "status_code", r->in.status_code);
28352 ndr->depth++;
28353 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
28354 ndr->depth--;
28355 ndr->depth--;
28357 if (flags & NDR_OUT) {
28358 ndr_print_struct(ndr, "out", "spoolss_XcvData");
28359 ndr->depth++;
28360 ndr_print_ptr(ndr, "out_data", r->out.out_data);
28361 ndr->depth++;
28362 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
28363 ndr->depth--;
28364 ndr_print_ptr(ndr, "needed", r->out.needed);
28365 ndr->depth++;
28366 ndr_print_uint32(ndr, "needed", *r->out.needed);
28367 ndr->depth--;
28368 ndr_print_ptr(ndr, "status_code", r->out.status_code);
28369 ndr->depth++;
28370 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
28371 ndr->depth--;
28372 ndr_print_WERROR(ndr, "result", r->out.result);
28373 ndr->depth--;
28375 ndr->depth--;
28378 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
28380 if (flags & NDR_IN) {
28381 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
28382 if (r->in.servername) {
28383 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28384 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28385 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28386 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28388 if (r->in.info_ctr == NULL) {
28389 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28391 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28392 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
28394 if (flags & NDR_OUT) {
28395 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28397 return NDR_ERR_SUCCESS;
28400 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
28402 uint32_t _ptr_servername;
28403 TALLOC_CTX *_mem_save_servername_0;
28404 TALLOC_CTX *_mem_save_info_ctr_0;
28405 if (flags & NDR_IN) {
28406 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
28407 if (_ptr_servername) {
28408 NDR_PULL_ALLOC(ndr, r->in.servername);
28409 } else {
28410 r->in.servername = NULL;
28412 if (r->in.servername) {
28413 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
28414 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
28415 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
28416 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
28417 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
28418 return 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));
28420 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
28421 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
28422 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
28424 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28425 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28427 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28428 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
28429 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28431 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
28433 if (flags & NDR_OUT) {
28434 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28436 return NDR_ERR_SUCCESS;
28439 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
28441 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
28442 ndr->depth++;
28443 if (flags & NDR_SET_VALUES) {
28444 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28446 if (flags & NDR_IN) {
28447 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
28448 ndr->depth++;
28449 ndr_print_ptr(ndr, "servername", r->in.servername);
28450 ndr->depth++;
28451 if (r->in.servername) {
28452 ndr_print_string(ndr, "servername", r->in.servername);
28454 ndr->depth--;
28455 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
28456 ndr->depth++;
28457 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
28458 ndr->depth--;
28459 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
28460 ndr->depth--;
28462 if (flags & NDR_OUT) {
28463 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
28464 ndr->depth++;
28465 ndr_print_WERROR(ndr, "result", r->out.result);
28466 ndr->depth--;
28468 ndr->depth--;
28471 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
28473 if (flags & NDR_IN) {
28475 if (flags & NDR_OUT) {
28476 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28478 return NDR_ERR_SUCCESS;
28481 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
28483 if (flags & NDR_IN) {
28485 if (flags & NDR_OUT) {
28486 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28488 return NDR_ERR_SUCCESS;
28491 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
28493 ndr_print_struct(ndr, name, "spoolss_5a");
28494 ndr->depth++;
28495 if (flags & NDR_SET_VALUES) {
28496 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28498 if (flags & NDR_IN) {
28499 ndr_print_struct(ndr, "in", "spoolss_5a");
28500 ndr->depth++;
28501 ndr->depth--;
28503 if (flags & NDR_OUT) {
28504 ndr_print_struct(ndr, "out", "spoolss_5a");
28505 ndr->depth++;
28506 ndr_print_WERROR(ndr, "result", r->out.result);
28507 ndr->depth--;
28509 ndr->depth--;
28512 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
28514 if (flags & NDR_IN) {
28516 if (flags & NDR_OUT) {
28517 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28519 return NDR_ERR_SUCCESS;
28522 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
28524 if (flags & NDR_IN) {
28526 if (flags & NDR_OUT) {
28527 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28529 return NDR_ERR_SUCCESS;
28532 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
28534 ndr_print_struct(ndr, name, "spoolss_5b");
28535 ndr->depth++;
28536 if (flags & NDR_SET_VALUES) {
28537 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28539 if (flags & NDR_IN) {
28540 ndr_print_struct(ndr, "in", "spoolss_5b");
28541 ndr->depth++;
28542 ndr->depth--;
28544 if (flags & NDR_OUT) {
28545 ndr_print_struct(ndr, "out", "spoolss_5b");
28546 ndr->depth++;
28547 ndr_print_WERROR(ndr, "result", r->out.result);
28548 ndr->depth--;
28550 ndr->depth--;
28553 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
28555 if (flags & NDR_IN) {
28557 if (flags & NDR_OUT) {
28558 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28560 return NDR_ERR_SUCCESS;
28563 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
28565 if (flags & NDR_IN) {
28567 if (flags & NDR_OUT) {
28568 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28570 return NDR_ERR_SUCCESS;
28573 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
28575 ndr_print_struct(ndr, name, "spoolss_5c");
28576 ndr->depth++;
28577 if (flags & NDR_SET_VALUES) {
28578 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28580 if (flags & NDR_IN) {
28581 ndr_print_struct(ndr, "in", "spoolss_5c");
28582 ndr->depth++;
28583 ndr->depth--;
28585 if (flags & NDR_OUT) {
28586 ndr_print_struct(ndr, "out", "spoolss_5c");
28587 ndr->depth++;
28588 ndr_print_WERROR(ndr, "result", r->out.result);
28589 ndr->depth--;
28591 ndr->depth--;
28594 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
28596 if (flags & NDR_IN) {
28598 if (flags & NDR_OUT) {
28599 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28601 return NDR_ERR_SUCCESS;
28604 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
28606 if (flags & NDR_IN) {
28608 if (flags & NDR_OUT) {
28609 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28611 return NDR_ERR_SUCCESS;
28614 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
28616 ndr_print_struct(ndr, name, "spoolss_5d");
28617 ndr->depth++;
28618 if (flags & NDR_SET_VALUES) {
28619 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28621 if (flags & NDR_IN) {
28622 ndr_print_struct(ndr, "in", "spoolss_5d");
28623 ndr->depth++;
28624 ndr->depth--;
28626 if (flags & NDR_OUT) {
28627 ndr_print_struct(ndr, "out", "spoolss_5d");
28628 ndr->depth++;
28629 ndr_print_WERROR(ndr, "result", r->out.result);
28630 ndr->depth--;
28632 ndr->depth--;
28635 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
28637 if (flags & NDR_IN) {
28639 if (flags & NDR_OUT) {
28640 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28642 return NDR_ERR_SUCCESS;
28645 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
28647 if (flags & NDR_IN) {
28649 if (flags & NDR_OUT) {
28650 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28652 return NDR_ERR_SUCCESS;
28655 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
28657 ndr_print_struct(ndr, name, "spoolss_5e");
28658 ndr->depth++;
28659 if (flags & NDR_SET_VALUES) {
28660 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28662 if (flags & NDR_IN) {
28663 ndr_print_struct(ndr, "in", "spoolss_5e");
28664 ndr->depth++;
28665 ndr->depth--;
28667 if (flags & NDR_OUT) {
28668 ndr_print_struct(ndr, "out", "spoolss_5e");
28669 ndr->depth++;
28670 ndr_print_WERROR(ndr, "result", r->out.result);
28671 ndr->depth--;
28673 ndr->depth--;
28676 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
28678 if (flags & NDR_IN) {
28680 if (flags & NDR_OUT) {
28681 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28683 return NDR_ERR_SUCCESS;
28686 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
28688 if (flags & NDR_IN) {
28690 if (flags & NDR_OUT) {
28691 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28693 return NDR_ERR_SUCCESS;
28696 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
28698 ndr_print_struct(ndr, name, "spoolss_5f");
28699 ndr->depth++;
28700 if (flags & NDR_SET_VALUES) {
28701 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28703 if (flags & NDR_IN) {
28704 ndr_print_struct(ndr, "in", "spoolss_5f");
28705 ndr->depth++;
28706 ndr->depth--;
28708 if (flags & NDR_OUT) {
28709 ndr_print_struct(ndr, "out", "spoolss_5f");
28710 ndr->depth++;
28711 ndr_print_WERROR(ndr, "result", r->out.result);
28712 ndr->depth--;
28714 ndr->depth--;
28717 static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, int flags, const struct spoolss_60 *r)
28719 if (flags & NDR_IN) {
28721 if (flags & NDR_OUT) {
28722 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28724 return NDR_ERR_SUCCESS;
28727 static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, int flags, struct spoolss_60 *r)
28729 if (flags & NDR_IN) {
28731 if (flags & NDR_OUT) {
28732 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28734 return NDR_ERR_SUCCESS;
28737 _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_60 *r)
28739 ndr_print_struct(ndr, name, "spoolss_60");
28740 ndr->depth++;
28741 if (flags & NDR_SET_VALUES) {
28742 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28744 if (flags & NDR_IN) {
28745 ndr_print_struct(ndr, "in", "spoolss_60");
28746 ndr->depth++;
28747 ndr->depth--;
28749 if (flags & NDR_OUT) {
28750 ndr_print_struct(ndr, "out", "spoolss_60");
28751 ndr->depth++;
28752 ndr_print_WERROR(ndr, "result", r->out.result);
28753 ndr->depth--;
28755 ndr->depth--;
28758 static enum ndr_err_code ndr_push_spoolss_61(struct ndr_push *ndr, int flags, const struct spoolss_61 *r)
28760 if (flags & NDR_IN) {
28762 if (flags & NDR_OUT) {
28763 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28765 return NDR_ERR_SUCCESS;
28768 static enum ndr_err_code ndr_pull_spoolss_61(struct ndr_pull *ndr, int flags, struct spoolss_61 *r)
28770 if (flags & NDR_IN) {
28772 if (flags & NDR_OUT) {
28773 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28775 return NDR_ERR_SUCCESS;
28778 _PUBLIC_ void ndr_print_spoolss_61(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_61 *r)
28780 ndr_print_struct(ndr, name, "spoolss_61");
28781 ndr->depth++;
28782 if (flags & NDR_SET_VALUES) {
28783 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28785 if (flags & NDR_IN) {
28786 ndr_print_struct(ndr, "in", "spoolss_61");
28787 ndr->depth++;
28788 ndr->depth--;
28790 if (flags & NDR_OUT) {
28791 ndr_print_struct(ndr, "out", "spoolss_61");
28792 ndr->depth++;
28793 ndr_print_WERROR(ndr, "result", r->out.result);
28794 ndr->depth--;
28796 ndr->depth--;
28799 static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, int flags, const struct spoolss_62 *r)
28801 if (flags & NDR_IN) {
28803 if (flags & NDR_OUT) {
28804 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28806 return NDR_ERR_SUCCESS;
28809 static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, int flags, struct spoolss_62 *r)
28811 if (flags & NDR_IN) {
28813 if (flags & NDR_OUT) {
28814 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28816 return NDR_ERR_SUCCESS;
28819 _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_62 *r)
28821 ndr_print_struct(ndr, name, "spoolss_62");
28822 ndr->depth++;
28823 if (flags & NDR_SET_VALUES) {
28824 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28826 if (flags & NDR_IN) {
28827 ndr_print_struct(ndr, "in", "spoolss_62");
28828 ndr->depth++;
28829 ndr->depth--;
28831 if (flags & NDR_OUT) {
28832 ndr_print_struct(ndr, "out", "spoolss_62");
28833 ndr->depth++;
28834 ndr_print_WERROR(ndr, "result", r->out.result);
28835 ndr->depth--;
28837 ndr->depth--;
28840 static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, int flags, const struct spoolss_63 *r)
28842 if (flags & NDR_IN) {
28844 if (flags & NDR_OUT) {
28845 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28847 return NDR_ERR_SUCCESS;
28850 static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, int flags, struct spoolss_63 *r)
28852 if (flags & NDR_IN) {
28854 if (flags & NDR_OUT) {
28855 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28857 return NDR_ERR_SUCCESS;
28860 _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_63 *r)
28862 ndr_print_struct(ndr, name, "spoolss_63");
28863 ndr->depth++;
28864 if (flags & NDR_SET_VALUES) {
28865 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28867 if (flags & NDR_IN) {
28868 ndr_print_struct(ndr, "in", "spoolss_63");
28869 ndr->depth++;
28870 ndr->depth--;
28872 if (flags & NDR_OUT) {
28873 ndr_print_struct(ndr, "out", "spoolss_63");
28874 ndr->depth++;
28875 ndr_print_WERROR(ndr, "result", r->out.result);
28876 ndr->depth--;
28878 ndr->depth--;
28881 static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, int flags, const struct spoolss_64 *r)
28883 if (flags & NDR_IN) {
28885 if (flags & NDR_OUT) {
28886 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28888 return NDR_ERR_SUCCESS;
28891 static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, int flags, struct spoolss_64 *r)
28893 if (flags & NDR_IN) {
28895 if (flags & NDR_OUT) {
28896 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28898 return NDR_ERR_SUCCESS;
28901 _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_64 *r)
28903 ndr_print_struct(ndr, name, "spoolss_64");
28904 ndr->depth++;
28905 if (flags & NDR_SET_VALUES) {
28906 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28908 if (flags & NDR_IN) {
28909 ndr_print_struct(ndr, "in", "spoolss_64");
28910 ndr->depth++;
28911 ndr->depth--;
28913 if (flags & NDR_OUT) {
28914 ndr_print_struct(ndr, "out", "spoolss_64");
28915 ndr->depth++;
28916 ndr_print_WERROR(ndr, "result", r->out.result);
28917 ndr->depth--;
28919 ndr->depth--;
28922 static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, int flags, const struct spoolss_65 *r)
28924 if (flags & NDR_IN) {
28926 if (flags & NDR_OUT) {
28927 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28929 return NDR_ERR_SUCCESS;
28932 static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, int flags, struct spoolss_65 *r)
28934 if (flags & NDR_IN) {
28936 if (flags & NDR_OUT) {
28937 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28939 return NDR_ERR_SUCCESS;
28942 _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_65 *r)
28944 ndr_print_struct(ndr, name, "spoolss_65");
28945 ndr->depth++;
28946 if (flags & NDR_SET_VALUES) {
28947 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28949 if (flags & NDR_IN) {
28950 ndr_print_struct(ndr, "in", "spoolss_65");
28951 ndr->depth++;
28952 ndr->depth--;
28954 if (flags & NDR_OUT) {
28955 ndr_print_struct(ndr, "out", "spoolss_65");
28956 ndr->depth++;
28957 ndr_print_WERROR(ndr, "result", r->out.result);
28958 ndr->depth--;
28960 ndr->depth--;
28963 static enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_GetCorePrinterDrivers *r)
28965 uint32_t cntr_core_printer_drivers_1;
28966 if (flags & NDR_IN) {
28967 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
28968 if (r->in.servername) {
28969 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28970 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28971 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28972 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28974 if (r->in.architecture == NULL) {
28975 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28977 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28978 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28979 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28980 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
28982 if (r->in.core_driver_dependencies == NULL) {
28983 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28985 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
28986 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.core_driver_dependencies, r->in.core_driver_size, sizeof(uint16_t), CH_UTF16));
28987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
28989 if (flags & NDR_OUT) {
28990 if (r->out.core_printer_drivers == NULL) {
28991 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28993 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
28994 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
28995 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
28997 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28999 return NDR_ERR_SUCCESS;
29002 static enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_GetCorePrinterDrivers *r)
29004 uint32_t _ptr_servername;
29005 uint32_t cntr_core_printer_drivers_1;
29006 TALLOC_CTX *_mem_save_servername_0;
29007 TALLOC_CTX *_mem_save_core_printer_drivers_1;
29008 if (flags & NDR_IN) {
29009 ZERO_STRUCT(r->out);
29011 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29012 if (_ptr_servername) {
29013 NDR_PULL_ALLOC(ndr, r->in.servername);
29014 } else {
29015 r->in.servername = NULL;
29017 if (r->in.servername) {
29018 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29019 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29020 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29021 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29022 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29023 return 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));
29025 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29026 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29029 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29030 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29031 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29032 return 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));
29034 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29035 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29036 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
29037 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
29038 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));
29039 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
29040 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
29041 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
29042 if (r->in.core_driver_dependencies) {
29043 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
29046 if (flags & NDR_OUT) {
29047 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
29048 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29049 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, ndr_get_array_size(ndr, &r->out.core_printer_drivers));
29051 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
29052 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
29053 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29054 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29056 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
29057 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29058 if (r->out.core_printer_drivers) {
29059 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
29062 return NDR_ERR_SUCCESS;
29065 _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29067 uint32_t cntr_core_printer_drivers_1;
29068 ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
29069 ndr->depth++;
29070 if (flags & NDR_SET_VALUES) {
29071 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29073 if (flags & NDR_IN) {
29074 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
29075 ndr->depth++;
29076 ndr_print_ptr(ndr, "servername", r->in.servername);
29077 ndr->depth++;
29078 if (r->in.servername) {
29079 ndr_print_string(ndr, "servername", r->in.servername);
29081 ndr->depth--;
29082 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29083 ndr->depth++;
29084 ndr_print_string(ndr, "architecture", r->in.architecture);
29085 ndr->depth--;
29086 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
29087 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29088 ndr->depth++;
29089 ndr_print_string(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29090 ndr->depth--;
29091 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
29092 ndr->depth--;
29094 if (flags & NDR_OUT) {
29095 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
29096 ndr->depth++;
29097 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
29098 ndr->depth++;
29099 ndr->print(ndr, "%s: ARRAY(%d)", "core_printer_drivers", (int)r->in.core_printer_driver_count);
29100 ndr->depth++;
29101 for (cntr_core_printer_drivers_1=0;cntr_core_printer_drivers_1<r->in.core_printer_driver_count;cntr_core_printer_drivers_1++) {
29102 char *idx_1=NULL;
29103 if (asprintf(&idx_1, "[%d]", cntr_core_printer_drivers_1) != -1) {
29104 ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
29105 free(idx_1);
29108 ndr->depth--;
29109 ndr->depth--;
29110 ndr_print_WERROR(ndr, "result", r->out.result);
29111 ndr->depth--;
29113 ndr->depth--;
29116 static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, int flags, const struct spoolss_67 *r)
29118 if (flags & NDR_IN) {
29120 if (flags & NDR_OUT) {
29121 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29123 return NDR_ERR_SUCCESS;
29126 static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, int flags, struct spoolss_67 *r)
29128 if (flags & NDR_IN) {
29130 if (flags & NDR_OUT) {
29131 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29133 return NDR_ERR_SUCCESS;
29136 _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_67 *r)
29138 ndr_print_struct(ndr, name, "spoolss_67");
29139 ndr->depth++;
29140 if (flags & NDR_SET_VALUES) {
29141 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29143 if (flags & NDR_IN) {
29144 ndr_print_struct(ndr, "in", "spoolss_67");
29145 ndr->depth++;
29146 ndr->depth--;
29148 if (flags & NDR_OUT) {
29149 ndr_print_struct(ndr, "out", "spoolss_67");
29150 ndr->depth++;
29151 ndr_print_WERROR(ndr, "result", r->out.result);
29152 ndr->depth--;
29154 ndr->depth--;
29157 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29159 if (flags & NDR_IN) {
29160 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29161 if (r->in.servername) {
29162 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29163 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29164 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29165 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29167 if (r->in.architecture == NULL) {
29168 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29170 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29171 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29172 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29173 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29174 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
29175 if (r->in.language) {
29176 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29177 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29178 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29179 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29181 if (r->in.package_id == NULL) {
29182 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29184 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29185 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29186 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29187 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));
29188 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
29189 if (r->in.driver_package_cab) {
29190 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29191 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29193 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29195 if (flags & NDR_OUT) {
29196 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
29197 if (r->out.driver_package_cab) {
29198 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29199 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29201 if (r->out.required == NULL) {
29202 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
29205 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29207 return NDR_ERR_SUCCESS;
29210 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverPackagePath *r)
29212 uint32_t _ptr_servername;
29213 uint32_t _ptr_language;
29214 uint32_t _ptr_driver_package_cab;
29215 TALLOC_CTX *_mem_save_servername_0;
29216 TALLOC_CTX *_mem_save_language_0;
29217 TALLOC_CTX *_mem_save_driver_package_cab_0;
29218 TALLOC_CTX *_mem_save_required_0;
29219 if (flags & NDR_IN) {
29220 ZERO_STRUCT(r->out);
29222 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29223 if (_ptr_servername) {
29224 NDR_PULL_ALLOC(ndr, r->in.servername);
29225 } else {
29226 r->in.servername = NULL;
29228 if (r->in.servername) {
29229 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29230 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29231 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29232 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29233 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29234 return 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));
29236 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29237 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29240 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29241 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29242 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29243 return 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));
29245 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29246 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29247 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
29248 if (_ptr_language) {
29249 NDR_PULL_ALLOC(ndr, r->in.language);
29250 } else {
29251 r->in.language = NULL;
29253 if (r->in.language) {
29254 _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
29255 NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
29256 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
29257 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
29258 if (ndr_get_array_length(ndr, &r->in.language) > ndr_get_array_size(ndr, &r->in.language)) {
29259 return 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));
29261 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t)));
29262 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t), CH_UTF16));
29263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
29265 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
29266 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
29267 if (ndr_get_array_length(ndr, &r->in.package_id) > ndr_get_array_size(ndr, &r->in.package_id)) {
29268 return 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));
29270 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t)));
29271 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));
29272 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29273 if (_ptr_driver_package_cab) {
29274 NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
29275 } else {
29276 r->in.driver_package_cab = NULL;
29278 if (r->in.driver_package_cab) {
29279 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29280 NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
29281 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
29282 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));
29283 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29285 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
29286 NDR_PULL_ALLOC(ndr, r->out.required);
29287 ZERO_STRUCTP(r->out.required);
29288 if (r->in.driver_package_cab) {
29289 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
29292 if (flags & NDR_OUT) {
29293 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29294 if (_ptr_driver_package_cab) {
29295 NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
29296 } else {
29297 r->out.driver_package_cab = NULL;
29299 if (r->out.driver_package_cab) {
29300 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29301 NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
29302 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
29303 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));
29304 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29306 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29307 NDR_PULL_ALLOC(ndr, r->out.required);
29309 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
29310 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
29311 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
29312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
29313 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29314 if (r->out.driver_package_cab) {
29315 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
29318 return NDR_ERR_SUCCESS;
29321 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29323 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
29324 ndr->depth++;
29325 if (flags & NDR_SET_VALUES) {
29326 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29328 if (flags & NDR_IN) {
29329 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
29330 ndr->depth++;
29331 ndr_print_ptr(ndr, "servername", r->in.servername);
29332 ndr->depth++;
29333 if (r->in.servername) {
29334 ndr_print_string(ndr, "servername", r->in.servername);
29336 ndr->depth--;
29337 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29338 ndr->depth++;
29339 ndr_print_string(ndr, "architecture", r->in.architecture);
29340 ndr->depth--;
29341 ndr_print_ptr(ndr, "language", r->in.language);
29342 ndr->depth++;
29343 if (r->in.language) {
29344 ndr_print_string(ndr, "language", r->in.language);
29346 ndr->depth--;
29347 ndr_print_ptr(ndr, "package_id", r->in.package_id);
29348 ndr->depth++;
29349 ndr_print_string(ndr, "package_id", r->in.package_id);
29350 ndr->depth--;
29351 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
29352 ndr->depth++;
29353 if (r->in.driver_package_cab) {
29354 ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
29356 ndr->depth--;
29357 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
29358 ndr->depth--;
29360 if (flags & NDR_OUT) {
29361 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
29362 ndr->depth++;
29363 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
29364 ndr->depth++;
29365 if (r->out.driver_package_cab) {
29366 ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
29368 ndr->depth--;
29369 ndr_print_ptr(ndr, "required", r->out.required);
29370 ndr->depth++;
29371 ndr_print_uint32(ndr, "required", *r->out.required);
29372 ndr->depth--;
29373 ndr_print_WERROR(ndr, "result", r->out.result);
29374 ndr->depth--;
29376 ndr->depth--;
29379 static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, int flags, const struct spoolss_69 *r)
29381 if (flags & NDR_IN) {
29383 if (flags & NDR_OUT) {
29384 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29386 return NDR_ERR_SUCCESS;
29389 static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, int flags, struct spoolss_69 *r)
29391 if (flags & NDR_IN) {
29393 if (flags & NDR_OUT) {
29394 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29396 return NDR_ERR_SUCCESS;
29399 _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_69 *r)
29401 ndr_print_struct(ndr, name, "spoolss_69");
29402 ndr->depth++;
29403 if (flags & NDR_SET_VALUES) {
29404 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29406 if (flags & NDR_IN) {
29407 ndr_print_struct(ndr, "in", "spoolss_69");
29408 ndr->depth++;
29409 ndr->depth--;
29411 if (flags & NDR_OUT) {
29412 ndr_print_struct(ndr, "out", "spoolss_69");
29413 ndr->depth++;
29414 ndr_print_WERROR(ndr, "result", r->out.result);
29415 ndr->depth--;
29417 ndr->depth--;
29420 static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, int flags, const struct spoolss_6a *r)
29422 if (flags & NDR_IN) {
29424 if (flags & NDR_OUT) {
29425 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29427 return NDR_ERR_SUCCESS;
29430 static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, int flags, struct spoolss_6a *r)
29432 if (flags & NDR_IN) {
29434 if (flags & NDR_OUT) {
29435 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29437 return NDR_ERR_SUCCESS;
29440 _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6a *r)
29442 ndr_print_struct(ndr, name, "spoolss_6a");
29443 ndr->depth++;
29444 if (flags & NDR_SET_VALUES) {
29445 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29447 if (flags & NDR_IN) {
29448 ndr_print_struct(ndr, "in", "spoolss_6a");
29449 ndr->depth++;
29450 ndr->depth--;
29452 if (flags & NDR_OUT) {
29453 ndr_print_struct(ndr, "out", "spoolss_6a");
29454 ndr->depth++;
29455 ndr_print_WERROR(ndr, "result", r->out.result);
29456 ndr->depth--;
29458 ndr->depth--;
29461 static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, int flags, const struct spoolss_6b *r)
29463 if (flags & NDR_IN) {
29465 if (flags & NDR_OUT) {
29466 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29468 return NDR_ERR_SUCCESS;
29471 static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, int flags, struct spoolss_6b *r)
29473 if (flags & NDR_IN) {
29475 if (flags & NDR_OUT) {
29476 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29478 return NDR_ERR_SUCCESS;
29481 _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6b *r)
29483 ndr_print_struct(ndr, name, "spoolss_6b");
29484 ndr->depth++;
29485 if (flags & NDR_SET_VALUES) {
29486 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29488 if (flags & NDR_IN) {
29489 ndr_print_struct(ndr, "in", "spoolss_6b");
29490 ndr->depth++;
29491 ndr->depth--;
29493 if (flags & NDR_OUT) {
29494 ndr_print_struct(ndr, "out", "spoolss_6b");
29495 ndr->depth++;
29496 ndr_print_WERROR(ndr, "result", r->out.result);
29497 ndr->depth--;
29499 ndr->depth--;
29502 static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, int flags, const struct spoolss_6c *r)
29504 if (flags & NDR_IN) {
29506 if (flags & NDR_OUT) {
29507 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29509 return NDR_ERR_SUCCESS;
29512 static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, int flags, struct spoolss_6c *r)
29514 if (flags & NDR_IN) {
29516 if (flags & NDR_OUT) {
29517 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29519 return NDR_ERR_SUCCESS;
29522 _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6c *r)
29524 ndr_print_struct(ndr, name, "spoolss_6c");
29525 ndr->depth++;
29526 if (flags & NDR_SET_VALUES) {
29527 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29529 if (flags & NDR_IN) {
29530 ndr_print_struct(ndr, "in", "spoolss_6c");
29531 ndr->depth++;
29532 ndr->depth--;
29534 if (flags & NDR_OUT) {
29535 ndr_print_struct(ndr, "out", "spoolss_6c");
29536 ndr->depth++;
29537 ndr_print_WERROR(ndr, "result", r->out.result);
29538 ndr->depth--;
29540 ndr->depth--;
29543 static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, int flags, const struct spoolss_6d *r)
29545 if (flags & NDR_IN) {
29547 if (flags & NDR_OUT) {
29548 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29550 return NDR_ERR_SUCCESS;
29553 static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, int flags, struct spoolss_6d *r)
29555 if (flags & NDR_IN) {
29557 if (flags & NDR_OUT) {
29558 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29560 return NDR_ERR_SUCCESS;
29563 _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6d *r)
29565 ndr_print_struct(ndr, name, "spoolss_6d");
29566 ndr->depth++;
29567 if (flags & NDR_SET_VALUES) {
29568 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29570 if (flags & NDR_IN) {
29571 ndr_print_struct(ndr, "in", "spoolss_6d");
29572 ndr->depth++;
29573 ndr->depth--;
29575 if (flags & NDR_OUT) {
29576 ndr_print_struct(ndr, "out", "spoolss_6d");
29577 ndr->depth++;
29578 ndr_print_WERROR(ndr, "result", r->out.result);
29579 ndr->depth--;
29581 ndr->depth--;
29584 static const struct ndr_interface_call spoolss_calls[] = {
29586 "spoolss_EnumPrinters",
29587 sizeof(struct spoolss_EnumPrinters),
29588 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
29589 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
29590 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
29591 false,
29594 "spoolss_OpenPrinter",
29595 sizeof(struct spoolss_OpenPrinter),
29596 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
29597 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
29598 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
29599 false,
29602 "spoolss_SetJob",
29603 sizeof(struct spoolss_SetJob),
29604 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
29605 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
29606 (ndr_print_function_t) ndr_print_spoolss_SetJob,
29607 false,
29610 "spoolss_GetJob",
29611 sizeof(struct spoolss_GetJob),
29612 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
29613 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
29614 (ndr_print_function_t) ndr_print_spoolss_GetJob,
29615 false,
29618 "spoolss_EnumJobs",
29619 sizeof(struct spoolss_EnumJobs),
29620 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
29621 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
29622 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
29623 false,
29626 "spoolss_AddPrinter",
29627 sizeof(struct spoolss_AddPrinter),
29628 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
29629 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
29630 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
29631 false,
29634 "spoolss_DeletePrinter",
29635 sizeof(struct spoolss_DeletePrinter),
29636 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
29637 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
29638 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
29639 false,
29642 "spoolss_SetPrinter",
29643 sizeof(struct spoolss_SetPrinter),
29644 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
29645 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
29646 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
29647 false,
29650 "spoolss_GetPrinter",
29651 sizeof(struct spoolss_GetPrinter),
29652 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
29653 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
29654 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
29655 false,
29658 "spoolss_AddPrinterDriver",
29659 sizeof(struct spoolss_AddPrinterDriver),
29660 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
29661 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
29662 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
29663 false,
29666 "spoolss_EnumPrinterDrivers",
29667 sizeof(struct spoolss_EnumPrinterDrivers),
29668 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
29669 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
29670 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
29671 false,
29674 "spoolss_GetPrinterDriver",
29675 sizeof(struct spoolss_GetPrinterDriver),
29676 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
29677 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
29678 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
29679 false,
29682 "spoolss_GetPrinterDriverDirectory",
29683 sizeof(struct spoolss_GetPrinterDriverDirectory),
29684 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
29685 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
29686 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
29687 false,
29690 "spoolss_DeletePrinterDriver",
29691 sizeof(struct spoolss_DeletePrinterDriver),
29692 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
29693 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
29694 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
29695 false,
29698 "spoolss_AddPrintProcessor",
29699 sizeof(struct spoolss_AddPrintProcessor),
29700 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
29701 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
29702 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
29703 false,
29706 "spoolss_EnumPrintProcessors",
29707 sizeof(struct spoolss_EnumPrintProcessors),
29708 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
29709 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
29710 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
29711 false,
29714 "spoolss_GetPrintProcessorDirectory",
29715 sizeof(struct spoolss_GetPrintProcessorDirectory),
29716 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
29717 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
29718 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
29719 false,
29722 "spoolss_StartDocPrinter",
29723 sizeof(struct spoolss_StartDocPrinter),
29724 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
29725 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
29726 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
29727 false,
29730 "spoolss_StartPagePrinter",
29731 sizeof(struct spoolss_StartPagePrinter),
29732 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
29733 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
29734 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
29735 false,
29738 "spoolss_WritePrinter",
29739 sizeof(struct spoolss_WritePrinter),
29740 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
29741 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
29742 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
29743 false,
29746 "spoolss_EndPagePrinter",
29747 sizeof(struct spoolss_EndPagePrinter),
29748 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
29749 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
29750 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
29751 false,
29754 "spoolss_AbortPrinter",
29755 sizeof(struct spoolss_AbortPrinter),
29756 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
29757 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
29758 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
29759 false,
29762 "spoolss_ReadPrinter",
29763 sizeof(struct spoolss_ReadPrinter),
29764 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
29765 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
29766 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
29767 false,
29770 "spoolss_EndDocPrinter",
29771 sizeof(struct spoolss_EndDocPrinter),
29772 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
29773 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
29774 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
29775 false,
29778 "spoolss_AddJob",
29779 sizeof(struct spoolss_AddJob),
29780 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
29781 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
29782 (ndr_print_function_t) ndr_print_spoolss_AddJob,
29783 false,
29786 "spoolss_ScheduleJob",
29787 sizeof(struct spoolss_ScheduleJob),
29788 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
29789 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
29790 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
29791 false,
29794 "spoolss_GetPrinterData",
29795 sizeof(struct spoolss_GetPrinterData),
29796 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
29797 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
29798 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
29799 false,
29802 "spoolss_SetPrinterData",
29803 sizeof(struct spoolss_SetPrinterData),
29804 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
29805 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
29806 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
29807 false,
29810 "spoolss_WaitForPrinterChange",
29811 sizeof(struct spoolss_WaitForPrinterChange),
29812 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
29813 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
29814 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
29815 false,
29818 "spoolss_ClosePrinter",
29819 sizeof(struct spoolss_ClosePrinter),
29820 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
29821 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
29822 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
29823 false,
29826 "spoolss_AddForm",
29827 sizeof(struct spoolss_AddForm),
29828 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
29829 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
29830 (ndr_print_function_t) ndr_print_spoolss_AddForm,
29831 false,
29834 "spoolss_DeleteForm",
29835 sizeof(struct spoolss_DeleteForm),
29836 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
29837 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
29838 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
29839 false,
29842 "spoolss_GetForm",
29843 sizeof(struct spoolss_GetForm),
29844 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
29845 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
29846 (ndr_print_function_t) ndr_print_spoolss_GetForm,
29847 false,
29850 "spoolss_SetForm",
29851 sizeof(struct spoolss_SetForm),
29852 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
29853 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
29854 (ndr_print_function_t) ndr_print_spoolss_SetForm,
29855 false,
29858 "spoolss_EnumForms",
29859 sizeof(struct spoolss_EnumForms),
29860 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
29861 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
29862 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
29863 false,
29866 "spoolss_EnumPorts",
29867 sizeof(struct spoolss_EnumPorts),
29868 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
29869 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
29870 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
29871 false,
29874 "spoolss_EnumMonitors",
29875 sizeof(struct spoolss_EnumMonitors),
29876 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
29877 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
29878 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
29879 false,
29882 "spoolss_AddPort",
29883 sizeof(struct spoolss_AddPort),
29884 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
29885 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
29886 (ndr_print_function_t) ndr_print_spoolss_AddPort,
29887 false,
29890 "spoolss_ConfigurePort",
29891 sizeof(struct spoolss_ConfigurePort),
29892 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
29893 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
29894 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
29895 false,
29898 "spoolss_DeletePort",
29899 sizeof(struct spoolss_DeletePort),
29900 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
29901 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
29902 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
29903 false,
29906 "spoolss_CreatePrinterIC",
29907 sizeof(struct spoolss_CreatePrinterIC),
29908 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
29909 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
29910 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
29911 false,
29914 "spoolss_PlayGDIScriptOnPrinterIC",
29915 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
29916 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
29917 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
29918 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
29919 false,
29922 "spoolss_DeletePrinterIC",
29923 sizeof(struct spoolss_DeletePrinterIC),
29924 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
29925 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
29926 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
29927 false,
29930 "spoolss_AddPrinterConnection",
29931 sizeof(struct spoolss_AddPrinterConnection),
29932 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
29933 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
29934 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
29935 false,
29938 "spoolss_DeletePrinterConnection",
29939 sizeof(struct spoolss_DeletePrinterConnection),
29940 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
29941 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
29942 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
29943 false,
29946 "spoolss_PrinterMessageBox",
29947 sizeof(struct spoolss_PrinterMessageBox),
29948 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
29949 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
29950 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
29951 false,
29954 "spoolss_AddMonitor",
29955 sizeof(struct spoolss_AddMonitor),
29956 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
29957 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
29958 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
29959 false,
29962 "spoolss_DeleteMonitor",
29963 sizeof(struct spoolss_DeleteMonitor),
29964 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
29965 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
29966 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
29967 false,
29970 "spoolss_DeletePrintProcessor",
29971 sizeof(struct spoolss_DeletePrintProcessor),
29972 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
29973 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
29974 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
29975 false,
29978 "spoolss_AddPrintProvidor",
29979 sizeof(struct spoolss_AddPrintProvidor),
29980 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
29981 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
29982 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
29983 false,
29986 "spoolss_DeletePrintProvidor",
29987 sizeof(struct spoolss_DeletePrintProvidor),
29988 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
29989 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
29990 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
29991 false,
29994 "spoolss_EnumPrintProcDataTypes",
29995 sizeof(struct spoolss_EnumPrintProcDataTypes),
29996 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
29997 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
29998 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
29999 false,
30002 "spoolss_ResetPrinter",
30003 sizeof(struct spoolss_ResetPrinter),
30004 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
30005 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
30006 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
30007 false,
30010 "spoolss_GetPrinterDriver2",
30011 sizeof(struct spoolss_GetPrinterDriver2),
30012 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
30013 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
30014 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
30015 false,
30018 "spoolss_FindFirstPrinterChangeNotification",
30019 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
30020 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
30021 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
30022 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
30023 false,
30026 "spoolss_FindNextPrinterChangeNotification",
30027 sizeof(struct spoolss_FindNextPrinterChangeNotification),
30028 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
30029 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
30030 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
30031 false,
30034 "spoolss_FindClosePrinterNotify",
30035 sizeof(struct spoolss_FindClosePrinterNotify),
30036 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
30037 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
30038 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
30039 false,
30042 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
30043 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
30044 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30045 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30046 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30047 false,
30050 "spoolss_ReplyOpenPrinter",
30051 sizeof(struct spoolss_ReplyOpenPrinter),
30052 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
30053 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
30054 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
30055 false,
30058 "spoolss_RouterReplyPrinter",
30059 sizeof(struct spoolss_RouterReplyPrinter),
30060 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
30061 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
30062 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
30063 false,
30066 "spoolss_ReplyClosePrinter",
30067 sizeof(struct spoolss_ReplyClosePrinter),
30068 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
30069 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
30070 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
30071 false,
30074 "spoolss_AddPortEx",
30075 sizeof(struct spoolss_AddPortEx),
30076 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
30077 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
30078 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
30079 false,
30082 "spoolss_RouterFindFirstPrinterChangeNotification",
30083 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
30084 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
30085 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
30086 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
30087 false,
30090 "spoolss_SpoolerInit",
30091 sizeof(struct spoolss_SpoolerInit),
30092 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
30093 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
30094 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
30095 false,
30098 "spoolss_ResetPrinterEx",
30099 sizeof(struct spoolss_ResetPrinterEx),
30100 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
30101 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
30102 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
30103 false,
30106 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
30107 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
30108 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30109 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30110 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30111 false,
30114 "spoolss_RouterReplyPrinterEx",
30115 sizeof(struct spoolss_RouterReplyPrinterEx),
30116 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
30117 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
30118 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
30119 false,
30122 "spoolss_RouterRefreshPrinterChangeNotify",
30123 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
30124 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
30125 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
30126 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
30127 false,
30130 "spoolss_44",
30131 sizeof(struct spoolss_44),
30132 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
30133 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
30134 (ndr_print_function_t) ndr_print_spoolss_44,
30135 false,
30138 "spoolss_OpenPrinterEx",
30139 sizeof(struct spoolss_OpenPrinterEx),
30140 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
30141 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
30142 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
30143 false,
30146 "spoolss_AddPrinterEx",
30147 sizeof(struct spoolss_AddPrinterEx),
30148 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
30149 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
30150 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
30151 false,
30154 "spoolss_47",
30155 sizeof(struct spoolss_47),
30156 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
30157 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
30158 (ndr_print_function_t) ndr_print_spoolss_47,
30159 false,
30162 "spoolss_EnumPrinterData",
30163 sizeof(struct spoolss_EnumPrinterData),
30164 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
30165 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
30166 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
30167 false,
30170 "spoolss_DeletePrinterData",
30171 sizeof(struct spoolss_DeletePrinterData),
30172 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
30173 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
30174 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
30175 false,
30178 "spoolss_4a",
30179 sizeof(struct spoolss_4a),
30180 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
30181 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
30182 (ndr_print_function_t) ndr_print_spoolss_4a,
30183 false,
30186 "spoolss_4b",
30187 sizeof(struct spoolss_4b),
30188 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
30189 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
30190 (ndr_print_function_t) ndr_print_spoolss_4b,
30191 false,
30194 "spoolss_4c",
30195 sizeof(struct spoolss_4c),
30196 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
30197 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
30198 (ndr_print_function_t) ndr_print_spoolss_4c,
30199 false,
30202 "spoolss_SetPrinterDataEx",
30203 sizeof(struct spoolss_SetPrinterDataEx),
30204 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
30205 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
30206 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
30207 false,
30210 "spoolss_GetPrinterDataEx",
30211 sizeof(struct spoolss_GetPrinterDataEx),
30212 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
30213 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
30214 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
30215 false,
30218 "spoolss_EnumPrinterDataEx",
30219 sizeof(struct spoolss_EnumPrinterDataEx),
30220 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
30221 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
30222 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
30223 false,
30226 "spoolss_EnumPrinterKey",
30227 sizeof(struct spoolss_EnumPrinterKey),
30228 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
30229 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
30230 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
30231 false,
30234 "spoolss_DeletePrinterDataEx",
30235 sizeof(struct spoolss_DeletePrinterDataEx),
30236 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
30237 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
30238 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
30239 false,
30242 "spoolss_DeletePrinterKey",
30243 sizeof(struct spoolss_DeletePrinterKey),
30244 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
30245 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
30246 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
30247 false,
30250 "spoolss_53",
30251 sizeof(struct spoolss_53),
30252 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
30253 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
30254 (ndr_print_function_t) ndr_print_spoolss_53,
30255 false,
30258 "spoolss_DeletePrinterDriverEx",
30259 sizeof(struct spoolss_DeletePrinterDriverEx),
30260 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
30261 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
30262 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
30263 false,
30266 "spoolss_55",
30267 sizeof(struct spoolss_55),
30268 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
30269 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
30270 (ndr_print_function_t) ndr_print_spoolss_55,
30271 false,
30274 "spoolss_56",
30275 sizeof(struct spoolss_56),
30276 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
30277 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
30278 (ndr_print_function_t) ndr_print_spoolss_56,
30279 false,
30282 "spoolss_57",
30283 sizeof(struct spoolss_57),
30284 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
30285 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
30286 (ndr_print_function_t) ndr_print_spoolss_57,
30287 false,
30290 "spoolss_XcvData",
30291 sizeof(struct spoolss_XcvData),
30292 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
30293 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
30294 (ndr_print_function_t) ndr_print_spoolss_XcvData,
30295 false,
30298 "spoolss_AddPrinterDriverEx",
30299 sizeof(struct spoolss_AddPrinterDriverEx),
30300 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
30301 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
30302 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
30303 false,
30306 "spoolss_5a",
30307 sizeof(struct spoolss_5a),
30308 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
30309 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
30310 (ndr_print_function_t) ndr_print_spoolss_5a,
30311 false,
30314 "spoolss_5b",
30315 sizeof(struct spoolss_5b),
30316 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
30317 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
30318 (ndr_print_function_t) ndr_print_spoolss_5b,
30319 false,
30322 "spoolss_5c",
30323 sizeof(struct spoolss_5c),
30324 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
30325 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
30326 (ndr_print_function_t) ndr_print_spoolss_5c,
30327 false,
30330 "spoolss_5d",
30331 sizeof(struct spoolss_5d),
30332 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
30333 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
30334 (ndr_print_function_t) ndr_print_spoolss_5d,
30335 false,
30338 "spoolss_5e",
30339 sizeof(struct spoolss_5e),
30340 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
30341 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
30342 (ndr_print_function_t) ndr_print_spoolss_5e,
30343 false,
30346 "spoolss_5f",
30347 sizeof(struct spoolss_5f),
30348 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
30349 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
30350 (ndr_print_function_t) ndr_print_spoolss_5f,
30351 false,
30354 "spoolss_60",
30355 sizeof(struct spoolss_60),
30356 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
30357 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
30358 (ndr_print_function_t) ndr_print_spoolss_60,
30359 false,
30362 "spoolss_61",
30363 sizeof(struct spoolss_61),
30364 (ndr_push_flags_fn_t) ndr_push_spoolss_61,
30365 (ndr_pull_flags_fn_t) ndr_pull_spoolss_61,
30366 (ndr_print_function_t) ndr_print_spoolss_61,
30367 false,
30370 "spoolss_62",
30371 sizeof(struct spoolss_62),
30372 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
30373 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
30374 (ndr_print_function_t) ndr_print_spoolss_62,
30375 false,
30378 "spoolss_63",
30379 sizeof(struct spoolss_63),
30380 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
30381 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
30382 (ndr_print_function_t) ndr_print_spoolss_63,
30383 false,
30386 "spoolss_64",
30387 sizeof(struct spoolss_64),
30388 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
30389 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
30390 (ndr_print_function_t) ndr_print_spoolss_64,
30391 false,
30394 "spoolss_65",
30395 sizeof(struct spoolss_65),
30396 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
30397 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
30398 (ndr_print_function_t) ndr_print_spoolss_65,
30399 false,
30402 "spoolss_GetCorePrinterDrivers",
30403 sizeof(struct spoolss_GetCorePrinterDrivers),
30404 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
30405 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
30406 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
30407 false,
30410 "spoolss_67",
30411 sizeof(struct spoolss_67),
30412 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
30413 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
30414 (ndr_print_function_t) ndr_print_spoolss_67,
30415 false,
30418 "spoolss_GetPrinterDriverPackagePath",
30419 sizeof(struct spoolss_GetPrinterDriverPackagePath),
30420 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
30421 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
30422 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
30423 false,
30426 "spoolss_69",
30427 sizeof(struct spoolss_69),
30428 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
30429 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
30430 (ndr_print_function_t) ndr_print_spoolss_69,
30431 false,
30434 "spoolss_6a",
30435 sizeof(struct spoolss_6a),
30436 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
30437 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
30438 (ndr_print_function_t) ndr_print_spoolss_6a,
30439 false,
30442 "spoolss_6b",
30443 sizeof(struct spoolss_6b),
30444 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
30445 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
30446 (ndr_print_function_t) ndr_print_spoolss_6b,
30447 false,
30450 "spoolss_6c",
30451 sizeof(struct spoolss_6c),
30452 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
30453 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
30454 (ndr_print_function_t) ndr_print_spoolss_6c,
30455 false,
30458 "spoolss_6d",
30459 sizeof(struct spoolss_6d),
30460 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
30461 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
30462 (ndr_print_function_t) ndr_print_spoolss_6d,
30463 false,
30465 { NULL, 0, NULL, NULL, NULL, false }
30468 static const char * const spoolss_endpoint_strings[] = {
30469 "ncacn_np:[\\pipe\\spoolss]",
30472 static const struct ndr_interface_string_array spoolss_endpoints = {
30473 .count = 1,
30474 .names = spoolss_endpoint_strings
30477 static const char * const spoolss_authservice_strings[] = {
30478 "host",
30481 static const struct ndr_interface_string_array spoolss_authservices = {
30482 .count = 1,
30483 .names = spoolss_authservice_strings
30487 const struct ndr_interface_table ndr_table_spoolss = {
30488 .name = "spoolss",
30489 .syntax_id = {
30490 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
30491 NDR_SPOOLSS_VERSION
30493 .helpstring = NDR_SPOOLSS_HELPSTRING,
30494 .num_calls = 110,
30495 .calls = spoolss_calls,
30496 .endpoints = &spoolss_endpoints,
30497 .authservices = &spoolss_authservices