packaging(RHEL-CTDB): explicitly list all the vfs modules in the main package
[Samba/ekacnet.git] / librpc / gen_ndr / ndr_spoolss.c
blobeba51dce91a59889a190039a7200640cae104d52
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 if (ndr->offset > ndr->relative_highest_offset) {
453 ndr->relative_highest_offset = ndr->offset;
455 ndr->offset = _relative_save_offset;
457 ndr->flags = _flags_save_string;
460 uint32_t _flags_save_string = ndr->flags;
461 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
462 if (r->servername) {
463 uint32_t _relative_save_offset;
464 _relative_save_offset = ndr->offset;
465 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
466 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
467 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
468 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
470 if (ndr->offset > ndr->relative_highest_offset) {
471 ndr->relative_highest_offset = ndr->offset;
473 ndr->offset = _relative_save_offset;
475 ndr->flags = _flags_save_string;
478 return NDR_ERR_SUCCESS;
481 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
483 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
484 ndr->depth++;
485 ndr_print_ptr(ndr, "printername", r->printername);
486 ndr->depth++;
487 if (r->printername) {
488 ndr_print_string(ndr, "printername", r->printername);
490 ndr->depth--;
491 ndr_print_ptr(ndr, "servername", r->servername);
492 ndr->depth++;
493 if (r->servername) {
494 ndr_print_string(ndr, "servername", r->servername);
496 ndr->depth--;
497 ndr_print_uint32(ndr, "cjobs", r->cjobs);
498 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
499 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
500 ndr_print_spoolss_Time(ndr, "time", &r->time);
501 ndr_print_uint32(ndr, "global_counter", r->global_counter);
502 ndr_print_uint32(ndr, "total_pages", r->total_pages);
503 ndr_print_uint32(ndr, "version", r->version);
504 ndr_print_uint32(ndr, "free_build", r->free_build);
505 ndr_print_uint32(ndr, "spooling", r->spooling);
506 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
507 ndr_print_uint32(ndr, "session_counter", r->session_counter);
508 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
509 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
510 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
511 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
512 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
513 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
514 ndr_print_uint32(ndr, "change_id", r->change_id);
515 ndr_print_WERROR(ndr, "last_error", r->last_error);
516 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
517 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
518 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
519 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
520 ndr_print_uint16(ndr, "processor_level", r->processor_level);
521 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
522 ndr_print_uint32(ndr, "reserved2", r->reserved2);
523 ndr_print_uint32(ndr, "reserved3", r->reserved3);
524 ndr->depth--;
527 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, struct smb_iconv_convenience *ic, int flags)
529 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0, ic);
532 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
535 return NDR_ERR_SUCCESS;
538 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
540 uint32_t v;
541 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
542 *r = v;
543 return NDR_ERR_SUCCESS;
546 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
548 ndr_print_uint32(ndr, name, r);
549 ndr->depth++;
550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
561 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
562 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
563 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
564 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
565 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
566 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
567 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
568 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
569 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
570 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
571 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
572 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
573 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
574 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
575 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
576 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
577 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
578 ndr->depth--;
581 static enum ndr_err_code ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion r)
583 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
584 return NDR_ERR_SUCCESS;
587 static enum ndr_err_code ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion *r)
589 uint16_t v;
590 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
591 *r = v;
592 return NDR_ERR_SUCCESS;
595 _PUBLIC_ void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeSpecVersion r)
597 const char *val = NULL;
599 switch (r) {
600 case DMSPEC_NT3: val = "DMSPEC_NT3"; break;
601 case DMSPEC_WIN95_98_ME: val = "DMSPEC_WIN95_98_ME"; break;
602 case DMSPEC_NT4_AND_ABOVE: val = "DMSPEC_NT4_AND_ABOVE"; break;
604 ndr_print_enum(ndr, name, "ENUM", val, r);
607 static enum ndr_err_code ndr_push_spoolss_DeviceModeOrientation(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation r)
609 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
610 return NDR_ERR_SUCCESS;
613 static enum ndr_err_code ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation *r)
615 uint16_t v;
616 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
617 *r = v;
618 return NDR_ERR_SUCCESS;
621 _PUBLIC_ void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeOrientation r)
623 const char *val = NULL;
625 switch (r) {
626 case DMORIENT_PORTRAIT: val = "DMORIENT_PORTRAIT"; break;
627 case DMORIENT_LANDSCAPE: val = "DMORIENT_LANDSCAPE"; break;
629 ndr_print_enum(ndr, name, "ENUM", val, r);
632 static enum ndr_err_code ndr_push_spoolss_DeviceModePaperSize(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize r)
634 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
635 return NDR_ERR_SUCCESS;
638 static enum ndr_err_code ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize *r)
640 uint16_t v;
641 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
642 *r = v;
643 return NDR_ERR_SUCCESS;
646 _PUBLIC_ void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePaperSize r)
648 const char *val = NULL;
650 switch (r) {
651 case DMPAPER_LETTER: val = "DMPAPER_LETTER"; break;
652 case DMPAPER_LETTERSMALL: val = "DMPAPER_LETTERSMALL"; break;
653 case DMPAPER_TABLOID: val = "DMPAPER_TABLOID"; break;
654 case DMPAPER_LEDGER: val = "DMPAPER_LEDGER"; break;
655 case DMPAPER_LEGAL: val = "DMPAPER_LEGAL"; break;
656 case DMPAPER_STATEMENT: val = "DMPAPER_STATEMENT"; break;
657 case DMPAPER_EXECUTIVE: val = "DMPAPER_EXECUTIVE"; break;
658 case DMPAPER_A3: val = "DMPAPER_A3"; break;
659 case DMPAPER_A4: val = "DMPAPER_A4"; break;
660 case DMPAPER_A4SMALL: val = "DMPAPER_A4SMALL"; break;
661 case DMPAPER_A5: val = "DMPAPER_A5"; break;
662 case DMPAPER_B4: val = "DMPAPER_B4"; break;
663 case DMPAPER_B5: val = "DMPAPER_B5"; break;
664 case DMPAPER_FOLIO: val = "DMPAPER_FOLIO"; break;
665 case DMPAPER_QUARTO: val = "DMPAPER_QUARTO"; break;
666 case DMPAPER_10X14: val = "DMPAPER_10X14"; break;
667 case DMPAPER_11X17: val = "DMPAPER_11X17"; break;
668 case DMPAPER_NOTE: val = "DMPAPER_NOTE"; break;
669 case DMPAPER_ENV_9: val = "DMPAPER_ENV_9"; break;
670 case DMPAPER_ENV_10: val = "DMPAPER_ENV_10"; break;
671 case DMPAPER_ENV_11: val = "DMPAPER_ENV_11"; break;
672 case DMPAPER_ENV_12: val = "DMPAPER_ENV_12"; break;
673 case DMPAPER_ENV_14: val = "DMPAPER_ENV_14"; break;
674 case DMPAPER_CSHEET: val = "DMPAPER_CSHEET"; break;
675 case DMPAPER_DSHEET: val = "DMPAPER_DSHEET"; break;
676 case DMPAPER_ESHEET: val = "DMPAPER_ESHEET"; break;
677 case DMPAPER_ENV_DL: val = "DMPAPER_ENV_DL"; break;
678 case DMPAPER_ENV_C5: val = "DMPAPER_ENV_C5"; break;
679 case DMPAPER_ENV_C3: val = "DMPAPER_ENV_C3"; break;
680 case DMPAPER_ENV_C4: val = "DMPAPER_ENV_C4"; break;
681 case DMPAPER_ENV_C6: val = "DMPAPER_ENV_C6"; break;
682 case DMPAPER_ENV_C65: val = "DMPAPER_ENV_C65"; break;
683 case DMPAPER_ENV_B4: val = "DMPAPER_ENV_B4"; break;
684 case DMPAPER_ENV_B5: val = "DMPAPER_ENV_B5"; break;
685 case DMPAPER_ENV_B6: val = "DMPAPER_ENV_B6"; break;
686 case DMPAPER_ENV_ITALY: val = "DMPAPER_ENV_ITALY"; break;
687 case DMPAPER_ENV_MONARCH: val = "DMPAPER_ENV_MONARCH"; break;
688 case DMPAPER_ENV_PERSONAL: val = "DMPAPER_ENV_PERSONAL"; break;
689 case DMPAPER_FANFOLD_US: val = "DMPAPER_FANFOLD_US"; break;
690 case DMPAPER_FANFOLD_STD_GERMAN: val = "DMPAPER_FANFOLD_STD_GERMAN"; break;
691 case DMPAPER_FANFOLD_LGL_GERMAN: val = "DMPAPER_FANFOLD_LGL_GERMAN"; break;
692 case DMPAPER_DBL_JAPANESE_POSTCARD: val = "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
693 case DMPAPER_A6: val = "DMPAPER_A6"; break;
694 case DMPAPER_JENV_KAKU2: val = "DMPAPER_JENV_KAKU2"; break;
695 case DMPAPER_JENV_KAKU3: val = "DMPAPER_JENV_KAKU3"; break;
696 case DMPAPER_JENV_CHOU3: val = "DMPAPER_JENV_CHOU3"; break;
697 case DMPAPER_JENV_CHOU4: val = "DMPAPER_JENV_CHOU4"; break;
698 case DMPAPER_LETTER_ROTATED: val = "DMPAPER_LETTER_ROTATED"; break;
699 case DMPAPER_A3_ROTATED: val = "DMPAPER_A3_ROTATED"; break;
700 case DMPAPER_A4_ROTATED: val = "DMPAPER_A4_ROTATED"; break;
701 case DMPAPER_A5_ROTATED: val = "DMPAPER_A5_ROTATED"; break;
702 case DMPAPER_B4_JIS_ROTATED: val = "DMPAPER_B4_JIS_ROTATED"; break;
703 case DMPAPER_B5_JIS_ROTATED: val = "DMPAPER_B5_JIS_ROTATED"; break;
704 case DMPAPER_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
705 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
706 case DMPAPER_A6_ROTATED: val = "DMPAPER_A6_ROTATED"; break;
707 case DMPAPER_JENV_KAKU2_ROTATED: val = "DMPAPER_JENV_KAKU2_ROTATED"; break;
708 case DMPAPER_JENV_KAKU3_ROTATED: val = "DMPAPER_JENV_KAKU3_ROTATED"; break;
709 case DMPAPER_JENV_CHOU3_ROTATED: val = "DMPAPER_JENV_CHOU3_ROTATED"; break;
710 case DMPAPER_JENV_CHOU4_ROTATED: val = "DMPAPER_JENV_CHOU4_ROTATED"; break;
711 case DMPAPER_B6_JIS: val = "DMPAPER_B6_JIS"; break;
712 case DMPAPER_B6_JIS_ROTATED: val = "DMPAPER_B6_JIS_ROTATED"; break;
713 case DMPAPER_12X11: val = "DMPAPER_12X11"; break;
714 case DMPAPER_JENV_YOU4: val = "DMPAPER_JENV_YOU4"; break;
715 case DMPAPER_JENV_YOU4_ROTATED: val = "DMPAPER_JENV_YOU4_ROTATED"; break;
716 case DMPAPER_P16K: val = "DMPAPER_P16K"; break;
717 case DMPAPER_P32K: val = "DMPAPER_P32K"; break;
718 case DMPAPER_P32KBIG: val = "DMPAPER_P32KBIG"; break;
719 case DMPAPER_PENV_1: val = "DMPAPER_PENV_1"; break;
720 case DMPAPER_PENV_2: val = "DMPAPER_PENV_2"; break;
721 case DMPAPER_PENV_3: val = "DMPAPER_PENV_3"; break;
722 case DMPAPER_PENV_4: val = "DMPAPER_PENV_4"; break;
723 case DMPAPER_PENV_5: val = "DMPAPER_PENV_5"; break;
724 case DMPAPER_PENV_6: val = "DMPAPER_PENV_6"; break;
725 case DMPAPER_PENV_7: val = "DMPAPER_PENV_7"; break;
726 case DMPAPER_PENV_8: val = "DMPAPER_PENV_8"; break;
727 case DMPAPER_PENV_9: val = "DMPAPER_PENV_9"; break;
728 case DMPAPER_PENV_10: val = "DMPAPER_PENV_10"; break;
729 case DMPAPER_P16K_ROTATED: val = "DMPAPER_P16K_ROTATED"; break;
730 case DMPAPER_P32K_ROTATED: val = "DMPAPER_P32K_ROTATED"; break;
731 case DMPAPER_P32KBIG_ROTATED: val = "DMPAPER_P32KBIG_ROTATED"; break;
732 case DMPAPER_PENV_1_ROTATED: val = "DMPAPER_PENV_1_ROTATED"; break;
733 case DMPAPER_PENV_2_ROTATED: val = "DMPAPER_PENV_2_ROTATED"; break;
734 case DMPAPER_PENV_3_ROTATED: val = "DMPAPER_PENV_3_ROTATED"; break;
735 case DMPAPER_PENV_4_ROTATED: val = "DMPAPER_PENV_4_ROTATED"; break;
736 case DMPAPER_PENV_5_ROTATED: val = "DMPAPER_PENV_5_ROTATED"; break;
737 case DMPAPER_PENV_6_ROTATED: val = "DMPAPER_PENV_6_ROTATED"; break;
738 case DMPAPER_PENV_7_ROTATED: val = "DMPAPER_PENV_7_ROTATED"; break;
739 case DMPAPER_PENV_8_ROTATED: val = "DMPAPER_PENV_8_ROTATED"; break;
740 case DMPAPER_PENV_9_ROTATED: val = "DMPAPER_PENV_9_ROTATED"; break;
741 case DMPAPER_PENV_10_ROTATED: val = "DMPAPER_PENV_10_ROTATED"; break;
743 ndr_print_enum(ndr, name, "ENUM", val, r);
746 static enum ndr_err_code ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource r)
748 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
749 return NDR_ERR_SUCCESS;
752 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource *r)
754 uint16_t v;
755 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
756 *r = v;
757 return NDR_ERR_SUCCESS;
760 _PUBLIC_ void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDefaultSource r)
762 const char *val = NULL;
764 switch (r) {
765 case DMBIN_UPPER: val = "DMBIN_UPPER"; break;
766 case DMBIN_LOWER: val = "DMBIN_LOWER"; break;
767 case DMBIN_MIDDLE: val = "DMBIN_MIDDLE"; break;
768 case DMBIN_MANUAL: val = "DMBIN_MANUAL"; break;
769 case DMBIN_ENVELOPE: val = "DMBIN_ENVELOPE"; break;
770 case DMBIN_ENVMANUAL: val = "DMBIN_ENVMANUAL"; break;
771 case DMBIN_AUTO: val = "DMBIN_AUTO"; break;
772 case DMBIN_TRACTOR: val = "DMBIN_TRACTOR"; break;
773 case DMBIN_SMALLFMT: val = "DMBIN_SMALLFMT"; break;
774 case DMBIN_LARGEFMT: val = "DMBIN_LARGEFMT"; break;
775 case DMBIN_LARGECAPACITY: val = "DMBIN_LARGECAPACITY"; break;
776 case DMBIN_CASSETTE: val = "DMBIN_CASSETTE"; break;
777 case DMBIN_FORMSOURCE: val = "DMBIN_FORMSOURCE"; break;
779 ndr_print_enum(ndr, name, "ENUM", val, r);
782 static enum ndr_err_code ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality r)
784 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
785 return NDR_ERR_SUCCESS;
788 static enum ndr_err_code ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality *r)
790 uint16_t v;
791 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
792 *r = v;
793 return NDR_ERR_SUCCESS;
796 _PUBLIC_ void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePrintQuality r)
798 const char *val = NULL;
800 switch (r) {
801 case DMRES_HIGH: val = "DMRES_HIGH"; break;
802 case DMRES_MEDIUM: val = "DMRES_MEDIUM"; break;
803 case DMRES_LOW: val = "DMRES_LOW"; break;
804 case DMRES_DRAFT: val = "DMRES_DRAFT"; break;
806 ndr_print_enum(ndr, name, "ENUM", val, r);
809 static enum ndr_err_code ndr_push_spoolss_DeviceModeColor(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeColor r)
811 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
812 return NDR_ERR_SUCCESS;
815 static enum ndr_err_code ndr_pull_spoolss_DeviceModeColor(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeColor *r)
817 uint16_t v;
818 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
819 *r = v;
820 return NDR_ERR_SUCCESS;
823 _PUBLIC_ void ndr_print_spoolss_DeviceModeColor(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeColor r)
825 const char *val = NULL;
827 switch (r) {
828 case DMRES_MONOCHROME: val = "DMRES_MONOCHROME"; break;
829 case DMRES_COLOR: val = "DMRES_COLOR"; break;
831 ndr_print_enum(ndr, name, "ENUM", val, r);
834 static enum ndr_err_code ndr_push_spoolss_DeviceModeDuplex(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex r)
836 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
837 return NDR_ERR_SUCCESS;
840 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex *r)
842 uint16_t v;
843 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
844 *r = v;
845 return NDR_ERR_SUCCESS;
848 _PUBLIC_ void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDuplex r)
850 const char *val = NULL;
852 switch (r) {
853 case DMDUP_SIMPLEX: val = "DMDUP_SIMPLEX"; break;
854 case DMDUP_VERTICAL: val = "DMDUP_VERTICAL"; break;
855 case DMDUP_HORIZONTAL: val = "DMDUP_HORIZONTAL"; break;
857 ndr_print_enum(ndr, name, "ENUM", val, r);
860 static enum ndr_err_code ndr_push_spoolss_DeviceModeTTOption(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption r)
862 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
863 return NDR_ERR_SUCCESS;
866 static enum ndr_err_code ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption *r)
868 uint16_t v;
869 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
870 *r = v;
871 return NDR_ERR_SUCCESS;
874 _PUBLIC_ void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeTTOption r)
876 const char *val = NULL;
878 switch (r) {
879 case DMTT_BITMAP: val = "DMTT_BITMAP"; break;
880 case DMTT_DOWNLOAD: val = "DMTT_DOWNLOAD"; break;
881 case DMTT_SUBDEV: val = "DMTT_SUBDEV"; break;
882 case DMTT_DOWNLOAD_OUTLINE: val = "DMTT_DOWNLOAD_OUTLINE"; break;
884 ndr_print_enum(ndr, name, "ENUM", val, r);
887 static enum ndr_err_code ndr_push_spoolss_DeviceModeCollate(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeCollate r)
889 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
890 return NDR_ERR_SUCCESS;
893 static enum ndr_err_code ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeCollate *r)
895 uint16_t v;
896 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
897 *r = v;
898 return NDR_ERR_SUCCESS;
901 _PUBLIC_ void ndr_print_spoolss_DeviceModeCollate(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeCollate r)
903 const char *val = NULL;
905 switch (r) {
906 case DMCOLLATE_FALSE: val = "DMCOLLATE_FALSE"; break;
907 case DMCOLLATE_TRUE: val = "DMCOLLATE_TRUE"; break;
909 ndr_print_enum(ndr, name, "ENUM", val, r);
912 static enum ndr_err_code ndr_push_spoolss_DeviceModeNUp(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeNUp r)
914 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
915 return NDR_ERR_SUCCESS;
918 static enum ndr_err_code ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeNUp *r)
920 uint32_t v;
921 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
922 *r = v;
923 return NDR_ERR_SUCCESS;
926 _PUBLIC_ void ndr_print_spoolss_DeviceModeNUp(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeNUp r)
928 const char *val = NULL;
930 switch (r) {
931 case DMNUP_SYSTEM: val = "DMNUP_SYSTEM"; break;
932 case DMNUP_ONEUP: val = "DMNUP_ONEUP"; break;
934 ndr_print_enum(ndr, name, "ENUM", val, r);
937 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod r)
939 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
940 return NDR_ERR_SUCCESS;
943 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod *r)
945 uint32_t v;
946 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
947 *r = v;
948 return NDR_ERR_SUCCESS;
951 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMMethod r)
953 const char *val = NULL;
955 switch (r) {
956 case DMICMMETHOD_NONE: val = "DMICMMETHOD_NONE"; break;
957 case DMICMMETHOD_SYSTEM: val = "DMICMMETHOD_SYSTEM"; break;
958 case DMICMMETHOD_DRIVER: val = "DMICMMETHOD_DRIVER"; break;
959 case DMICMMETHOD_DEVICE: val = "DMICMMETHOD_DEVICE"; break;
961 ndr_print_enum(ndr, name, "ENUM", val, r);
964 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent r)
966 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
967 return NDR_ERR_SUCCESS;
970 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent *r)
972 uint32_t v;
973 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
974 *r = v;
975 return NDR_ERR_SUCCESS;
978 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMIntent r)
980 const char *val = NULL;
982 switch (r) {
983 case DMICM_SATURATE: val = "DMICM_SATURATE"; break;
984 case DMICM_CONTRAST: val = "DMICM_CONTRAST"; break;
985 case DMICM_COLORIMETRIC: val = "DMICM_COLORIMETRIC"; break;
986 case DMICM_ABS_COLORIMETRIC: val = "DMICM_ABS_COLORIMETRIC"; break;
988 ndr_print_enum(ndr, name, "ENUM", val, r);
991 static enum ndr_err_code ndr_push_spoolss_DeviceModeMediaType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType r)
993 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
994 return NDR_ERR_SUCCESS;
997 static enum ndr_err_code ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType *r)
999 uint32_t v;
1000 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1001 *r = v;
1002 return NDR_ERR_SUCCESS;
1005 _PUBLIC_ void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeMediaType r)
1007 const char *val = NULL;
1009 switch (r) {
1010 case DMMEDIA_STANDARD: val = "DMMEDIA_STANDARD"; break;
1011 case DMMEDIA_TRANSPARENCY: val = "DMMEDIA_TRANSPARENCY"; break;
1012 case DMMEDIA_GLOSSY: val = "DMMEDIA_GLOSSY"; break;
1014 ndr_print_enum(ndr, name, "ENUM", val, r);
1017 static enum ndr_err_code ndr_push_spoolss_DeviceModeDitherType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType r)
1019 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1020 return NDR_ERR_SUCCESS;
1023 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType *r)
1025 uint32_t v;
1026 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1027 *r = v;
1028 return NDR_ERR_SUCCESS;
1031 _PUBLIC_ void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDitherType r)
1033 const char *val = NULL;
1035 switch (r) {
1036 case DMDITHER_NONE: val = "DMDITHER_NONE"; break;
1037 case DMDITHER_COARSE: val = "DMDITHER_COARSE"; break;
1038 case DMDITHER_FINE: val = "DMDITHER_FINE"; break;
1039 case DMDITHER_LINEART: val = "DMDITHER_LINEART"; break;
1040 case DMDITHER_ERRORDIFFUSION: val = "DMDITHER_ERRORDIFFUSION"; break;
1041 case DMDITHER_RESERVED6: val = "DMDITHER_RESERVED6"; break;
1042 case DMDITHER_RESERVED7: val = "DMDITHER_RESERVED7"; break;
1043 case DMDITHER_RESERVED8: val = "DMDITHER_RESERVED8"; break;
1044 case DMDITHER_RESERVED9: val = "DMDITHER_RESERVED9"; break;
1045 case DMDITHER_GRAYSCALE: val = "DMDITHER_GRAYSCALE"; break;
1047 ndr_print_enum(ndr, name, "ENUM", val, r);
1050 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
1052 if (ndr_flags & NDR_SCALARS) {
1053 NDR_CHECK(ndr_push_align(ndr, 4));
1054 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1055 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, r->specversion));
1056 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
1057 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
1058 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
1059 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
1060 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, r->orientation));
1061 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, r->papersize));
1062 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
1063 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
1064 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
1065 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
1066 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, r->defaultsource));
1067 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, r->printquality));
1068 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr, NDR_SCALARS, r->color));
1069 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, r->duplex));
1070 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
1071 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, r->ttoption));
1072 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, r->collate));
1073 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1074 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
1075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
1076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
1077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
1078 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, r->displayflags));
1079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
1080 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, r->icmmethod));
1081 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, r->icmintent));
1082 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, r->mediatype));
1083 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, r->dithertype));
1084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
1085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
1086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
1087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
1089 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1092 struct ndr_push *_ndr_driverextra_data;
1093 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
1094 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
1095 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
1097 ndr->flags = _flags_save_DATA_BLOB;
1099 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1101 if (ndr_flags & NDR_BUFFERS) {
1103 return NDR_ERR_SUCCESS;
1106 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
1108 if (ndr_flags & NDR_SCALARS) {
1109 NDR_CHECK(ndr_pull_align(ndr, 4));
1110 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1111 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, &r->specversion));
1112 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
1113 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1114 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
1115 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
1116 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, &r->orientation));
1117 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, &r->papersize));
1118 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
1119 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
1120 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
1121 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
1122 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, &r->defaultsource));
1123 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, &r->printquality));
1124 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr, NDR_SCALARS, &r->color));
1125 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, &r->duplex));
1126 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
1127 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, &r->ttoption));
1128 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, &r->collate));
1129 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1130 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
1131 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
1132 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
1133 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
1134 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, &r->displayflags));
1135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
1136 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, &r->icmmethod));
1137 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, &r->icmintent));
1138 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, &r->mediatype));
1139 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, &r->dithertype));
1140 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1141 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
1143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
1145 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1148 struct ndr_pull *_ndr_driverextra_data;
1149 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
1150 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
1151 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
1153 ndr->flags = _flags_save_DATA_BLOB;
1155 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1157 if (ndr_flags & NDR_BUFFERS) {
1159 return NDR_ERR_SUCCESS;
1162 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
1164 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
1165 ndr->depth++;
1166 ndr_print_string(ndr, "devicename", r->devicename);
1167 ndr_print_spoolss_DeviceModeSpecVersion(ndr, "specversion", r->specversion);
1168 ndr_print_uint16(ndr, "driverversion", r->driverversion);
1169 ndr_print_uint16(ndr, "size", r->size);
1170 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
1171 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
1172 ndr_print_spoolss_DeviceModeOrientation(ndr, "orientation", r->orientation);
1173 ndr_print_spoolss_DeviceModePaperSize(ndr, "papersize", r->papersize);
1174 ndr_print_uint16(ndr, "paperlength", r->paperlength);
1175 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
1176 ndr_print_uint16(ndr, "scale", r->scale);
1177 ndr_print_uint16(ndr, "copies", r->copies);
1178 ndr_print_spoolss_DeviceModeDefaultSource(ndr, "defaultsource", r->defaultsource);
1179 ndr_print_spoolss_DeviceModePrintQuality(ndr, "printquality", r->printquality);
1180 ndr_print_spoolss_DeviceModeColor(ndr, "color", r->color);
1181 ndr_print_spoolss_DeviceModeDuplex(ndr, "duplex", r->duplex);
1182 ndr_print_uint16(ndr, "yresolution", r->yresolution);
1183 ndr_print_spoolss_DeviceModeTTOption(ndr, "ttoption", r->ttoption);
1184 ndr_print_spoolss_DeviceModeCollate(ndr, "collate", r->collate);
1185 ndr_print_string(ndr, "formname", r->formname);
1186 ndr_print_uint16(ndr, "logpixels", r->logpixels);
1187 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
1188 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
1189 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
1190 ndr_print_spoolss_DeviceModeNUp(ndr, "displayflags", r->displayflags);
1191 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
1192 ndr_print_spoolss_DeviceModeICMMethod(ndr, "icmmethod", r->icmmethod);
1193 ndr_print_spoolss_DeviceModeICMIntent(ndr, "icmintent", r->icmintent);
1194 ndr_print_spoolss_DeviceModeMediaType(ndr, "mediatype", r->mediatype);
1195 ndr_print_spoolss_DeviceModeDitherType(ndr, "dithertype", r->dithertype);
1196 ndr_print_uint32(ndr, "reserved1", r->reserved1);
1197 ndr_print_uint32(ndr, "reserved2", r->reserved2);
1198 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
1199 ndr_print_uint32(ndr, "panningheight", r->panningheight);
1200 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
1201 ndr->depth--;
1204 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
1206 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
1209 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1212 return NDR_ERR_SUCCESS;
1215 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1217 uint32_t v;
1218 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1219 *r = v;
1220 return NDR_ERR_SUCCESS;
1223 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1225 ndr_print_uint32(ndr, name, r);
1226 ndr->depth++;
1227 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
1228 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
1229 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
1230 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
1231 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
1232 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
1233 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
1234 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
1235 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
1236 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
1237 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
1238 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
1239 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
1240 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
1241 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
1242 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
1243 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
1244 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
1245 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
1246 ndr->depth--;
1249 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1252 return NDR_ERR_SUCCESS;
1255 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1257 uint32_t v;
1258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1259 *r = v;
1260 return NDR_ERR_SUCCESS;
1263 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
1265 ndr_print_uint32(ndr, name, r);
1266 ndr->depth++;
1267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
1268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
1269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
1270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
1271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
1272 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
1273 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
1274 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
1275 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
1276 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
1277 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
1278 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
1279 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
1280 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
1281 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
1282 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
1283 ndr->depth--;
1286 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
1288 if (ndr_flags & NDR_SCALARS) {
1289 NDR_CHECK(ndr_push_align(ndr, 5));
1290 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
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->description));
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->name));
1301 ndr->flags = _flags_save_string;
1304 uint32_t _flags_save_string = ndr->flags;
1305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1306 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1307 ndr->flags = _flags_save_string;
1309 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1311 if (ndr_flags & NDR_BUFFERS) {
1313 uint32_t _flags_save_string = ndr->flags;
1314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1315 if (r->description) {
1316 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
1317 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
1319 ndr->flags = _flags_save_string;
1322 uint32_t _flags_save_string = ndr->flags;
1323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1324 if (r->name) {
1325 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
1326 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
1328 ndr->flags = _flags_save_string;
1331 uint32_t _flags_save_string = ndr->flags;
1332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1333 if (r->comment) {
1334 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1335 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1337 ndr->flags = _flags_save_string;
1340 return NDR_ERR_SUCCESS;
1343 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
1345 uint32_t _ptr_description;
1346 TALLOC_CTX *_mem_save_description_0;
1347 uint32_t _ptr_name;
1348 TALLOC_CTX *_mem_save_name_0;
1349 uint32_t _ptr_comment;
1350 TALLOC_CTX *_mem_save_comment_0;
1351 if (ndr_flags & NDR_SCALARS) {
1352 NDR_CHECK(ndr_pull_align(ndr, 5));
1353 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
1355 uint32_t _flags_save_string = ndr->flags;
1356 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1357 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
1358 if (_ptr_description) {
1359 NDR_PULL_ALLOC(ndr, r->description);
1360 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
1361 } else {
1362 r->description = NULL;
1364 ndr->flags = _flags_save_string;
1367 uint32_t _flags_save_string = ndr->flags;
1368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1369 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
1370 if (_ptr_name) {
1371 NDR_PULL_ALLOC(ndr, r->name);
1372 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
1373 } else {
1374 r->name = NULL;
1376 ndr->flags = _flags_save_string;
1379 uint32_t _flags_save_string = ndr->flags;
1380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1381 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1382 if (_ptr_comment) {
1383 NDR_PULL_ALLOC(ndr, r->comment);
1384 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1385 } else {
1386 r->comment = NULL;
1388 ndr->flags = _flags_save_string;
1390 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1392 if (ndr_flags & NDR_BUFFERS) {
1394 uint32_t _flags_save_string = ndr->flags;
1395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1396 if (r->description) {
1397 uint32_t _relative_save_offset;
1398 _relative_save_offset = ndr->offset;
1399 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
1400 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
1401 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
1402 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
1403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
1404 if (ndr->offset > ndr->relative_highest_offset) {
1405 ndr->relative_highest_offset = ndr->offset;
1407 ndr->offset = _relative_save_offset;
1409 ndr->flags = _flags_save_string;
1412 uint32_t _flags_save_string = ndr->flags;
1413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1414 if (r->name) {
1415 uint32_t _relative_save_offset;
1416 _relative_save_offset = ndr->offset;
1417 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
1418 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1419 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
1420 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
1421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
1422 if (ndr->offset > ndr->relative_highest_offset) {
1423 ndr->relative_highest_offset = ndr->offset;
1425 ndr->offset = _relative_save_offset;
1427 ndr->flags = _flags_save_string;
1430 uint32_t _flags_save_string = ndr->flags;
1431 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1432 if (r->comment) {
1433 uint32_t _relative_save_offset;
1434 _relative_save_offset = ndr->offset;
1435 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1436 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1437 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1438 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1440 if (ndr->offset > ndr->relative_highest_offset) {
1441 ndr->relative_highest_offset = ndr->offset;
1443 ndr->offset = _relative_save_offset;
1445 ndr->flags = _flags_save_string;
1448 return NDR_ERR_SUCCESS;
1451 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
1453 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
1454 ndr->depth++;
1455 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
1456 ndr_print_ptr(ndr, "description", r->description);
1457 ndr->depth++;
1458 if (r->description) {
1459 ndr_print_string(ndr, "description", r->description);
1461 ndr->depth--;
1462 ndr_print_ptr(ndr, "name", r->name);
1463 ndr->depth++;
1464 if (r->name) {
1465 ndr_print_string(ndr, "name", r->name);
1467 ndr->depth--;
1468 ndr_print_ptr(ndr, "comment", r->comment);
1469 ndr->depth++;
1470 if (r->comment) {
1471 ndr_print_string(ndr, "comment", r->comment);
1473 ndr->depth--;
1474 ndr->depth--;
1477 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
1479 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
1482 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
1484 if (ndr_flags & NDR_SCALARS) {
1485 NDR_CHECK(ndr_push_align(ndr, 5));
1487 uint32_t _flags_save_string = ndr->flags;
1488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1489 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1490 ndr->flags = _flags_save_string;
1493 uint32_t _flags_save_string = ndr->flags;
1494 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1495 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1496 ndr->flags = _flags_save_string;
1499 uint32_t _flags_save_string = ndr->flags;
1500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1501 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
1502 ndr->flags = _flags_save_string;
1505 uint32_t _flags_save_string = ndr->flags;
1506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1507 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1508 ndr->flags = _flags_save_string;
1511 uint32_t _flags_save_string = ndr->flags;
1512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1513 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
1514 ndr->flags = _flags_save_string;
1517 uint32_t _flags_save_string = ndr->flags;
1518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1519 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1520 ndr->flags = _flags_save_string;
1523 uint32_t _flags_save_string = ndr->flags;
1524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1525 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
1526 ndr->flags = _flags_save_string;
1528 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
1530 uint32_t _flags_save_string = ndr->flags;
1531 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1532 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
1533 ndr->flags = _flags_save_string;
1536 uint32_t _flags_save_string = ndr->flags;
1537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1538 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1539 ndr->flags = _flags_save_string;
1542 uint32_t _flags_save_string = ndr->flags;
1543 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1544 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1545 ndr->flags = _flags_save_string;
1548 uint32_t _flags_save_string = ndr->flags;
1549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1550 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1551 ndr->flags = _flags_save_string;
1553 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1554 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1559 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1561 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1562 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1564 if (ndr_flags & NDR_BUFFERS) {
1566 uint32_t _flags_save_string = ndr->flags;
1567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1568 if (r->servername) {
1569 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1570 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1572 ndr->flags = _flags_save_string;
1575 uint32_t _flags_save_string = ndr->flags;
1576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1577 if (r->printername) {
1578 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1579 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1581 ndr->flags = _flags_save_string;
1584 uint32_t _flags_save_string = ndr->flags;
1585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1586 if (r->sharename) {
1587 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1588 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1590 ndr->flags = _flags_save_string;
1593 uint32_t _flags_save_string = ndr->flags;
1594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1595 if (r->portname) {
1596 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1597 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1599 ndr->flags = _flags_save_string;
1602 uint32_t _flags_save_string = ndr->flags;
1603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1604 if (r->drivername) {
1605 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1606 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1608 ndr->flags = _flags_save_string;
1611 uint32_t _flags_save_string = ndr->flags;
1612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1613 if (r->comment) {
1614 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1615 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1617 ndr->flags = _flags_save_string;
1620 uint32_t _flags_save_string = ndr->flags;
1621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1622 if (r->location) {
1623 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1624 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1626 ndr->flags = _flags_save_string;
1628 if (r->devmode) {
1629 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1631 struct ndr_push *_ndr_devmode;
1632 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1633 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1634 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1638 uint32_t _flags_save_string = ndr->flags;
1639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1640 if (r->sepfile) {
1641 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1642 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1644 ndr->flags = _flags_save_string;
1647 uint32_t _flags_save_string = ndr->flags;
1648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1649 if (r->printprocessor) {
1650 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1651 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1653 ndr->flags = _flags_save_string;
1656 uint32_t _flags_save_string = ndr->flags;
1657 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1658 if (r->datatype) {
1659 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1660 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1662 ndr->flags = _flags_save_string;
1665 uint32_t _flags_save_string = ndr->flags;
1666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1667 if (r->parameters) {
1668 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1669 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1671 ndr->flags = _flags_save_string;
1673 if (r->secdesc) {
1674 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1676 struct ndr_push *_ndr_secdesc;
1677 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1678 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1679 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1683 return NDR_ERR_SUCCESS;
1686 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1688 uint32_t _ptr_servername;
1689 TALLOC_CTX *_mem_save_servername_0;
1690 uint32_t _ptr_printername;
1691 TALLOC_CTX *_mem_save_printername_0;
1692 uint32_t _ptr_sharename;
1693 TALLOC_CTX *_mem_save_sharename_0;
1694 uint32_t _ptr_portname;
1695 TALLOC_CTX *_mem_save_portname_0;
1696 uint32_t _ptr_drivername;
1697 TALLOC_CTX *_mem_save_drivername_0;
1698 uint32_t _ptr_comment;
1699 TALLOC_CTX *_mem_save_comment_0;
1700 uint32_t _ptr_location;
1701 TALLOC_CTX *_mem_save_location_0;
1702 uint32_t _ptr_devmode;
1703 TALLOC_CTX *_mem_save_devmode_0;
1704 uint32_t _ptr_sepfile;
1705 TALLOC_CTX *_mem_save_sepfile_0;
1706 uint32_t _ptr_printprocessor;
1707 TALLOC_CTX *_mem_save_printprocessor_0;
1708 uint32_t _ptr_datatype;
1709 TALLOC_CTX *_mem_save_datatype_0;
1710 uint32_t _ptr_parameters;
1711 TALLOC_CTX *_mem_save_parameters_0;
1712 uint32_t _ptr_secdesc;
1713 TALLOC_CTX *_mem_save_secdesc_0;
1714 if (ndr_flags & NDR_SCALARS) {
1715 NDR_CHECK(ndr_pull_align(ndr, 5));
1717 uint32_t _flags_save_string = ndr->flags;
1718 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1719 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1720 if (_ptr_servername) {
1721 NDR_PULL_ALLOC(ndr, r->servername);
1722 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1723 } else {
1724 r->servername = NULL;
1726 ndr->flags = _flags_save_string;
1729 uint32_t _flags_save_string = ndr->flags;
1730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1732 if (_ptr_printername) {
1733 NDR_PULL_ALLOC(ndr, r->printername);
1734 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1735 } else {
1736 r->printername = NULL;
1738 ndr->flags = _flags_save_string;
1741 uint32_t _flags_save_string = ndr->flags;
1742 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1743 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1744 if (_ptr_sharename) {
1745 NDR_PULL_ALLOC(ndr, r->sharename);
1746 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1747 } else {
1748 r->sharename = NULL;
1750 ndr->flags = _flags_save_string;
1753 uint32_t _flags_save_string = ndr->flags;
1754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1755 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1756 if (_ptr_portname) {
1757 NDR_PULL_ALLOC(ndr, r->portname);
1758 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1759 } else {
1760 r->portname = NULL;
1762 ndr->flags = _flags_save_string;
1765 uint32_t _flags_save_string = ndr->flags;
1766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1768 if (_ptr_drivername) {
1769 NDR_PULL_ALLOC(ndr, r->drivername);
1770 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1771 } else {
1772 r->drivername = NULL;
1774 ndr->flags = _flags_save_string;
1777 uint32_t _flags_save_string = ndr->flags;
1778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1779 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1780 if (_ptr_comment) {
1781 NDR_PULL_ALLOC(ndr, r->comment);
1782 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1783 } else {
1784 r->comment = NULL;
1786 ndr->flags = _flags_save_string;
1789 uint32_t _flags_save_string = ndr->flags;
1790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1792 if (_ptr_location) {
1793 NDR_PULL_ALLOC(ndr, r->location);
1794 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1795 } else {
1796 r->location = NULL;
1798 ndr->flags = _flags_save_string;
1800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1801 if (_ptr_devmode) {
1802 NDR_PULL_ALLOC(ndr, r->devmode);
1803 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1804 } else {
1805 r->devmode = NULL;
1808 uint32_t _flags_save_string = ndr->flags;
1809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1810 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1811 if (_ptr_sepfile) {
1812 NDR_PULL_ALLOC(ndr, r->sepfile);
1813 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1814 } else {
1815 r->sepfile = NULL;
1817 ndr->flags = _flags_save_string;
1820 uint32_t _flags_save_string = ndr->flags;
1821 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1822 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1823 if (_ptr_printprocessor) {
1824 NDR_PULL_ALLOC(ndr, r->printprocessor);
1825 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1826 } else {
1827 r->printprocessor = NULL;
1829 ndr->flags = _flags_save_string;
1832 uint32_t _flags_save_string = ndr->flags;
1833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1834 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1835 if (_ptr_datatype) {
1836 NDR_PULL_ALLOC(ndr, r->datatype);
1837 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1838 } else {
1839 r->datatype = NULL;
1841 ndr->flags = _flags_save_string;
1844 uint32_t _flags_save_string = ndr->flags;
1845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1846 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1847 if (_ptr_parameters) {
1848 NDR_PULL_ALLOC(ndr, r->parameters);
1849 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1850 } else {
1851 r->parameters = NULL;
1853 ndr->flags = _flags_save_string;
1855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1856 if (_ptr_secdesc) {
1857 NDR_PULL_ALLOC(ndr, r->secdesc);
1858 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1859 } else {
1860 r->secdesc = NULL;
1862 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1864 if (r->priority > 99) {
1865 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1867 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1868 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1869 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1870 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1872 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1873 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1875 if (ndr_flags & NDR_BUFFERS) {
1877 uint32_t _flags_save_string = ndr->flags;
1878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1879 if (r->servername) {
1880 uint32_t _relative_save_offset;
1881 _relative_save_offset = ndr->offset;
1882 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1883 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1884 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1885 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1887 if (ndr->offset > ndr->relative_highest_offset) {
1888 ndr->relative_highest_offset = ndr->offset;
1890 ndr->offset = _relative_save_offset;
1892 ndr->flags = _flags_save_string;
1895 uint32_t _flags_save_string = ndr->flags;
1896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1897 if (r->printername) {
1898 uint32_t _relative_save_offset;
1899 _relative_save_offset = ndr->offset;
1900 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1901 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1902 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1903 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1905 if (ndr->offset > ndr->relative_highest_offset) {
1906 ndr->relative_highest_offset = ndr->offset;
1908 ndr->offset = _relative_save_offset;
1910 ndr->flags = _flags_save_string;
1913 uint32_t _flags_save_string = ndr->flags;
1914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1915 if (r->sharename) {
1916 uint32_t _relative_save_offset;
1917 _relative_save_offset = ndr->offset;
1918 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1919 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1920 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1921 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1923 if (ndr->offset > ndr->relative_highest_offset) {
1924 ndr->relative_highest_offset = ndr->offset;
1926 ndr->offset = _relative_save_offset;
1928 ndr->flags = _flags_save_string;
1931 uint32_t _flags_save_string = ndr->flags;
1932 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1933 if (r->portname) {
1934 uint32_t _relative_save_offset;
1935 _relative_save_offset = ndr->offset;
1936 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1937 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1938 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1939 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1941 if (ndr->offset > ndr->relative_highest_offset) {
1942 ndr->relative_highest_offset = ndr->offset;
1944 ndr->offset = _relative_save_offset;
1946 ndr->flags = _flags_save_string;
1949 uint32_t _flags_save_string = ndr->flags;
1950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1951 if (r->drivername) {
1952 uint32_t _relative_save_offset;
1953 _relative_save_offset = ndr->offset;
1954 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1955 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1956 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1957 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1959 if (ndr->offset > ndr->relative_highest_offset) {
1960 ndr->relative_highest_offset = ndr->offset;
1962 ndr->offset = _relative_save_offset;
1964 ndr->flags = _flags_save_string;
1967 uint32_t _flags_save_string = ndr->flags;
1968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1969 if (r->comment) {
1970 uint32_t _relative_save_offset;
1971 _relative_save_offset = ndr->offset;
1972 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1973 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1974 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1975 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1977 if (ndr->offset > ndr->relative_highest_offset) {
1978 ndr->relative_highest_offset = ndr->offset;
1980 ndr->offset = _relative_save_offset;
1982 ndr->flags = _flags_save_string;
1985 uint32_t _flags_save_string = ndr->flags;
1986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1987 if (r->location) {
1988 uint32_t _relative_save_offset;
1989 _relative_save_offset = ndr->offset;
1990 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1991 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1992 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1993 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1995 if (ndr->offset > ndr->relative_highest_offset) {
1996 ndr->relative_highest_offset = ndr->offset;
1998 ndr->offset = _relative_save_offset;
2000 ndr->flags = _flags_save_string;
2002 if (r->devmode) {
2003 uint32_t _relative_save_offset;
2004 _relative_save_offset = ndr->offset;
2005 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2006 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2007 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2009 struct ndr_pull *_ndr_devmode;
2010 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2011 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2012 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2015 if (ndr->offset > ndr->relative_highest_offset) {
2016 ndr->relative_highest_offset = ndr->offset;
2018 ndr->offset = _relative_save_offset;
2021 uint32_t _flags_save_string = ndr->flags;
2022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2023 if (r->sepfile) {
2024 uint32_t _relative_save_offset;
2025 _relative_save_offset = ndr->offset;
2026 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
2027 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
2028 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
2029 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
2030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
2031 if (ndr->offset > ndr->relative_highest_offset) {
2032 ndr->relative_highest_offset = ndr->offset;
2034 ndr->offset = _relative_save_offset;
2036 ndr->flags = _flags_save_string;
2039 uint32_t _flags_save_string = ndr->flags;
2040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2041 if (r->printprocessor) {
2042 uint32_t _relative_save_offset;
2043 _relative_save_offset = ndr->offset;
2044 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
2045 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
2046 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
2047 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
2048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
2049 if (ndr->offset > ndr->relative_highest_offset) {
2050 ndr->relative_highest_offset = ndr->offset;
2052 ndr->offset = _relative_save_offset;
2054 ndr->flags = _flags_save_string;
2057 uint32_t _flags_save_string = ndr->flags;
2058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2059 if (r->datatype) {
2060 uint32_t _relative_save_offset;
2061 _relative_save_offset = ndr->offset;
2062 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
2063 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
2064 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
2065 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
2066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
2067 if (ndr->offset > ndr->relative_highest_offset) {
2068 ndr->relative_highest_offset = ndr->offset;
2070 ndr->offset = _relative_save_offset;
2072 ndr->flags = _flags_save_string;
2075 uint32_t _flags_save_string = ndr->flags;
2076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2077 if (r->parameters) {
2078 uint32_t _relative_save_offset;
2079 _relative_save_offset = ndr->offset;
2080 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
2081 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
2082 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
2083 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
2084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
2085 if (ndr->offset > ndr->relative_highest_offset) {
2086 ndr->relative_highest_offset = ndr->offset;
2088 ndr->offset = _relative_save_offset;
2090 ndr->flags = _flags_save_string;
2092 if (r->secdesc) {
2093 uint32_t _relative_save_offset;
2094 _relative_save_offset = ndr->offset;
2095 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2096 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2097 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2099 struct ndr_pull *_ndr_secdesc;
2100 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2101 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2102 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2105 if (ndr->offset > ndr->relative_highest_offset) {
2106 ndr->relative_highest_offset = ndr->offset;
2108 ndr->offset = _relative_save_offset;
2111 return NDR_ERR_SUCCESS;
2114 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
2116 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
2117 ndr->depth++;
2118 ndr_print_ptr(ndr, "servername", r->servername);
2119 ndr->depth++;
2120 if (r->servername) {
2121 ndr_print_string(ndr, "servername", r->servername);
2123 ndr->depth--;
2124 ndr_print_ptr(ndr, "printername", r->printername);
2125 ndr->depth++;
2126 if (r->printername) {
2127 ndr_print_string(ndr, "printername", r->printername);
2129 ndr->depth--;
2130 ndr_print_ptr(ndr, "sharename", r->sharename);
2131 ndr->depth++;
2132 if (r->sharename) {
2133 ndr_print_string(ndr, "sharename", r->sharename);
2135 ndr->depth--;
2136 ndr_print_ptr(ndr, "portname", r->portname);
2137 ndr->depth++;
2138 if (r->portname) {
2139 ndr_print_string(ndr, "portname", r->portname);
2141 ndr->depth--;
2142 ndr_print_ptr(ndr, "drivername", r->drivername);
2143 ndr->depth++;
2144 if (r->drivername) {
2145 ndr_print_string(ndr, "drivername", r->drivername);
2147 ndr->depth--;
2148 ndr_print_ptr(ndr, "comment", r->comment);
2149 ndr->depth++;
2150 if (r->comment) {
2151 ndr_print_string(ndr, "comment", r->comment);
2153 ndr->depth--;
2154 ndr_print_ptr(ndr, "location", r->location);
2155 ndr->depth++;
2156 if (r->location) {
2157 ndr_print_string(ndr, "location", r->location);
2159 ndr->depth--;
2160 ndr_print_ptr(ndr, "devmode", r->devmode);
2161 ndr->depth++;
2162 if (r->devmode) {
2163 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2165 ndr->depth--;
2166 ndr_print_ptr(ndr, "sepfile", r->sepfile);
2167 ndr->depth++;
2168 if (r->sepfile) {
2169 ndr_print_string(ndr, "sepfile", r->sepfile);
2171 ndr->depth--;
2172 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
2173 ndr->depth++;
2174 if (r->printprocessor) {
2175 ndr_print_string(ndr, "printprocessor", r->printprocessor);
2177 ndr->depth--;
2178 ndr_print_ptr(ndr, "datatype", r->datatype);
2179 ndr->depth++;
2180 if (r->datatype) {
2181 ndr_print_string(ndr, "datatype", r->datatype);
2183 ndr->depth--;
2184 ndr_print_ptr(ndr, "parameters", r->parameters);
2185 ndr->depth++;
2186 if (r->parameters) {
2187 ndr_print_string(ndr, "parameters", r->parameters);
2189 ndr->depth--;
2190 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2191 ndr->depth++;
2192 if (r->secdesc) {
2193 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2195 ndr->depth--;
2196 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2197 ndr_print_uint32(ndr, "priority", r->priority);
2198 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
2199 ndr_print_uint32(ndr, "starttime", r->starttime);
2200 ndr_print_uint32(ndr, "untiltime", r->untiltime);
2201 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2202 ndr_print_uint32(ndr, "cjobs", r->cjobs);
2203 ndr_print_uint32(ndr, "averageppm", r->averageppm);
2204 ndr->depth--;
2207 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
2209 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
2212 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
2214 if (ndr_flags & NDR_SCALARS) {
2215 NDR_CHECK(ndr_push_align(ndr, 5));
2216 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2217 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2219 if (ndr_flags & NDR_BUFFERS) {
2220 if (r->secdesc) {
2221 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
2223 struct ndr_push *_ndr_secdesc;
2224 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2225 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2226 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2230 return NDR_ERR_SUCCESS;
2233 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
2235 uint32_t _ptr_secdesc;
2236 TALLOC_CTX *_mem_save_secdesc_0;
2237 if (ndr_flags & NDR_SCALARS) {
2238 NDR_CHECK(ndr_pull_align(ndr, 5));
2239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
2240 if (_ptr_secdesc) {
2241 NDR_PULL_ALLOC(ndr, r->secdesc);
2242 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
2243 } else {
2244 r->secdesc = NULL;
2246 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2248 if (ndr_flags & NDR_BUFFERS) {
2249 if (r->secdesc) {
2250 uint32_t _relative_save_offset;
2251 _relative_save_offset = ndr->offset;
2252 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2253 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2254 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2256 struct ndr_pull *_ndr_secdesc;
2257 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2258 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2259 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2261 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2262 if (ndr->offset > ndr->relative_highest_offset) {
2263 ndr->relative_highest_offset = ndr->offset;
2265 ndr->offset = _relative_save_offset;
2268 return NDR_ERR_SUCCESS;
2271 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
2273 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
2274 ndr->depth++;
2275 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2276 ndr->depth++;
2277 if (r->secdesc) {
2278 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2280 ndr->depth--;
2281 ndr->depth--;
2284 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
2286 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
2289 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
2291 if (ndr_flags & NDR_SCALARS) {
2292 NDR_CHECK(ndr_push_align(ndr, 5));
2294 uint32_t _flags_save_string = ndr->flags;
2295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2296 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2297 ndr->flags = _flags_save_string;
2300 uint32_t _flags_save_string = ndr->flags;
2301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2302 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
2303 ndr->flags = _flags_save_string;
2305 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2306 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2308 if (ndr_flags & NDR_BUFFERS) {
2310 uint32_t _flags_save_string = ndr->flags;
2311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2312 if (r->printername) {
2313 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
2314 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2316 ndr->flags = _flags_save_string;
2319 uint32_t _flags_save_string = ndr->flags;
2320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2321 if (r->servername) {
2322 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
2323 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
2325 ndr->flags = _flags_save_string;
2328 return NDR_ERR_SUCCESS;
2331 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
2333 uint32_t _ptr_printername;
2334 TALLOC_CTX *_mem_save_printername_0;
2335 uint32_t _ptr_servername;
2336 TALLOC_CTX *_mem_save_servername_0;
2337 if (ndr_flags & NDR_SCALARS) {
2338 NDR_CHECK(ndr_pull_align(ndr, 5));
2340 uint32_t _flags_save_string = ndr->flags;
2341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2343 if (_ptr_printername) {
2344 NDR_PULL_ALLOC(ndr, r->printername);
2345 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2346 } else {
2347 r->printername = NULL;
2349 ndr->flags = _flags_save_string;
2352 uint32_t _flags_save_string = ndr->flags;
2353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2354 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
2355 if (_ptr_servername) {
2356 NDR_PULL_ALLOC(ndr, r->servername);
2357 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
2358 } else {
2359 r->servername = NULL;
2361 ndr->flags = _flags_save_string;
2363 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2364 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2366 if (ndr_flags & NDR_BUFFERS) {
2368 uint32_t _flags_save_string = ndr->flags;
2369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2370 if (r->printername) {
2371 uint32_t _relative_save_offset;
2372 _relative_save_offset = ndr->offset;
2373 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2374 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2375 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2376 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2377 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2378 if (ndr->offset > ndr->relative_highest_offset) {
2379 ndr->relative_highest_offset = ndr->offset;
2381 ndr->offset = _relative_save_offset;
2383 ndr->flags = _flags_save_string;
2386 uint32_t _flags_save_string = ndr->flags;
2387 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2388 if (r->servername) {
2389 uint32_t _relative_save_offset;
2390 _relative_save_offset = ndr->offset;
2391 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2392 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2393 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2394 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2395 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2396 if (ndr->offset > ndr->relative_highest_offset) {
2397 ndr->relative_highest_offset = ndr->offset;
2399 ndr->offset = _relative_save_offset;
2401 ndr->flags = _flags_save_string;
2404 return NDR_ERR_SUCCESS;
2407 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
2409 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
2410 ndr->depth++;
2411 ndr_print_ptr(ndr, "printername", r->printername);
2412 ndr->depth++;
2413 if (r->printername) {
2414 ndr_print_string(ndr, "printername", r->printername);
2416 ndr->depth--;
2417 ndr_print_ptr(ndr, "servername", r->servername);
2418 ndr->depth++;
2419 if (r->servername) {
2420 ndr_print_string(ndr, "servername", r->servername);
2422 ndr->depth--;
2423 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2424 ndr->depth--;
2427 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
2429 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
2432 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
2434 if (ndr_flags & NDR_SCALARS) {
2435 NDR_CHECK(ndr_push_align(ndr, 5));
2437 uint32_t _flags_save_string = ndr->flags;
2438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2439 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2440 ndr->flags = _flags_save_string;
2443 uint32_t _flags_save_string = ndr->flags;
2444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2445 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
2446 ndr->flags = _flags_save_string;
2448 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
2450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
2451 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2453 if (ndr_flags & NDR_BUFFERS) {
2455 uint32_t _flags_save_string = ndr->flags;
2456 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2457 if (r->printername) {
2458 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
2459 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2461 ndr->flags = _flags_save_string;
2464 uint32_t _flags_save_string = ndr->flags;
2465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2466 if (r->portname) {
2467 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
2468 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
2470 ndr->flags = _flags_save_string;
2473 return NDR_ERR_SUCCESS;
2476 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
2478 uint32_t _ptr_printername;
2479 TALLOC_CTX *_mem_save_printername_0;
2480 uint32_t _ptr_portname;
2481 TALLOC_CTX *_mem_save_portname_0;
2482 if (ndr_flags & NDR_SCALARS) {
2483 NDR_CHECK(ndr_pull_align(ndr, 5));
2485 uint32_t _flags_save_string = ndr->flags;
2486 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2487 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2488 if (_ptr_printername) {
2489 NDR_PULL_ALLOC(ndr, r->printername);
2490 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2491 } else {
2492 r->printername = NULL;
2494 ndr->flags = _flags_save_string;
2497 uint32_t _flags_save_string = ndr->flags;
2498 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2499 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
2500 if (_ptr_portname) {
2501 NDR_PULL_ALLOC(ndr, r->portname);
2502 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
2503 } else {
2504 r->portname = NULL;
2506 ndr->flags = _flags_save_string;
2508 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2509 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
2510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
2511 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2513 if (ndr_flags & NDR_BUFFERS) {
2515 uint32_t _flags_save_string = ndr->flags;
2516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2517 if (r->printername) {
2518 uint32_t _relative_save_offset;
2519 _relative_save_offset = ndr->offset;
2520 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2521 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2522 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2523 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2525 if (ndr->offset > ndr->relative_highest_offset) {
2526 ndr->relative_highest_offset = ndr->offset;
2528 ndr->offset = _relative_save_offset;
2530 ndr->flags = _flags_save_string;
2533 uint32_t _flags_save_string = ndr->flags;
2534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2535 if (r->portname) {
2536 uint32_t _relative_save_offset;
2537 _relative_save_offset = ndr->offset;
2538 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2539 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2540 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2541 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2543 if (ndr->offset > ndr->relative_highest_offset) {
2544 ndr->relative_highest_offset = ndr->offset;
2546 ndr->offset = _relative_save_offset;
2548 ndr->flags = _flags_save_string;
2551 return NDR_ERR_SUCCESS;
2554 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
2556 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
2557 ndr->depth++;
2558 ndr_print_ptr(ndr, "printername", r->printername);
2559 ndr->depth++;
2560 if (r->printername) {
2561 ndr_print_string(ndr, "printername", r->printername);
2563 ndr->depth--;
2564 ndr_print_ptr(ndr, "portname", r->portname);
2565 ndr->depth++;
2566 if (r->portname) {
2567 ndr_print_string(ndr, "portname", r->portname);
2569 ndr->depth--;
2570 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2571 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2572 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2573 ndr->depth--;
2576 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
2578 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
2581 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2583 if (ndr_flags & NDR_SCALARS) {
2584 NDR_CHECK(ndr_push_align(ndr, 4));
2585 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2586 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2588 if (ndr_flags & NDR_BUFFERS) {
2590 return NDR_ERR_SUCCESS;
2593 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2595 if (ndr_flags & NDR_SCALARS) {
2596 NDR_CHECK(ndr_pull_align(ndr, 4));
2597 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2598 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2600 if (ndr_flags & NDR_BUFFERS) {
2602 return NDR_ERR_SUCCESS;
2605 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2607 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2608 ndr->depth++;
2609 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2610 ndr->depth--;
2613 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
2615 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
2618 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2620 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2621 return NDR_ERR_SUCCESS;
2624 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2626 uint32_t v;
2627 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2628 *r = v;
2629 return NDR_ERR_SUCCESS;
2632 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2634 ndr_print_uint32(ndr, name, r);
2635 ndr->depth++;
2636 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2637 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2638 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2639 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2640 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2641 ndr->depth--;
2644 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2646 if (ndr_flags & NDR_SCALARS) {
2647 NDR_CHECK(ndr_push_align(ndr, 5));
2649 uint32_t _flags_save_string = ndr->flags;
2650 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2651 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2652 ndr->flags = _flags_save_string;
2654 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2655 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2657 if (ndr_flags & NDR_BUFFERS) {
2659 uint32_t _flags_save_string = ndr->flags;
2660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2661 if (r->guid) {
2662 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2663 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2665 ndr->flags = _flags_save_string;
2668 return NDR_ERR_SUCCESS;
2671 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2673 uint32_t _ptr_guid;
2674 TALLOC_CTX *_mem_save_guid_0;
2675 if (ndr_flags & NDR_SCALARS) {
2676 NDR_CHECK(ndr_pull_align(ndr, 5));
2678 uint32_t _flags_save_string = ndr->flags;
2679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2680 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2681 if (_ptr_guid) {
2682 NDR_PULL_ALLOC(ndr, r->guid);
2683 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2684 } else {
2685 r->guid = NULL;
2687 ndr->flags = _flags_save_string;
2689 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2690 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2692 if (ndr_flags & NDR_BUFFERS) {
2694 uint32_t _flags_save_string = ndr->flags;
2695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2696 if (r->guid) {
2697 uint32_t _relative_save_offset;
2698 _relative_save_offset = ndr->offset;
2699 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2700 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2701 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2702 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2704 if (ndr->offset > ndr->relative_highest_offset) {
2705 ndr->relative_highest_offset = ndr->offset;
2707 ndr->offset = _relative_save_offset;
2709 ndr->flags = _flags_save_string;
2712 return NDR_ERR_SUCCESS;
2715 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2717 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2718 ndr->depth++;
2719 ndr_print_ptr(ndr, "guid", r->guid);
2720 ndr->depth++;
2721 if (r->guid) {
2722 ndr_print_string(ndr, "guid", r->guid);
2724 ndr->depth--;
2725 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2726 ndr->depth--;
2729 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2731 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2734 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2736 if (ndr_flags & NDR_SCALARS) {
2737 NDR_CHECK(ndr_push_align(ndr, 5));
2738 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2739 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2741 if (ndr_flags & NDR_BUFFERS) {
2742 if (r->devmode) {
2743 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2745 struct ndr_push *_ndr_devmode;
2746 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2747 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2748 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2752 return NDR_ERR_SUCCESS;
2755 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2757 uint32_t _ptr_devmode;
2758 TALLOC_CTX *_mem_save_devmode_0;
2759 if (ndr_flags & NDR_SCALARS) {
2760 NDR_CHECK(ndr_pull_align(ndr, 5));
2761 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2762 if (_ptr_devmode) {
2763 NDR_PULL_ALLOC(ndr, r->devmode);
2764 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2765 } else {
2766 r->devmode = NULL;
2768 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2770 if (ndr_flags & NDR_BUFFERS) {
2771 if (r->devmode) {
2772 uint32_t _relative_save_offset;
2773 _relative_save_offset = ndr->offset;
2774 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2775 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2776 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2778 struct ndr_pull *_ndr_devmode;
2779 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2780 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2781 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2783 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2784 if (ndr->offset > ndr->relative_highest_offset) {
2785 ndr->relative_highest_offset = ndr->offset;
2787 ndr->offset = _relative_save_offset;
2790 return NDR_ERR_SUCCESS;
2793 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2795 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2796 ndr->depth++;
2797 ndr_print_ptr(ndr, "devmode", r->devmode);
2798 ndr->depth++;
2799 if (r->devmode) {
2800 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2802 ndr->depth--;
2803 ndr->depth--;
2806 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2808 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2809 if (ndr_flags & NDR_SCALARS) {
2810 int level = ndr_push_get_switch_value(ndr, r);
2811 NDR_CHECK(ndr_push_union_align(ndr, 5));
2812 switch (level) {
2813 case 0: {
2814 NDR_CHECK(ndr_push_align(ndr, 5));
2815 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2816 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2817 break; }
2819 case 1: {
2820 NDR_CHECK(ndr_push_align(ndr, 5));
2821 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2822 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2823 break; }
2825 case 2: {
2826 NDR_CHECK(ndr_push_align(ndr, 5));
2827 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2828 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2829 break; }
2831 case 3: {
2832 NDR_CHECK(ndr_push_align(ndr, 5));
2833 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2834 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2835 break; }
2837 case 4: {
2838 NDR_CHECK(ndr_push_align(ndr, 5));
2839 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2840 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2841 break; }
2843 case 5: {
2844 NDR_CHECK(ndr_push_align(ndr, 5));
2845 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2846 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2847 break; }
2849 case 6: {
2850 NDR_CHECK(ndr_push_align(ndr, 4));
2851 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2852 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2853 break; }
2855 case 7: {
2856 NDR_CHECK(ndr_push_align(ndr, 5));
2857 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2858 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2859 break; }
2861 case 8: {
2862 NDR_CHECK(ndr_push_align(ndr, 5));
2863 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2864 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2865 break; }
2867 case 9: {
2868 NDR_CHECK(ndr_push_align(ndr, 5));
2869 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2870 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2871 break; }
2873 default: {
2874 break; }
2878 if (ndr_flags & NDR_BUFFERS) {
2879 int level = ndr_push_get_switch_value(ndr, r);
2880 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2881 switch (level) {
2882 case 0:
2883 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2884 break;
2886 case 1:
2887 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2888 break;
2890 case 2:
2891 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2892 break;
2894 case 3:
2895 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2896 break;
2898 case 4:
2899 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2900 break;
2902 case 5:
2903 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2904 break;
2906 case 6:
2907 break;
2909 case 7:
2910 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2911 break;
2913 case 8:
2914 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2915 break;
2917 case 9:
2918 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2919 break;
2921 default:
2922 break;
2926 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2927 return NDR_ERR_SUCCESS;
2930 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2932 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2933 int level;
2934 level = ndr_pull_get_switch_value(ndr, r);
2935 if (ndr_flags & NDR_SCALARS) {
2936 NDR_CHECK(ndr_pull_union_align(ndr, 5));
2937 switch (level) {
2938 case 0: {
2939 NDR_CHECK(ndr_pull_align(ndr, 5));
2940 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2941 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2942 break; }
2944 case 1: {
2945 NDR_CHECK(ndr_pull_align(ndr, 5));
2946 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2947 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2948 break; }
2950 case 2: {
2951 NDR_CHECK(ndr_pull_align(ndr, 5));
2952 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2953 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2954 break; }
2956 case 3: {
2957 NDR_CHECK(ndr_pull_align(ndr, 5));
2958 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2959 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2960 break; }
2962 case 4: {
2963 NDR_CHECK(ndr_pull_align(ndr, 5));
2964 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2965 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2966 break; }
2968 case 5: {
2969 NDR_CHECK(ndr_pull_align(ndr, 5));
2970 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2971 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2972 break; }
2974 case 6: {
2975 NDR_CHECK(ndr_pull_align(ndr, 4));
2976 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2977 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2978 break; }
2980 case 7: {
2981 NDR_CHECK(ndr_pull_align(ndr, 5));
2982 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2983 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2984 break; }
2986 case 8: {
2987 NDR_CHECK(ndr_pull_align(ndr, 5));
2988 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2989 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2990 break; }
2992 case 9: {
2993 NDR_CHECK(ndr_pull_align(ndr, 5));
2994 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2995 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2996 break; }
2998 default: {
2999 break; }
3003 if (ndr_flags & NDR_BUFFERS) {
3004 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3005 switch (level) {
3006 case 0:
3007 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
3008 break;
3010 case 1:
3011 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
3012 break;
3014 case 2:
3015 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
3016 break;
3018 case 3:
3019 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
3020 break;
3022 case 4:
3023 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
3024 break;
3026 case 5:
3027 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
3028 break;
3030 case 6:
3031 break;
3033 case 7:
3034 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
3035 break;
3037 case 8:
3038 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
3039 break;
3041 case 9:
3042 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
3043 break;
3045 default:
3046 break;
3050 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
3051 return NDR_ERR_SUCCESS;
3054 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
3056 int level;
3057 level = ndr_print_get_switch_value(ndr, r);
3058 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
3059 switch (level) {
3060 case 0:
3061 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
3062 break;
3064 case 1:
3065 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
3066 break;
3068 case 2:
3069 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
3070 break;
3072 case 3:
3073 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
3074 break;
3076 case 4:
3077 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
3078 break;
3080 case 5:
3081 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
3082 break;
3084 case 6:
3085 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
3086 break;
3088 case 7:
3089 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
3090 break;
3092 case 8:
3093 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
3094 break;
3096 case 9:
3097 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
3098 break;
3100 default:
3101 break;
3106 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
3108 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
3111 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
3113 if (ndr_flags & NDR_SCALARS) {
3114 NDR_CHECK(ndr_push_align(ndr, 5));
3115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3116 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3117 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3119 if (ndr_flags & NDR_BUFFERS) {
3120 if (r->devmode) {
3122 struct ndr_push *_ndr_devmode;
3123 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3124 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3125 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3129 return NDR_ERR_SUCCESS;
3132 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
3134 uint32_t _ptr_devmode;
3135 TALLOC_CTX *_mem_save_devmode_0;
3136 if (ndr_flags & NDR_SCALARS) {
3137 NDR_CHECK(ndr_pull_align(ndr, 5));
3138 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
3139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3140 if (_ptr_devmode) {
3141 NDR_PULL_ALLOC(ndr, r->devmode);
3142 } else {
3143 r->devmode = NULL;
3145 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3147 if (ndr_flags & NDR_BUFFERS) {
3148 if (r->devmode) {
3149 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3150 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3152 struct ndr_pull *_ndr_devmode;
3153 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
3154 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3155 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
3157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3160 return NDR_ERR_SUCCESS;
3163 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
3165 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
3166 ndr->depth++;
3167 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);
3168 ndr_print_ptr(ndr, "devmode", r->devmode);
3169 ndr->depth++;
3170 if (r->devmode) {
3171 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3173 ndr->depth--;
3174 ndr->depth--;
3177 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
3179 if (ndr_flags & NDR_SCALARS) {
3180 NDR_CHECK(ndr_push_align(ndr, 5));
3181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3183 uint32_t _flags_save_string = ndr->flags;
3184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3185 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3192 ndr->flags = _flags_save_string;
3195 uint32_t _flags_save_string = ndr->flags;
3196 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3197 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3198 ndr->flags = _flags_save_string;
3201 uint32_t _flags_save_string = ndr->flags;
3202 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3203 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3204 ndr->flags = _flags_save_string;
3207 uint32_t _flags_save_string = ndr->flags;
3208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3209 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3210 ndr->flags = _flags_save_string;
3213 uint32_t _flags_save_string = ndr->flags;
3214 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3215 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3216 ndr->flags = _flags_save_string;
3218 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3223 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3224 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3226 if (ndr_flags & NDR_BUFFERS) {
3228 uint32_t _flags_save_string = ndr->flags;
3229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3230 if (r->printer_name) {
3231 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3232 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3234 ndr->flags = _flags_save_string;
3237 uint32_t _flags_save_string = ndr->flags;
3238 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3239 if (r->server_name) {
3240 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3241 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3243 ndr->flags = _flags_save_string;
3246 uint32_t _flags_save_string = ndr->flags;
3247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3248 if (r->user_name) {
3249 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3250 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3252 ndr->flags = _flags_save_string;
3255 uint32_t _flags_save_string = ndr->flags;
3256 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3257 if (r->document_name) {
3258 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3259 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
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 if (r->data_type) {
3267 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3268 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3270 ndr->flags = _flags_save_string;
3273 uint32_t _flags_save_string = ndr->flags;
3274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3275 if (r->text_status) {
3276 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3277 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3279 ndr->flags = _flags_save_string;
3282 return NDR_ERR_SUCCESS;
3285 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
3287 uint32_t _ptr_printer_name;
3288 TALLOC_CTX *_mem_save_printer_name_0;
3289 uint32_t _ptr_server_name;
3290 TALLOC_CTX *_mem_save_server_name_0;
3291 uint32_t _ptr_user_name;
3292 TALLOC_CTX *_mem_save_user_name_0;
3293 uint32_t _ptr_document_name;
3294 TALLOC_CTX *_mem_save_document_name_0;
3295 uint32_t _ptr_data_type;
3296 TALLOC_CTX *_mem_save_data_type_0;
3297 uint32_t _ptr_text_status;
3298 TALLOC_CTX *_mem_save_text_status_0;
3299 if (ndr_flags & NDR_SCALARS) {
3300 NDR_CHECK(ndr_pull_align(ndr, 5));
3301 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3303 uint32_t _flags_save_string = ndr->flags;
3304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3306 if (_ptr_printer_name) {
3307 NDR_PULL_ALLOC(ndr, r->printer_name);
3308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3309 } else {
3310 r->printer_name = NULL;
3312 ndr->flags = _flags_save_string;
3315 uint32_t _flags_save_string = ndr->flags;
3316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3318 if (_ptr_server_name) {
3319 NDR_PULL_ALLOC(ndr, r->server_name);
3320 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3321 } else {
3322 r->server_name = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3330 if (_ptr_user_name) {
3331 NDR_PULL_ALLOC(ndr, r->user_name);
3332 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3333 } else {
3334 r->user_name = NULL;
3336 ndr->flags = _flags_save_string;
3339 uint32_t _flags_save_string = ndr->flags;
3340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3342 if (_ptr_document_name) {
3343 NDR_PULL_ALLOC(ndr, r->document_name);
3344 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3345 } else {
3346 r->document_name = NULL;
3348 ndr->flags = _flags_save_string;
3351 uint32_t _flags_save_string = ndr->flags;
3352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3354 if (_ptr_data_type) {
3355 NDR_PULL_ALLOC(ndr, r->data_type);
3356 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3357 } else {
3358 r->data_type = NULL;
3360 ndr->flags = _flags_save_string;
3363 uint32_t _flags_save_string = ndr->flags;
3364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3366 if (_ptr_text_status) {
3367 NDR_PULL_ALLOC(ndr, r->text_status);
3368 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3369 } else {
3370 r->text_status = NULL;
3372 ndr->flags = _flags_save_string;
3374 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3375 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3376 if (r->priority > 99) {
3377 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3379 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3380 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3381 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3382 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3383 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3385 if (ndr_flags & NDR_BUFFERS) {
3387 uint32_t _flags_save_string = ndr->flags;
3388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3389 if (r->printer_name) {
3390 uint32_t _relative_save_offset;
3391 _relative_save_offset = ndr->offset;
3392 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3393 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3394 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3395 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3397 if (ndr->offset > ndr->relative_highest_offset) {
3398 ndr->relative_highest_offset = ndr->offset;
3400 ndr->offset = _relative_save_offset;
3402 ndr->flags = _flags_save_string;
3405 uint32_t _flags_save_string = ndr->flags;
3406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3407 if (r->server_name) {
3408 uint32_t _relative_save_offset;
3409 _relative_save_offset = ndr->offset;
3410 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3411 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3412 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3413 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3415 if (ndr->offset > ndr->relative_highest_offset) {
3416 ndr->relative_highest_offset = ndr->offset;
3418 ndr->offset = _relative_save_offset;
3420 ndr->flags = _flags_save_string;
3423 uint32_t _flags_save_string = ndr->flags;
3424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3425 if (r->user_name) {
3426 uint32_t _relative_save_offset;
3427 _relative_save_offset = ndr->offset;
3428 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3429 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3430 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3431 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3433 if (ndr->offset > ndr->relative_highest_offset) {
3434 ndr->relative_highest_offset = ndr->offset;
3436 ndr->offset = _relative_save_offset;
3438 ndr->flags = _flags_save_string;
3441 uint32_t _flags_save_string = ndr->flags;
3442 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3443 if (r->document_name) {
3444 uint32_t _relative_save_offset;
3445 _relative_save_offset = ndr->offset;
3446 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3447 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3448 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3449 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3451 if (ndr->offset > ndr->relative_highest_offset) {
3452 ndr->relative_highest_offset = ndr->offset;
3454 ndr->offset = _relative_save_offset;
3456 ndr->flags = _flags_save_string;
3459 uint32_t _flags_save_string = ndr->flags;
3460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3461 if (r->data_type) {
3462 uint32_t _relative_save_offset;
3463 _relative_save_offset = ndr->offset;
3464 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3465 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3466 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3467 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3469 if (ndr->offset > ndr->relative_highest_offset) {
3470 ndr->relative_highest_offset = ndr->offset;
3472 ndr->offset = _relative_save_offset;
3474 ndr->flags = _flags_save_string;
3477 uint32_t _flags_save_string = ndr->flags;
3478 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3479 if (r->text_status) {
3480 uint32_t _relative_save_offset;
3481 _relative_save_offset = ndr->offset;
3482 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3483 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3484 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3485 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3487 if (ndr->offset > ndr->relative_highest_offset) {
3488 ndr->relative_highest_offset = ndr->offset;
3490 ndr->offset = _relative_save_offset;
3492 ndr->flags = _flags_save_string;
3495 return NDR_ERR_SUCCESS;
3498 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
3500 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
3501 ndr->depth++;
3502 ndr_print_uint32(ndr, "job_id", r->job_id);
3503 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3504 ndr->depth++;
3505 if (r->printer_name) {
3506 ndr_print_string(ndr, "printer_name", r->printer_name);
3508 ndr->depth--;
3509 ndr_print_ptr(ndr, "server_name", r->server_name);
3510 ndr->depth++;
3511 if (r->server_name) {
3512 ndr_print_string(ndr, "server_name", r->server_name);
3514 ndr->depth--;
3515 ndr_print_ptr(ndr, "user_name", r->user_name);
3516 ndr->depth++;
3517 if (r->user_name) {
3518 ndr_print_string(ndr, "user_name", r->user_name);
3520 ndr->depth--;
3521 ndr_print_ptr(ndr, "document_name", r->document_name);
3522 ndr->depth++;
3523 if (r->document_name) {
3524 ndr_print_string(ndr, "document_name", r->document_name);
3526 ndr->depth--;
3527 ndr_print_ptr(ndr, "data_type", r->data_type);
3528 ndr->depth++;
3529 if (r->data_type) {
3530 ndr_print_string(ndr, "data_type", r->data_type);
3532 ndr->depth--;
3533 ndr_print_ptr(ndr, "text_status", r->text_status);
3534 ndr->depth++;
3535 if (r->text_status) {
3536 ndr_print_string(ndr, "text_status", r->text_status);
3538 ndr->depth--;
3539 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3540 ndr_print_uint32(ndr, "priority", r->priority);
3541 ndr_print_uint32(ndr, "position", r->position);
3542 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3543 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3544 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3545 ndr->depth--;
3548 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
3550 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
3553 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
3555 if (ndr_flags & NDR_SCALARS) {
3556 NDR_CHECK(ndr_push_align(ndr, 5));
3557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3559 uint32_t _flags_save_string = ndr->flags;
3560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3561 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3562 ndr->flags = _flags_save_string;
3565 uint32_t _flags_save_string = ndr->flags;
3566 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3567 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3568 ndr->flags = _flags_save_string;
3571 uint32_t _flags_save_string = ndr->flags;
3572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3573 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3580 ndr->flags = _flags_save_string;
3583 uint32_t _flags_save_string = ndr->flags;
3584 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3585 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3586 ndr->flags = _flags_save_string;
3589 uint32_t _flags_save_string = ndr->flags;
3590 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3591 NDR_CHECK(ndr_push_relative_ptr1(ndr, 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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3598 ndr->flags = _flags_save_string;
3601 uint32_t _flags_save_string = ndr->flags;
3602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3603 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3604 ndr->flags = _flags_save_string;
3607 uint32_t _flags_save_string = ndr->flags;
3608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3609 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3610 ndr->flags = _flags_save_string;
3612 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3614 uint32_t _flags_save_string = ndr->flags;
3615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3616 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3617 ndr->flags = _flags_save_string;
3619 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3620 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3627 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3630 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3632 if (ndr_flags & NDR_BUFFERS) {
3634 uint32_t _flags_save_string = ndr->flags;
3635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3636 if (r->printer_name) {
3637 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3638 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3640 ndr->flags = _flags_save_string;
3643 uint32_t _flags_save_string = ndr->flags;
3644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3645 if (r->server_name) {
3646 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3647 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3649 ndr->flags = _flags_save_string;
3652 uint32_t _flags_save_string = ndr->flags;
3653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3654 if (r->user_name) {
3655 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3656 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3658 ndr->flags = _flags_save_string;
3661 uint32_t _flags_save_string = ndr->flags;
3662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3663 if (r->document_name) {
3664 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3665 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3667 ndr->flags = _flags_save_string;
3670 uint32_t _flags_save_string = ndr->flags;
3671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3672 if (r->notify_name) {
3673 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3674 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3676 ndr->flags = _flags_save_string;
3679 uint32_t _flags_save_string = ndr->flags;
3680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3681 if (r->data_type) {
3682 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3683 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3685 ndr->flags = _flags_save_string;
3688 uint32_t _flags_save_string = ndr->flags;
3689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3690 if (r->print_processor) {
3691 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3692 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3694 ndr->flags = _flags_save_string;
3697 uint32_t _flags_save_string = ndr->flags;
3698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3699 if (r->parameters) {
3700 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3701 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3703 ndr->flags = _flags_save_string;
3706 uint32_t _flags_save_string = ndr->flags;
3707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3708 if (r->driver_name) {
3709 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3710 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3712 ndr->flags = _flags_save_string;
3714 if (r->devmode) {
3715 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3716 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3719 uint32_t _flags_save_string = ndr->flags;
3720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3721 if (r->text_status) {
3722 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3723 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3725 ndr->flags = _flags_save_string;
3727 if (r->secdesc) {
3728 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3729 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3732 return NDR_ERR_SUCCESS;
3735 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3737 uint32_t _ptr_printer_name;
3738 TALLOC_CTX *_mem_save_printer_name_0;
3739 uint32_t _ptr_server_name;
3740 TALLOC_CTX *_mem_save_server_name_0;
3741 uint32_t _ptr_user_name;
3742 TALLOC_CTX *_mem_save_user_name_0;
3743 uint32_t _ptr_document_name;
3744 TALLOC_CTX *_mem_save_document_name_0;
3745 uint32_t _ptr_notify_name;
3746 TALLOC_CTX *_mem_save_notify_name_0;
3747 uint32_t _ptr_data_type;
3748 TALLOC_CTX *_mem_save_data_type_0;
3749 uint32_t _ptr_print_processor;
3750 TALLOC_CTX *_mem_save_print_processor_0;
3751 uint32_t _ptr_parameters;
3752 TALLOC_CTX *_mem_save_parameters_0;
3753 uint32_t _ptr_driver_name;
3754 TALLOC_CTX *_mem_save_driver_name_0;
3755 uint32_t _ptr_devmode;
3756 TALLOC_CTX *_mem_save_devmode_0;
3757 uint32_t _ptr_text_status;
3758 TALLOC_CTX *_mem_save_text_status_0;
3759 uint32_t _ptr_secdesc;
3760 TALLOC_CTX *_mem_save_secdesc_0;
3761 if (ndr_flags & NDR_SCALARS) {
3762 NDR_CHECK(ndr_pull_align(ndr, 5));
3763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3765 uint32_t _flags_save_string = ndr->flags;
3766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3768 if (_ptr_printer_name) {
3769 NDR_PULL_ALLOC(ndr, r->printer_name);
3770 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3771 } else {
3772 r->printer_name = NULL;
3774 ndr->flags = _flags_save_string;
3777 uint32_t _flags_save_string = ndr->flags;
3778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3779 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3780 if (_ptr_server_name) {
3781 NDR_PULL_ALLOC(ndr, r->server_name);
3782 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3783 } else {
3784 r->server_name = NULL;
3786 ndr->flags = _flags_save_string;
3789 uint32_t _flags_save_string = ndr->flags;
3790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3792 if (_ptr_user_name) {
3793 NDR_PULL_ALLOC(ndr, r->user_name);
3794 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3795 } else {
3796 r->user_name = NULL;
3798 ndr->flags = _flags_save_string;
3801 uint32_t _flags_save_string = ndr->flags;
3802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3803 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3804 if (_ptr_document_name) {
3805 NDR_PULL_ALLOC(ndr, r->document_name);
3806 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3807 } else {
3808 r->document_name = NULL;
3810 ndr->flags = _flags_save_string;
3813 uint32_t _flags_save_string = ndr->flags;
3814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3816 if (_ptr_notify_name) {
3817 NDR_PULL_ALLOC(ndr, r->notify_name);
3818 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3819 } else {
3820 r->notify_name = NULL;
3822 ndr->flags = _flags_save_string;
3825 uint32_t _flags_save_string = ndr->flags;
3826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3828 if (_ptr_data_type) {
3829 NDR_PULL_ALLOC(ndr, r->data_type);
3830 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3831 } else {
3832 r->data_type = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3840 if (_ptr_print_processor) {
3841 NDR_PULL_ALLOC(ndr, r->print_processor);
3842 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3843 } else {
3844 r->print_processor = NULL;
3846 ndr->flags = _flags_save_string;
3849 uint32_t _flags_save_string = ndr->flags;
3850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3851 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3852 if (_ptr_parameters) {
3853 NDR_PULL_ALLOC(ndr, r->parameters);
3854 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3855 } else {
3856 r->parameters = NULL;
3858 ndr->flags = _flags_save_string;
3861 uint32_t _flags_save_string = ndr->flags;
3862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3863 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3864 if (_ptr_driver_name) {
3865 NDR_PULL_ALLOC(ndr, r->driver_name);
3866 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3867 } else {
3868 r->driver_name = NULL;
3870 ndr->flags = _flags_save_string;
3872 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3873 if (_ptr_devmode) {
3874 NDR_PULL_ALLOC(ndr, r->devmode);
3875 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3876 } else {
3877 r->devmode = NULL;
3880 uint32_t _flags_save_string = ndr->flags;
3881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3883 if (_ptr_text_status) {
3884 NDR_PULL_ALLOC(ndr, r->text_status);
3885 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3886 } else {
3887 r->text_status = NULL;
3889 ndr->flags = _flags_save_string;
3891 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3892 if (_ptr_secdesc) {
3893 NDR_PULL_ALLOC(ndr, r->secdesc);
3894 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3895 } else {
3896 r->secdesc = NULL;
3898 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3900 if (r->priority > 99) {
3901 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3903 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3904 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3905 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3908 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3909 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3910 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3911 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3913 if (ndr_flags & NDR_BUFFERS) {
3915 uint32_t _flags_save_string = ndr->flags;
3916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3917 if (r->printer_name) {
3918 uint32_t _relative_save_offset;
3919 _relative_save_offset = ndr->offset;
3920 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3921 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3922 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3923 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3925 if (ndr->offset > ndr->relative_highest_offset) {
3926 ndr->relative_highest_offset = ndr->offset;
3928 ndr->offset = _relative_save_offset;
3930 ndr->flags = _flags_save_string;
3933 uint32_t _flags_save_string = ndr->flags;
3934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3935 if (r->server_name) {
3936 uint32_t _relative_save_offset;
3937 _relative_save_offset = ndr->offset;
3938 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3939 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3940 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3941 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3943 if (ndr->offset > ndr->relative_highest_offset) {
3944 ndr->relative_highest_offset = ndr->offset;
3946 ndr->offset = _relative_save_offset;
3948 ndr->flags = _flags_save_string;
3951 uint32_t _flags_save_string = ndr->flags;
3952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3953 if (r->user_name) {
3954 uint32_t _relative_save_offset;
3955 _relative_save_offset = ndr->offset;
3956 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3957 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3958 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3959 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3961 if (ndr->offset > ndr->relative_highest_offset) {
3962 ndr->relative_highest_offset = ndr->offset;
3964 ndr->offset = _relative_save_offset;
3966 ndr->flags = _flags_save_string;
3969 uint32_t _flags_save_string = ndr->flags;
3970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3971 if (r->document_name) {
3972 uint32_t _relative_save_offset;
3973 _relative_save_offset = ndr->offset;
3974 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3975 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3976 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3977 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3979 if (ndr->offset > ndr->relative_highest_offset) {
3980 ndr->relative_highest_offset = ndr->offset;
3982 ndr->offset = _relative_save_offset;
3984 ndr->flags = _flags_save_string;
3987 uint32_t _flags_save_string = ndr->flags;
3988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3989 if (r->notify_name) {
3990 uint32_t _relative_save_offset;
3991 _relative_save_offset = ndr->offset;
3992 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3993 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3994 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3995 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3997 if (ndr->offset > ndr->relative_highest_offset) {
3998 ndr->relative_highest_offset = ndr->offset;
4000 ndr->offset = _relative_save_offset;
4002 ndr->flags = _flags_save_string;
4005 uint32_t _flags_save_string = ndr->flags;
4006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4007 if (r->data_type) {
4008 uint32_t _relative_save_offset;
4009 _relative_save_offset = ndr->offset;
4010 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4011 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4012 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4013 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4015 if (ndr->offset > ndr->relative_highest_offset) {
4016 ndr->relative_highest_offset = ndr->offset;
4018 ndr->offset = _relative_save_offset;
4020 ndr->flags = _flags_save_string;
4023 uint32_t _flags_save_string = ndr->flags;
4024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4025 if (r->print_processor) {
4026 uint32_t _relative_save_offset;
4027 _relative_save_offset = ndr->offset;
4028 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4029 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4030 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4031 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4033 if (ndr->offset > ndr->relative_highest_offset) {
4034 ndr->relative_highest_offset = ndr->offset;
4036 ndr->offset = _relative_save_offset;
4038 ndr->flags = _flags_save_string;
4041 uint32_t _flags_save_string = ndr->flags;
4042 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4043 if (r->parameters) {
4044 uint32_t _relative_save_offset;
4045 _relative_save_offset = ndr->offset;
4046 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4047 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4048 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4049 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4051 if (ndr->offset > ndr->relative_highest_offset) {
4052 ndr->relative_highest_offset = ndr->offset;
4054 ndr->offset = _relative_save_offset;
4056 ndr->flags = _flags_save_string;
4059 uint32_t _flags_save_string = ndr->flags;
4060 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4061 if (r->driver_name) {
4062 uint32_t _relative_save_offset;
4063 _relative_save_offset = ndr->offset;
4064 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4065 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4066 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4067 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4069 if (ndr->offset > ndr->relative_highest_offset) {
4070 ndr->relative_highest_offset = ndr->offset;
4072 ndr->offset = _relative_save_offset;
4074 ndr->flags = _flags_save_string;
4076 if (r->devmode) {
4077 uint32_t _relative_save_offset;
4078 _relative_save_offset = ndr->offset;
4079 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4080 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4081 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4082 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4084 if (ndr->offset > ndr->relative_highest_offset) {
4085 ndr->relative_highest_offset = ndr->offset;
4087 ndr->offset = _relative_save_offset;
4090 uint32_t _flags_save_string = ndr->flags;
4091 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4092 if (r->text_status) {
4093 uint32_t _relative_save_offset;
4094 _relative_save_offset = ndr->offset;
4095 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4096 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4097 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4098 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4100 if (ndr->offset > ndr->relative_highest_offset) {
4101 ndr->relative_highest_offset = ndr->offset;
4103 ndr->offset = _relative_save_offset;
4105 ndr->flags = _flags_save_string;
4107 if (r->secdesc) {
4108 uint32_t _relative_save_offset;
4109 _relative_save_offset = ndr->offset;
4110 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4111 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4112 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4113 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4115 if (ndr->offset > ndr->relative_highest_offset) {
4116 ndr->relative_highest_offset = ndr->offset;
4118 ndr->offset = _relative_save_offset;
4121 return NDR_ERR_SUCCESS;
4124 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
4126 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
4127 ndr->depth++;
4128 ndr_print_uint32(ndr, "job_id", r->job_id);
4129 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4130 ndr->depth++;
4131 if (r->printer_name) {
4132 ndr_print_string(ndr, "printer_name", r->printer_name);
4134 ndr->depth--;
4135 ndr_print_ptr(ndr, "server_name", r->server_name);
4136 ndr->depth++;
4137 if (r->server_name) {
4138 ndr_print_string(ndr, "server_name", r->server_name);
4140 ndr->depth--;
4141 ndr_print_ptr(ndr, "user_name", r->user_name);
4142 ndr->depth++;
4143 if (r->user_name) {
4144 ndr_print_string(ndr, "user_name", r->user_name);
4146 ndr->depth--;
4147 ndr_print_ptr(ndr, "document_name", r->document_name);
4148 ndr->depth++;
4149 if (r->document_name) {
4150 ndr_print_string(ndr, "document_name", r->document_name);
4152 ndr->depth--;
4153 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4154 ndr->depth++;
4155 if (r->notify_name) {
4156 ndr_print_string(ndr, "notify_name", r->notify_name);
4158 ndr->depth--;
4159 ndr_print_ptr(ndr, "data_type", r->data_type);
4160 ndr->depth++;
4161 if (r->data_type) {
4162 ndr_print_string(ndr, "data_type", r->data_type);
4164 ndr->depth--;
4165 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4166 ndr->depth++;
4167 if (r->print_processor) {
4168 ndr_print_string(ndr, "print_processor", r->print_processor);
4170 ndr->depth--;
4171 ndr_print_ptr(ndr, "parameters", r->parameters);
4172 ndr->depth++;
4173 if (r->parameters) {
4174 ndr_print_string(ndr, "parameters", r->parameters);
4176 ndr->depth--;
4177 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4178 ndr->depth++;
4179 if (r->driver_name) {
4180 ndr_print_string(ndr, "driver_name", r->driver_name);
4182 ndr->depth--;
4183 ndr_print_ptr(ndr, "devmode", r->devmode);
4184 ndr->depth++;
4185 if (r->devmode) {
4186 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4188 ndr->depth--;
4189 ndr_print_ptr(ndr, "text_status", r->text_status);
4190 ndr->depth++;
4191 if (r->text_status) {
4192 ndr_print_string(ndr, "text_status", r->text_status);
4194 ndr->depth--;
4195 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4196 ndr->depth++;
4197 if (r->secdesc) {
4198 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4200 ndr->depth--;
4201 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4202 ndr_print_uint32(ndr, "priority", r->priority);
4203 ndr_print_uint32(ndr, "position", r->position);
4204 ndr_print_uint32(ndr, "start_time", r->start_time);
4205 ndr_print_uint32(ndr, "until_time", r->until_time);
4206 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4207 ndr_print_uint32(ndr, "size", r->size);
4208 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4209 ndr_print_uint32(ndr, "time", r->time);
4210 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4211 ndr->depth--;
4214 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
4216 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
4219 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
4221 if (ndr_flags & NDR_SCALARS) {
4222 NDR_CHECK(ndr_push_align(ndr, 4));
4223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
4225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
4226 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
4228 if (ndr_flags & NDR_BUFFERS) {
4230 return NDR_ERR_SUCCESS;
4233 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
4235 if (ndr_flags & NDR_SCALARS) {
4236 NDR_CHECK(ndr_pull_align(ndr, 4));
4237 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
4239 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
4240 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
4242 if (ndr_flags & NDR_BUFFERS) {
4244 return NDR_ERR_SUCCESS;
4247 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
4249 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
4250 ndr->depth++;
4251 ndr_print_uint32(ndr, "job_id", r->job_id);
4252 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
4253 ndr_print_uint32(ndr, "reserved", r->reserved);
4254 ndr->depth--;
4257 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
4259 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
4262 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
4264 if (ndr_flags & NDR_SCALARS) {
4265 NDR_CHECK(ndr_push_align(ndr, 5));
4266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4268 uint32_t _flags_save_string = ndr->flags;
4269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4270 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
4271 ndr->flags = _flags_save_string;
4274 uint32_t _flags_save_string = ndr->flags;
4275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4276 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
4277 ndr->flags = _flags_save_string;
4280 uint32_t _flags_save_string = ndr->flags;
4281 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4282 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
4283 ndr->flags = _flags_save_string;
4286 uint32_t _flags_save_string = ndr->flags;
4287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4288 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
4289 ndr->flags = _flags_save_string;
4292 uint32_t _flags_save_string = ndr->flags;
4293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4294 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
4295 ndr->flags = _flags_save_string;
4298 uint32_t _flags_save_string = ndr->flags;
4299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4300 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
4301 ndr->flags = _flags_save_string;
4304 uint32_t _flags_save_string = ndr->flags;
4305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4306 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
4307 ndr->flags = _flags_save_string;
4310 uint32_t _flags_save_string = ndr->flags;
4311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4312 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
4313 ndr->flags = _flags_save_string;
4316 uint32_t _flags_save_string = ndr->flags;
4317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4318 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4319 ndr->flags = _flags_save_string;
4321 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
4323 uint32_t _flags_save_string = ndr->flags;
4324 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4325 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
4326 ndr->flags = _flags_save_string;
4328 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
4329 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4336 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
4340 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4342 if (ndr_flags & NDR_BUFFERS) {
4344 uint32_t _flags_save_string = ndr->flags;
4345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4346 if (r->printer_name) {
4347 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
4348 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
4350 ndr->flags = _flags_save_string;
4353 uint32_t _flags_save_string = ndr->flags;
4354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4355 if (r->server_name) {
4356 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
4357 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
4359 ndr->flags = _flags_save_string;
4362 uint32_t _flags_save_string = ndr->flags;
4363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4364 if (r->user_name) {
4365 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
4366 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
4368 ndr->flags = _flags_save_string;
4371 uint32_t _flags_save_string = ndr->flags;
4372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4373 if (r->document_name) {
4374 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
4375 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
4377 ndr->flags = _flags_save_string;
4380 uint32_t _flags_save_string = ndr->flags;
4381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4382 if (r->notify_name) {
4383 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
4384 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
4386 ndr->flags = _flags_save_string;
4389 uint32_t _flags_save_string = ndr->flags;
4390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4391 if (r->data_type) {
4392 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
4393 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
4395 ndr->flags = _flags_save_string;
4398 uint32_t _flags_save_string = ndr->flags;
4399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4400 if (r->print_processor) {
4401 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
4402 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
4404 ndr->flags = _flags_save_string;
4407 uint32_t _flags_save_string = ndr->flags;
4408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4409 if (r->parameters) {
4410 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
4411 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
4413 ndr->flags = _flags_save_string;
4416 uint32_t _flags_save_string = ndr->flags;
4417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4418 if (r->driver_name) {
4419 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
4420 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4422 ndr->flags = _flags_save_string;
4424 if (r->devmode) {
4425 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
4426 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4429 uint32_t _flags_save_string = ndr->flags;
4430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4431 if (r->text_status) {
4432 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
4433 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
4435 ndr->flags = _flags_save_string;
4437 if (r->secdesc) {
4438 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
4439 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4442 return NDR_ERR_SUCCESS;
4445 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
4447 uint32_t _ptr_printer_name;
4448 TALLOC_CTX *_mem_save_printer_name_0;
4449 uint32_t _ptr_server_name;
4450 TALLOC_CTX *_mem_save_server_name_0;
4451 uint32_t _ptr_user_name;
4452 TALLOC_CTX *_mem_save_user_name_0;
4453 uint32_t _ptr_document_name;
4454 TALLOC_CTX *_mem_save_document_name_0;
4455 uint32_t _ptr_notify_name;
4456 TALLOC_CTX *_mem_save_notify_name_0;
4457 uint32_t _ptr_data_type;
4458 TALLOC_CTX *_mem_save_data_type_0;
4459 uint32_t _ptr_print_processor;
4460 TALLOC_CTX *_mem_save_print_processor_0;
4461 uint32_t _ptr_parameters;
4462 TALLOC_CTX *_mem_save_parameters_0;
4463 uint32_t _ptr_driver_name;
4464 TALLOC_CTX *_mem_save_driver_name_0;
4465 uint32_t _ptr_devmode;
4466 TALLOC_CTX *_mem_save_devmode_0;
4467 uint32_t _ptr_text_status;
4468 TALLOC_CTX *_mem_save_text_status_0;
4469 uint32_t _ptr_secdesc;
4470 TALLOC_CTX *_mem_save_secdesc_0;
4471 if (ndr_flags & NDR_SCALARS) {
4472 NDR_CHECK(ndr_pull_align(ndr, 5));
4473 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4475 uint32_t _flags_save_string = ndr->flags;
4476 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4477 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4478 if (_ptr_printer_name) {
4479 NDR_PULL_ALLOC(ndr, r->printer_name);
4480 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4481 } else {
4482 r->printer_name = NULL;
4484 ndr->flags = _flags_save_string;
4487 uint32_t _flags_save_string = ndr->flags;
4488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4489 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4490 if (_ptr_server_name) {
4491 NDR_PULL_ALLOC(ndr, r->server_name);
4492 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4493 } else {
4494 r->server_name = NULL;
4496 ndr->flags = _flags_save_string;
4499 uint32_t _flags_save_string = ndr->flags;
4500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4501 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4502 if (_ptr_user_name) {
4503 NDR_PULL_ALLOC(ndr, r->user_name);
4504 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4505 } else {
4506 r->user_name = NULL;
4508 ndr->flags = _flags_save_string;
4511 uint32_t _flags_save_string = ndr->flags;
4512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4513 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4514 if (_ptr_document_name) {
4515 NDR_PULL_ALLOC(ndr, r->document_name);
4516 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4517 } else {
4518 r->document_name = NULL;
4520 ndr->flags = _flags_save_string;
4523 uint32_t _flags_save_string = ndr->flags;
4524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4525 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4526 if (_ptr_notify_name) {
4527 NDR_PULL_ALLOC(ndr, r->notify_name);
4528 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4529 } else {
4530 r->notify_name = NULL;
4532 ndr->flags = _flags_save_string;
4535 uint32_t _flags_save_string = ndr->flags;
4536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4538 if (_ptr_data_type) {
4539 NDR_PULL_ALLOC(ndr, r->data_type);
4540 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4541 } else {
4542 r->data_type = NULL;
4544 ndr->flags = _flags_save_string;
4547 uint32_t _flags_save_string = ndr->flags;
4548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4549 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4550 if (_ptr_print_processor) {
4551 NDR_PULL_ALLOC(ndr, r->print_processor);
4552 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4553 } else {
4554 r->print_processor = NULL;
4556 ndr->flags = _flags_save_string;
4559 uint32_t _flags_save_string = ndr->flags;
4560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4562 if (_ptr_parameters) {
4563 NDR_PULL_ALLOC(ndr, r->parameters);
4564 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4565 } else {
4566 r->parameters = NULL;
4568 ndr->flags = _flags_save_string;
4571 uint32_t _flags_save_string = ndr->flags;
4572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4573 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4574 if (_ptr_driver_name) {
4575 NDR_PULL_ALLOC(ndr, r->driver_name);
4576 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4577 } else {
4578 r->driver_name = NULL;
4580 ndr->flags = _flags_save_string;
4582 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4583 if (_ptr_devmode) {
4584 NDR_PULL_ALLOC(ndr, r->devmode);
4585 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4586 } else {
4587 r->devmode = NULL;
4590 uint32_t _flags_save_string = ndr->flags;
4591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4592 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4593 if (_ptr_text_status) {
4594 NDR_PULL_ALLOC(ndr, r->text_status);
4595 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4596 } else {
4597 r->text_status = NULL;
4599 ndr->flags = _flags_save_string;
4601 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4602 if (_ptr_secdesc) {
4603 NDR_PULL_ALLOC(ndr, r->secdesc);
4604 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4605 } else {
4606 r->secdesc = NULL;
4608 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4610 if (r->priority > 99) {
4611 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4613 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4615 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4616 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4617 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4618 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4619 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4620 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4621 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
4622 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4624 if (ndr_flags & NDR_BUFFERS) {
4626 uint32_t _flags_save_string = ndr->flags;
4627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4628 if (r->printer_name) {
4629 uint32_t _relative_save_offset;
4630 _relative_save_offset = ndr->offset;
4631 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4632 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4633 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4634 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4635 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4636 if (ndr->offset > ndr->relative_highest_offset) {
4637 ndr->relative_highest_offset = ndr->offset;
4639 ndr->offset = _relative_save_offset;
4641 ndr->flags = _flags_save_string;
4644 uint32_t _flags_save_string = ndr->flags;
4645 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4646 if (r->server_name) {
4647 uint32_t _relative_save_offset;
4648 _relative_save_offset = ndr->offset;
4649 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4650 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4651 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4652 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4654 if (ndr->offset > ndr->relative_highest_offset) {
4655 ndr->relative_highest_offset = ndr->offset;
4657 ndr->offset = _relative_save_offset;
4659 ndr->flags = _flags_save_string;
4662 uint32_t _flags_save_string = ndr->flags;
4663 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4664 if (r->user_name) {
4665 uint32_t _relative_save_offset;
4666 _relative_save_offset = ndr->offset;
4667 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4668 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4669 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4670 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4672 if (ndr->offset > ndr->relative_highest_offset) {
4673 ndr->relative_highest_offset = ndr->offset;
4675 ndr->offset = _relative_save_offset;
4677 ndr->flags = _flags_save_string;
4680 uint32_t _flags_save_string = ndr->flags;
4681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4682 if (r->document_name) {
4683 uint32_t _relative_save_offset;
4684 _relative_save_offset = ndr->offset;
4685 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4686 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4687 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4688 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4690 if (ndr->offset > ndr->relative_highest_offset) {
4691 ndr->relative_highest_offset = ndr->offset;
4693 ndr->offset = _relative_save_offset;
4695 ndr->flags = _flags_save_string;
4698 uint32_t _flags_save_string = ndr->flags;
4699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4700 if (r->notify_name) {
4701 uint32_t _relative_save_offset;
4702 _relative_save_offset = ndr->offset;
4703 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4704 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4705 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4706 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4707 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4708 if (ndr->offset > ndr->relative_highest_offset) {
4709 ndr->relative_highest_offset = ndr->offset;
4711 ndr->offset = _relative_save_offset;
4713 ndr->flags = _flags_save_string;
4716 uint32_t _flags_save_string = ndr->flags;
4717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4718 if (r->data_type) {
4719 uint32_t _relative_save_offset;
4720 _relative_save_offset = ndr->offset;
4721 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4722 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4723 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4724 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4726 if (ndr->offset > ndr->relative_highest_offset) {
4727 ndr->relative_highest_offset = ndr->offset;
4729 ndr->offset = _relative_save_offset;
4731 ndr->flags = _flags_save_string;
4734 uint32_t _flags_save_string = ndr->flags;
4735 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4736 if (r->print_processor) {
4737 uint32_t _relative_save_offset;
4738 _relative_save_offset = ndr->offset;
4739 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4740 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4741 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4742 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4744 if (ndr->offset > ndr->relative_highest_offset) {
4745 ndr->relative_highest_offset = ndr->offset;
4747 ndr->offset = _relative_save_offset;
4749 ndr->flags = _flags_save_string;
4752 uint32_t _flags_save_string = ndr->flags;
4753 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4754 if (r->parameters) {
4755 uint32_t _relative_save_offset;
4756 _relative_save_offset = ndr->offset;
4757 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4758 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4759 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4760 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4762 if (ndr->offset > ndr->relative_highest_offset) {
4763 ndr->relative_highest_offset = ndr->offset;
4765 ndr->offset = _relative_save_offset;
4767 ndr->flags = _flags_save_string;
4770 uint32_t _flags_save_string = ndr->flags;
4771 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4772 if (r->driver_name) {
4773 uint32_t _relative_save_offset;
4774 _relative_save_offset = ndr->offset;
4775 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4776 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4777 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4778 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4780 if (ndr->offset > ndr->relative_highest_offset) {
4781 ndr->relative_highest_offset = ndr->offset;
4783 ndr->offset = _relative_save_offset;
4785 ndr->flags = _flags_save_string;
4787 if (r->devmode) {
4788 uint32_t _relative_save_offset;
4789 _relative_save_offset = ndr->offset;
4790 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4791 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4792 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4793 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4794 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4795 if (ndr->offset > ndr->relative_highest_offset) {
4796 ndr->relative_highest_offset = ndr->offset;
4798 ndr->offset = _relative_save_offset;
4801 uint32_t _flags_save_string = ndr->flags;
4802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4803 if (r->text_status) {
4804 uint32_t _relative_save_offset;
4805 _relative_save_offset = ndr->offset;
4806 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4807 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4808 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4809 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4811 if (ndr->offset > ndr->relative_highest_offset) {
4812 ndr->relative_highest_offset = ndr->offset;
4814 ndr->offset = _relative_save_offset;
4816 ndr->flags = _flags_save_string;
4818 if (r->secdesc) {
4819 uint32_t _relative_save_offset;
4820 _relative_save_offset = ndr->offset;
4821 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4822 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4823 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4824 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4825 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4826 if (ndr->offset > ndr->relative_highest_offset) {
4827 ndr->relative_highest_offset = ndr->offset;
4829 ndr->offset = _relative_save_offset;
4832 return NDR_ERR_SUCCESS;
4835 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4837 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4838 ndr->depth++;
4839 ndr_print_uint32(ndr, "job_id", r->job_id);
4840 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4841 ndr->depth++;
4842 if (r->printer_name) {
4843 ndr_print_string(ndr, "printer_name", r->printer_name);
4845 ndr->depth--;
4846 ndr_print_ptr(ndr, "server_name", r->server_name);
4847 ndr->depth++;
4848 if (r->server_name) {
4849 ndr_print_string(ndr, "server_name", r->server_name);
4851 ndr->depth--;
4852 ndr_print_ptr(ndr, "user_name", r->user_name);
4853 ndr->depth++;
4854 if (r->user_name) {
4855 ndr_print_string(ndr, "user_name", r->user_name);
4857 ndr->depth--;
4858 ndr_print_ptr(ndr, "document_name", r->document_name);
4859 ndr->depth++;
4860 if (r->document_name) {
4861 ndr_print_string(ndr, "document_name", r->document_name);
4863 ndr->depth--;
4864 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4865 ndr->depth++;
4866 if (r->notify_name) {
4867 ndr_print_string(ndr, "notify_name", r->notify_name);
4869 ndr->depth--;
4870 ndr_print_ptr(ndr, "data_type", r->data_type);
4871 ndr->depth++;
4872 if (r->data_type) {
4873 ndr_print_string(ndr, "data_type", r->data_type);
4875 ndr->depth--;
4876 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4877 ndr->depth++;
4878 if (r->print_processor) {
4879 ndr_print_string(ndr, "print_processor", r->print_processor);
4881 ndr->depth--;
4882 ndr_print_ptr(ndr, "parameters", r->parameters);
4883 ndr->depth++;
4884 if (r->parameters) {
4885 ndr_print_string(ndr, "parameters", r->parameters);
4887 ndr->depth--;
4888 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4889 ndr->depth++;
4890 if (r->driver_name) {
4891 ndr_print_string(ndr, "driver_name", r->driver_name);
4893 ndr->depth--;
4894 ndr_print_ptr(ndr, "devmode", r->devmode);
4895 ndr->depth++;
4896 if (r->devmode) {
4897 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4899 ndr->depth--;
4900 ndr_print_ptr(ndr, "text_status", r->text_status);
4901 ndr->depth++;
4902 if (r->text_status) {
4903 ndr_print_string(ndr, "text_status", r->text_status);
4905 ndr->depth--;
4906 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4907 ndr->depth++;
4908 if (r->secdesc) {
4909 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4911 ndr->depth--;
4912 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4913 ndr_print_uint32(ndr, "priority", r->priority);
4914 ndr_print_uint32(ndr, "position", r->position);
4915 ndr_print_uint32(ndr, "start_time", r->start_time);
4916 ndr_print_uint32(ndr, "until_time", r->until_time);
4917 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4918 ndr_print_uint32(ndr, "size", r->size);
4919 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4920 ndr_print_uint32(ndr, "time", r->time);
4921 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4922 ndr_print_uint32(ndr, "size_high", r->size_high);
4923 ndr->depth--;
4926 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
4928 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
4931 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4933 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4934 if (ndr_flags & NDR_SCALARS) {
4935 int level = ndr_push_get_switch_value(ndr, r);
4936 NDR_CHECK(ndr_push_union_align(ndr, 5));
4937 switch (level) {
4938 case 1: {
4939 NDR_CHECK(ndr_push_align(ndr, 5));
4940 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4941 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4942 break; }
4944 case 2: {
4945 NDR_CHECK(ndr_push_align(ndr, 5));
4946 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4947 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4948 break; }
4950 case 3: {
4951 NDR_CHECK(ndr_push_align(ndr, 4));
4952 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4953 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4954 break; }
4956 case 4: {
4957 NDR_CHECK(ndr_push_align(ndr, 5));
4958 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4959 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4960 break; }
4962 default: {
4963 break; }
4967 if (ndr_flags & NDR_BUFFERS) {
4968 int level = ndr_push_get_switch_value(ndr, r);
4969 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
4970 switch (level) {
4971 case 1:
4972 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4973 break;
4975 case 2:
4976 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4977 break;
4979 case 3:
4980 break;
4982 case 4:
4983 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4984 break;
4986 default:
4987 break;
4991 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
4992 return NDR_ERR_SUCCESS;
4995 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
4997 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
4998 int level;
4999 level = ndr_pull_get_switch_value(ndr, r);
5000 if (ndr_flags & NDR_SCALARS) {
5001 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5002 switch (level) {
5003 case 1: {
5004 NDR_CHECK(ndr_pull_align(ndr, 5));
5005 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5006 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5007 break; }
5009 case 2: {
5010 NDR_CHECK(ndr_pull_align(ndr, 5));
5011 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5012 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5013 break; }
5015 case 3: {
5016 NDR_CHECK(ndr_pull_align(ndr, 4));
5017 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5018 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5019 break; }
5021 case 4: {
5022 NDR_CHECK(ndr_pull_align(ndr, 5));
5023 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5024 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5025 break; }
5027 default: {
5028 break; }
5032 if (ndr_flags & NDR_BUFFERS) {
5033 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
5034 switch (level) {
5035 case 1:
5036 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5037 break;
5039 case 2:
5040 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5041 break;
5043 case 3:
5044 break;
5046 case 4:
5047 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5048 break;
5050 default:
5051 break;
5055 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
5056 return NDR_ERR_SUCCESS;
5059 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
5061 int level;
5062 level = ndr_print_get_switch_value(ndr, r);
5063 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
5064 switch (level) {
5065 case 1:
5066 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
5067 break;
5069 case 2:
5070 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
5071 break;
5073 case 3:
5074 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
5075 break;
5077 case 4:
5078 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
5079 break;
5081 default:
5082 break;
5087 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
5089 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
5092 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
5094 if (ndr_flags & NDR_SCALARS) {
5095 NDR_CHECK(ndr_push_align(ndr, 5));
5096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5097 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5098 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5099 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5100 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5101 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5102 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5103 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5108 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5109 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5111 if (ndr_flags & NDR_BUFFERS) {
5112 if (r->printer_name) {
5113 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5114 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5115 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5116 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5118 if (r->server_name) {
5119 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5120 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5121 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5122 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5124 if (r->user_name) {
5125 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5126 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5127 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5128 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5130 if (r->document_name) {
5131 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5132 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5133 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5134 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5136 if (r->data_type) {
5137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5138 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5139 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5140 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5142 if (r->text_status) {
5143 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5144 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5145 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5146 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5149 return NDR_ERR_SUCCESS;
5152 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
5154 uint32_t _ptr_printer_name;
5155 TALLOC_CTX *_mem_save_printer_name_0;
5156 uint32_t _ptr_server_name;
5157 TALLOC_CTX *_mem_save_server_name_0;
5158 uint32_t _ptr_user_name;
5159 TALLOC_CTX *_mem_save_user_name_0;
5160 uint32_t _ptr_document_name;
5161 TALLOC_CTX *_mem_save_document_name_0;
5162 uint32_t _ptr_data_type;
5163 TALLOC_CTX *_mem_save_data_type_0;
5164 uint32_t _ptr_text_status;
5165 TALLOC_CTX *_mem_save_text_status_0;
5166 if (ndr_flags & NDR_SCALARS) {
5167 NDR_CHECK(ndr_pull_align(ndr, 5));
5168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5170 if (_ptr_printer_name) {
5171 NDR_PULL_ALLOC(ndr, r->printer_name);
5172 } else {
5173 r->printer_name = NULL;
5175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5176 if (_ptr_server_name) {
5177 NDR_PULL_ALLOC(ndr, r->server_name);
5178 } else {
5179 r->server_name = NULL;
5181 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5182 if (_ptr_user_name) {
5183 NDR_PULL_ALLOC(ndr, r->user_name);
5184 } else {
5185 r->user_name = NULL;
5187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5188 if (_ptr_document_name) {
5189 NDR_PULL_ALLOC(ndr, r->document_name);
5190 } else {
5191 r->document_name = NULL;
5193 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5194 if (_ptr_data_type) {
5195 NDR_PULL_ALLOC(ndr, r->data_type);
5196 } else {
5197 r->data_type = NULL;
5199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5200 if (_ptr_text_status) {
5201 NDR_PULL_ALLOC(ndr, r->text_status);
5202 } else {
5203 r->text_status = NULL;
5205 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5207 if (r->priority > 99) {
5208 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5210 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5211 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5212 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5213 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5214 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5216 if (ndr_flags & NDR_BUFFERS) {
5217 if (r->printer_name) {
5218 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5219 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5220 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5221 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5222 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5223 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));
5225 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5226 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5229 if (r->server_name) {
5230 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5231 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5232 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5233 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5234 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5235 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));
5237 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5238 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5241 if (r->user_name) {
5242 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5243 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5244 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5245 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5246 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5247 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));
5249 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5250 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5253 if (r->document_name) {
5254 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5255 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5256 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5257 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5258 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5259 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));
5261 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5262 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5265 if (r->data_type) {
5266 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5267 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5268 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5269 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5270 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5271 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));
5273 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5274 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5277 if (r->text_status) {
5278 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5279 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5280 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5281 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5282 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5283 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));
5285 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5286 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5290 return NDR_ERR_SUCCESS;
5293 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
5295 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
5296 ndr->depth++;
5297 ndr_print_uint32(ndr, "job_id", r->job_id);
5298 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5299 ndr->depth++;
5300 if (r->printer_name) {
5301 ndr_print_string(ndr, "printer_name", r->printer_name);
5303 ndr->depth--;
5304 ndr_print_ptr(ndr, "server_name", r->server_name);
5305 ndr->depth++;
5306 if (r->server_name) {
5307 ndr_print_string(ndr, "server_name", r->server_name);
5309 ndr->depth--;
5310 ndr_print_ptr(ndr, "user_name", r->user_name);
5311 ndr->depth++;
5312 if (r->user_name) {
5313 ndr_print_string(ndr, "user_name", r->user_name);
5315 ndr->depth--;
5316 ndr_print_ptr(ndr, "document_name", r->document_name);
5317 ndr->depth++;
5318 if (r->document_name) {
5319 ndr_print_string(ndr, "document_name", r->document_name);
5321 ndr->depth--;
5322 ndr_print_ptr(ndr, "data_type", r->data_type);
5323 ndr->depth++;
5324 if (r->data_type) {
5325 ndr_print_string(ndr, "data_type", r->data_type);
5327 ndr->depth--;
5328 ndr_print_ptr(ndr, "text_status", r->text_status);
5329 ndr->depth++;
5330 if (r->text_status) {
5331 ndr_print_string(ndr, "text_status", r->text_status);
5333 ndr->depth--;
5334 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5335 ndr_print_uint32(ndr, "priority", r->priority);
5336 ndr_print_uint32(ndr, "position", r->position);
5337 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5338 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5339 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5340 ndr->depth--;
5343 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
5345 if (ndr_flags & NDR_SCALARS) {
5346 NDR_CHECK(ndr_push_align(ndr, 5));
5347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5348 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5349 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5350 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5351 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5352 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5353 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5354 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5355 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5356 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5358 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5360 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5367 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5370 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5372 if (ndr_flags & NDR_BUFFERS) {
5373 if (r->printer_name) {
5374 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5375 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5376 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5377 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5379 if (r->server_name) {
5380 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5381 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5382 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5383 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5385 if (r->user_name) {
5386 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5387 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5388 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5389 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5391 if (r->document_name) {
5392 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5393 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5394 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5395 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5397 if (r->notify_name) {
5398 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5399 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5400 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5401 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5403 if (r->data_type) {
5404 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5405 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5406 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5407 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5409 if (r->print_processor) {
5410 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5411 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5412 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5413 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5415 if (r->parameters) {
5416 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5417 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5418 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5419 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5421 if (r->driver_name) {
5422 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5423 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5424 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5425 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5427 if (r->text_status) {
5428 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5429 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5430 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5431 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5434 return NDR_ERR_SUCCESS;
5437 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
5439 uint32_t _ptr_printer_name;
5440 TALLOC_CTX *_mem_save_printer_name_0;
5441 uint32_t _ptr_server_name;
5442 TALLOC_CTX *_mem_save_server_name_0;
5443 uint32_t _ptr_user_name;
5444 TALLOC_CTX *_mem_save_user_name_0;
5445 uint32_t _ptr_document_name;
5446 TALLOC_CTX *_mem_save_document_name_0;
5447 uint32_t _ptr_notify_name;
5448 TALLOC_CTX *_mem_save_notify_name_0;
5449 uint32_t _ptr_data_type;
5450 TALLOC_CTX *_mem_save_data_type_0;
5451 uint32_t _ptr_print_processor;
5452 TALLOC_CTX *_mem_save_print_processor_0;
5453 uint32_t _ptr_parameters;
5454 TALLOC_CTX *_mem_save_parameters_0;
5455 uint32_t _ptr_driver_name;
5456 TALLOC_CTX *_mem_save_driver_name_0;
5457 uint32_t _ptr_text_status;
5458 TALLOC_CTX *_mem_save_text_status_0;
5459 if (ndr_flags & NDR_SCALARS) {
5460 NDR_CHECK(ndr_pull_align(ndr, 5));
5461 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5462 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5463 if (_ptr_printer_name) {
5464 NDR_PULL_ALLOC(ndr, r->printer_name);
5465 } else {
5466 r->printer_name = NULL;
5468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5469 if (_ptr_server_name) {
5470 NDR_PULL_ALLOC(ndr, r->server_name);
5471 } else {
5472 r->server_name = NULL;
5474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5475 if (_ptr_user_name) {
5476 NDR_PULL_ALLOC(ndr, r->user_name);
5477 } else {
5478 r->user_name = NULL;
5480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5481 if (_ptr_document_name) {
5482 NDR_PULL_ALLOC(ndr, r->document_name);
5483 } else {
5484 r->document_name = NULL;
5486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5487 if (_ptr_notify_name) {
5488 NDR_PULL_ALLOC(ndr, r->notify_name);
5489 } else {
5490 r->notify_name = NULL;
5492 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5493 if (_ptr_data_type) {
5494 NDR_PULL_ALLOC(ndr, r->data_type);
5495 } else {
5496 r->data_type = NULL;
5498 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5499 if (_ptr_print_processor) {
5500 NDR_PULL_ALLOC(ndr, r->print_processor);
5501 } else {
5502 r->print_processor = NULL;
5504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5505 if (_ptr_parameters) {
5506 NDR_PULL_ALLOC(ndr, r->parameters);
5507 } else {
5508 r->parameters = NULL;
5510 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5511 if (_ptr_driver_name) {
5512 NDR_PULL_ALLOC(ndr, r->driver_name);
5513 } else {
5514 r->driver_name = NULL;
5516 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5517 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5518 if (_ptr_text_status) {
5519 NDR_PULL_ALLOC(ndr, r->text_status);
5520 } else {
5521 r->text_status = NULL;
5523 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5524 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5525 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5526 if (r->priority > 99) {
5527 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5530 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5531 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5534 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5535 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5536 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5537 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5539 if (ndr_flags & NDR_BUFFERS) {
5540 if (r->printer_name) {
5541 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5542 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5543 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5544 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5545 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5546 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));
5548 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5549 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5552 if (r->server_name) {
5553 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5554 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5555 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5556 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5557 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5558 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));
5560 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5561 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5564 if (r->user_name) {
5565 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5566 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5567 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5568 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5569 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5570 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));
5572 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5573 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5576 if (r->document_name) {
5577 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5578 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5579 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5580 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5581 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5582 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));
5584 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5585 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5588 if (r->notify_name) {
5589 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5590 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5591 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5592 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5593 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5594 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));
5596 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5597 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5600 if (r->data_type) {
5601 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5602 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5603 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5604 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5605 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5606 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));
5608 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5609 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5612 if (r->print_processor) {
5613 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5614 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5615 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5616 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5617 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5618 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));
5620 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5621 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5624 if (r->parameters) {
5625 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5626 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5627 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5628 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5629 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5630 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));
5632 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5633 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5636 if (r->driver_name) {
5637 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5638 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5639 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5640 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5641 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5642 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));
5644 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5645 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5646 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5648 if (r->text_status) {
5649 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5650 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5651 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5652 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5653 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5654 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));
5656 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5657 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5658 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5661 return NDR_ERR_SUCCESS;
5664 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
5666 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
5667 ndr->depth++;
5668 ndr_print_uint32(ndr, "job_id", r->job_id);
5669 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5670 ndr->depth++;
5671 if (r->printer_name) {
5672 ndr_print_string(ndr, "printer_name", r->printer_name);
5674 ndr->depth--;
5675 ndr_print_ptr(ndr, "server_name", r->server_name);
5676 ndr->depth++;
5677 if (r->server_name) {
5678 ndr_print_string(ndr, "server_name", r->server_name);
5680 ndr->depth--;
5681 ndr_print_ptr(ndr, "user_name", r->user_name);
5682 ndr->depth++;
5683 if (r->user_name) {
5684 ndr_print_string(ndr, "user_name", r->user_name);
5686 ndr->depth--;
5687 ndr_print_ptr(ndr, "document_name", r->document_name);
5688 ndr->depth++;
5689 if (r->document_name) {
5690 ndr_print_string(ndr, "document_name", r->document_name);
5692 ndr->depth--;
5693 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5694 ndr->depth++;
5695 if (r->notify_name) {
5696 ndr_print_string(ndr, "notify_name", r->notify_name);
5698 ndr->depth--;
5699 ndr_print_ptr(ndr, "data_type", r->data_type);
5700 ndr->depth++;
5701 if (r->data_type) {
5702 ndr_print_string(ndr, "data_type", r->data_type);
5704 ndr->depth--;
5705 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5706 ndr->depth++;
5707 if (r->print_processor) {
5708 ndr_print_string(ndr, "print_processor", r->print_processor);
5710 ndr->depth--;
5711 ndr_print_ptr(ndr, "parameters", r->parameters);
5712 ndr->depth++;
5713 if (r->parameters) {
5714 ndr_print_string(ndr, "parameters", r->parameters);
5716 ndr->depth--;
5717 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5718 ndr->depth++;
5719 if (r->driver_name) {
5720 ndr_print_string(ndr, "driver_name", r->driver_name);
5722 ndr->depth--;
5723 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5724 ndr_print_ptr(ndr, "text_status", r->text_status);
5725 ndr->depth++;
5726 if (r->text_status) {
5727 ndr_print_string(ndr, "text_status", r->text_status);
5729 ndr->depth--;
5730 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5731 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5732 ndr_print_uint32(ndr, "priority", r->priority);
5733 ndr_print_uint32(ndr, "position", r->position);
5734 ndr_print_uint32(ndr, "start_time", r->start_time);
5735 ndr_print_uint32(ndr, "until_time", r->until_time);
5736 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5737 ndr_print_uint32(ndr, "size", r->size);
5738 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5739 ndr_print_uint32(ndr, "time", r->time);
5740 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5741 ndr->depth--;
5744 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
5746 if (ndr_flags & NDR_SCALARS) {
5747 NDR_CHECK(ndr_push_align(ndr, 5));
5748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5749 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5750 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5751 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5752 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5753 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5754 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5755 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5756 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5757 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5759 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5761 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5768 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5772 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5774 if (ndr_flags & NDR_BUFFERS) {
5775 if (r->printer_name) {
5776 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5778 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5779 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5781 if (r->server_name) {
5782 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5783 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5784 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5785 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5787 if (r->user_name) {
5788 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5789 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5790 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5791 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5793 if (r->document_name) {
5794 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5795 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5796 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5797 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5799 if (r->notify_name) {
5800 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5801 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5802 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5803 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5805 if (r->data_type) {
5806 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5807 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5808 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5809 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5811 if (r->print_processor) {
5812 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5813 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5815 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5817 if (r->parameters) {
5818 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5819 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5820 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5821 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5823 if (r->driver_name) {
5824 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5825 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5826 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5827 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5829 if (r->text_status) {
5830 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5831 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5833 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5836 return NDR_ERR_SUCCESS;
5839 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5841 uint32_t _ptr_printer_name;
5842 TALLOC_CTX *_mem_save_printer_name_0;
5843 uint32_t _ptr_server_name;
5844 TALLOC_CTX *_mem_save_server_name_0;
5845 uint32_t _ptr_user_name;
5846 TALLOC_CTX *_mem_save_user_name_0;
5847 uint32_t _ptr_document_name;
5848 TALLOC_CTX *_mem_save_document_name_0;
5849 uint32_t _ptr_notify_name;
5850 TALLOC_CTX *_mem_save_notify_name_0;
5851 uint32_t _ptr_data_type;
5852 TALLOC_CTX *_mem_save_data_type_0;
5853 uint32_t _ptr_print_processor;
5854 TALLOC_CTX *_mem_save_print_processor_0;
5855 uint32_t _ptr_parameters;
5856 TALLOC_CTX *_mem_save_parameters_0;
5857 uint32_t _ptr_driver_name;
5858 TALLOC_CTX *_mem_save_driver_name_0;
5859 uint32_t _ptr_text_status;
5860 TALLOC_CTX *_mem_save_text_status_0;
5861 if (ndr_flags & NDR_SCALARS) {
5862 NDR_CHECK(ndr_pull_align(ndr, 5));
5863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5865 if (_ptr_printer_name) {
5866 NDR_PULL_ALLOC(ndr, r->printer_name);
5867 } else {
5868 r->printer_name = NULL;
5870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5871 if (_ptr_server_name) {
5872 NDR_PULL_ALLOC(ndr, r->server_name);
5873 } else {
5874 r->server_name = NULL;
5876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5877 if (_ptr_user_name) {
5878 NDR_PULL_ALLOC(ndr, r->user_name);
5879 } else {
5880 r->user_name = NULL;
5882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5883 if (_ptr_document_name) {
5884 NDR_PULL_ALLOC(ndr, r->document_name);
5885 } else {
5886 r->document_name = NULL;
5888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5889 if (_ptr_notify_name) {
5890 NDR_PULL_ALLOC(ndr, r->notify_name);
5891 } else {
5892 r->notify_name = NULL;
5894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5895 if (_ptr_data_type) {
5896 NDR_PULL_ALLOC(ndr, r->data_type);
5897 } else {
5898 r->data_type = NULL;
5900 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5901 if (_ptr_print_processor) {
5902 NDR_PULL_ALLOC(ndr, r->print_processor);
5903 } else {
5904 r->print_processor = NULL;
5906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5907 if (_ptr_parameters) {
5908 NDR_PULL_ALLOC(ndr, r->parameters);
5909 } else {
5910 r->parameters = NULL;
5912 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5913 if (_ptr_driver_name) {
5914 NDR_PULL_ALLOC(ndr, r->driver_name);
5915 } else {
5916 r->driver_name = NULL;
5918 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5920 if (_ptr_text_status) {
5921 NDR_PULL_ALLOC(ndr, r->text_status);
5922 } else {
5923 r->text_status = NULL;
5925 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5926 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5927 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5928 if (r->priority > 99) {
5929 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5931 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5936 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5937 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5938 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5940 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5942 if (ndr_flags & NDR_BUFFERS) {
5943 if (r->printer_name) {
5944 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5945 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5946 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5947 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5948 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5949 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));
5951 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5952 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5955 if (r->server_name) {
5956 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5957 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5958 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5959 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5960 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5961 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));
5963 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5964 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5965 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5967 if (r->user_name) {
5968 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5969 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5970 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5971 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5972 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5973 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));
5975 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5976 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5979 if (r->document_name) {
5980 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5981 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5982 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5983 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5984 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5985 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));
5987 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5988 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5991 if (r->notify_name) {
5992 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5993 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5994 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5995 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5996 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5997 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));
5999 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
6000 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
6001 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
6003 if (r->data_type) {
6004 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
6005 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
6006 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
6007 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
6008 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
6009 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));
6011 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
6012 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
6013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
6015 if (r->print_processor) {
6016 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6017 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6018 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6019 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6020 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
6021 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));
6023 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
6024 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
6025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6027 if (r->parameters) {
6028 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6029 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6030 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6031 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6032 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6033 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));
6035 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6036 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6037 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6039 if (r->driver_name) {
6040 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6041 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6042 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6043 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6044 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
6045 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));
6047 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
6048 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
6049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6051 if (r->text_status) {
6052 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
6053 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
6054 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
6055 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
6056 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
6057 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));
6059 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
6060 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
6061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
6064 return NDR_ERR_SUCCESS;
6067 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
6069 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
6070 ndr->depth++;
6071 ndr_print_uint32(ndr, "job_id", r->job_id);
6072 ndr_print_ptr(ndr, "printer_name", r->printer_name);
6073 ndr->depth++;
6074 if (r->printer_name) {
6075 ndr_print_string(ndr, "printer_name", r->printer_name);
6077 ndr->depth--;
6078 ndr_print_ptr(ndr, "server_name", r->server_name);
6079 ndr->depth++;
6080 if (r->server_name) {
6081 ndr_print_string(ndr, "server_name", r->server_name);
6083 ndr->depth--;
6084 ndr_print_ptr(ndr, "user_name", r->user_name);
6085 ndr->depth++;
6086 if (r->user_name) {
6087 ndr_print_string(ndr, "user_name", r->user_name);
6089 ndr->depth--;
6090 ndr_print_ptr(ndr, "document_name", r->document_name);
6091 ndr->depth++;
6092 if (r->document_name) {
6093 ndr_print_string(ndr, "document_name", r->document_name);
6095 ndr->depth--;
6096 ndr_print_ptr(ndr, "notify_name", r->notify_name);
6097 ndr->depth++;
6098 if (r->notify_name) {
6099 ndr_print_string(ndr, "notify_name", r->notify_name);
6101 ndr->depth--;
6102 ndr_print_ptr(ndr, "data_type", r->data_type);
6103 ndr->depth++;
6104 if (r->data_type) {
6105 ndr_print_string(ndr, "data_type", r->data_type);
6107 ndr->depth--;
6108 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6109 ndr->depth++;
6110 if (r->print_processor) {
6111 ndr_print_string(ndr, "print_processor", r->print_processor);
6113 ndr->depth--;
6114 ndr_print_ptr(ndr, "parameters", r->parameters);
6115 ndr->depth++;
6116 if (r->parameters) {
6117 ndr_print_string(ndr, "parameters", r->parameters);
6119 ndr->depth--;
6120 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6121 ndr->depth++;
6122 if (r->driver_name) {
6123 ndr_print_string(ndr, "driver_name", r->driver_name);
6125 ndr->depth--;
6126 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
6127 ndr_print_ptr(ndr, "text_status", r->text_status);
6128 ndr->depth++;
6129 if (r->text_status) {
6130 ndr_print_string(ndr, "text_status", r->text_status);
6132 ndr->depth--;
6133 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
6134 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
6135 ndr_print_uint32(ndr, "priority", r->priority);
6136 ndr_print_uint32(ndr, "position", r->position);
6137 ndr_print_uint32(ndr, "start_time", r->start_time);
6138 ndr_print_uint32(ndr, "until_time", r->until_time);
6139 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6140 ndr_print_uint32(ndr, "size", r->size);
6141 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
6142 ndr_print_uint32(ndr, "time", r->time);
6143 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
6144 ndr_print_uint32(ndr, "size_high", r->size_high);
6145 ndr->depth--;
6148 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
6150 if (ndr_flags & NDR_SCALARS) {
6151 int level = ndr_push_get_switch_value(ndr, r);
6152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6153 NDR_CHECK(ndr_push_union_align(ndr, 5));
6154 switch (level) {
6155 case 1: {
6156 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6157 break; }
6159 case 2: {
6160 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6161 break; }
6163 case 3: {
6164 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6165 break; }
6167 case 4: {
6168 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6169 break; }
6171 default: {
6172 break; }
6176 if (ndr_flags & NDR_BUFFERS) {
6177 int level = ndr_push_get_switch_value(ndr, r);
6178 switch (level) {
6179 case 1:
6180 if (r->info1) {
6181 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6183 break;
6185 case 2:
6186 if (r->info2) {
6187 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6189 break;
6191 case 3:
6192 if (r->info3) {
6193 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6195 break;
6197 case 4:
6198 if (r->info4) {
6199 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6201 break;
6203 default:
6204 break;
6208 return NDR_ERR_SUCCESS;
6211 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
6213 int level;
6214 uint32_t _level;
6215 TALLOC_CTX *_mem_save_info1_0;
6216 TALLOC_CTX *_mem_save_info2_0;
6217 TALLOC_CTX *_mem_save_info3_0;
6218 TALLOC_CTX *_mem_save_info4_0;
6219 level = ndr_pull_get_switch_value(ndr, r);
6220 if (ndr_flags & NDR_SCALARS) {
6221 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6222 if (_level != level) {
6223 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6225 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6226 switch (level) {
6227 case 1: {
6228 uint32_t _ptr_info1;
6229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6230 if (_ptr_info1) {
6231 NDR_PULL_ALLOC(ndr, r->info1);
6232 } else {
6233 r->info1 = NULL;
6235 break; }
6237 case 2: {
6238 uint32_t _ptr_info2;
6239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6240 if (_ptr_info2) {
6241 NDR_PULL_ALLOC(ndr, r->info2);
6242 } else {
6243 r->info2 = NULL;
6245 break; }
6247 case 3: {
6248 uint32_t _ptr_info3;
6249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6250 if (_ptr_info3) {
6251 NDR_PULL_ALLOC(ndr, r->info3);
6252 } else {
6253 r->info3 = NULL;
6255 break; }
6257 case 4: {
6258 uint32_t _ptr_info4;
6259 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6260 if (_ptr_info4) {
6261 NDR_PULL_ALLOC(ndr, r->info4);
6262 } else {
6263 r->info4 = NULL;
6265 break; }
6267 default: {
6268 break; }
6272 if (ndr_flags & NDR_BUFFERS) {
6273 switch (level) {
6274 case 1:
6275 if (r->info1) {
6276 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6277 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6278 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6281 break;
6283 case 2:
6284 if (r->info2) {
6285 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6286 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
6287 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
6290 break;
6292 case 3:
6293 if (r->info3) {
6294 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6295 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
6296 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
6299 break;
6301 case 4:
6302 if (r->info4) {
6303 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6304 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6305 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6308 break;
6310 default:
6311 break;
6315 return NDR_ERR_SUCCESS;
6318 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
6320 int level;
6321 level = ndr_print_get_switch_value(ndr, r);
6322 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
6323 switch (level) {
6324 case 1:
6325 ndr_print_ptr(ndr, "info1", r->info1);
6326 ndr->depth++;
6327 if (r->info1) {
6328 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
6330 ndr->depth--;
6331 break;
6333 case 2:
6334 ndr_print_ptr(ndr, "info2", r->info2);
6335 ndr->depth++;
6336 if (r->info2) {
6337 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
6339 ndr->depth--;
6340 break;
6342 case 3:
6343 ndr_print_ptr(ndr, "info3", r->info3);
6344 ndr->depth++;
6345 if (r->info3) {
6346 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
6348 ndr->depth--;
6349 break;
6351 case 4:
6352 ndr_print_ptr(ndr, "info4", r->info4);
6353 ndr->depth++;
6354 if (r->info4) {
6355 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
6357 ndr->depth--;
6358 break;
6360 default:
6361 break;
6366 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
6368 if (ndr_flags & NDR_SCALARS) {
6369 NDR_CHECK(ndr_push_align(ndr, 5));
6370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
6371 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
6372 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6373 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6375 if (ndr_flags & NDR_BUFFERS) {
6376 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6378 return NDR_ERR_SUCCESS;
6381 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
6383 if (ndr_flags & NDR_SCALARS) {
6384 NDR_CHECK(ndr_pull_align(ndr, 5));
6385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
6386 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
6387 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6388 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6390 if (ndr_flags & NDR_BUFFERS) {
6391 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6393 return NDR_ERR_SUCCESS;
6396 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
6398 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
6399 ndr->depth++;
6400 ndr_print_uint32(ndr, "level", r->level);
6401 ndr_print_set_switch_value(ndr, &r->info, r->level);
6402 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
6403 ndr->depth--;
6406 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
6408 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6409 return NDR_ERR_SUCCESS;
6412 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
6414 uint32_t v;
6415 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6416 *r = v;
6417 return NDR_ERR_SUCCESS;
6420 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
6422 const char *val = NULL;
6424 switch (r) {
6425 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6426 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
6427 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6428 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
6429 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
6430 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6431 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6432 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6433 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6435 ndr_print_enum(ndr, name, "ENUM", val, r);
6438 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
6440 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6441 return NDR_ERR_SUCCESS;
6444 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
6446 uint32_t v;
6447 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6448 *r = v;
6449 return NDR_ERR_SUCCESS;
6452 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
6454 const char *val = NULL;
6456 switch (r) {
6457 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6458 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6459 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6460 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6461 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6463 ndr_print_enum(ndr, name, "ENUM", val, r);
6466 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
6468 if (ndr_flags & NDR_SCALARS) {
6469 NDR_CHECK(ndr_push_align(ndr, 5));
6470 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6471 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6473 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
6474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
6475 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
6477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
6479 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
6480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
6481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
6482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
6483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
6484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
6485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
6486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
6487 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
6488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
6489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
6490 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
6491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
6492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
6493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
6494 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
6495 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
6496 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
6497 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
6498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
6499 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6501 if (ndr_flags & NDR_BUFFERS) {
6502 if (r->servername) {
6503 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6504 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6505 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6506 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6508 if (r->printername) {
6509 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6510 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6511 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6512 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6515 return NDR_ERR_SUCCESS;
6518 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
6520 uint32_t _ptr_servername;
6521 TALLOC_CTX *_mem_save_servername_0;
6522 uint32_t _ptr_printername;
6523 TALLOC_CTX *_mem_save_printername_0;
6524 if (ndr_flags & NDR_SCALARS) {
6525 NDR_CHECK(ndr_pull_align(ndr, 5));
6526 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6527 if (_ptr_servername) {
6528 NDR_PULL_ALLOC(ndr, r->servername);
6529 } else {
6530 r->servername = NULL;
6532 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6533 if (_ptr_printername) {
6534 NDR_PULL_ALLOC(ndr, r->printername);
6535 } else {
6536 r->printername = NULL;
6538 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6539 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
6540 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
6541 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
6543 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6544 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
6545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
6546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
6547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
6548 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
6549 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
6550 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
6551 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
6552 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
6553 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
6554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
6555 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
6556 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
6557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
6558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
6559 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
6560 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
6561 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
6562 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
6563 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
6564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
6565 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6567 if (ndr_flags & NDR_BUFFERS) {
6568 if (r->servername) {
6569 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6570 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6571 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6572 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6573 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6574 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));
6576 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6577 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6580 if (r->printername) {
6581 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6582 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6583 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6584 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6585 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6586 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));
6588 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6589 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6593 return NDR_ERR_SUCCESS;
6596 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
6598 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
6599 ndr->depth++;
6600 ndr_print_ptr(ndr, "servername", r->servername);
6601 ndr->depth++;
6602 if (r->servername) {
6603 ndr_print_string(ndr, "servername", r->servername);
6605 ndr->depth--;
6606 ndr_print_ptr(ndr, "printername", r->printername);
6607 ndr->depth++;
6608 if (r->printername) {
6609 ndr_print_string(ndr, "printername", r->printername);
6611 ndr->depth--;
6612 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6613 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
6614 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
6615 ndr_print_spoolss_Time(ndr, "time", &r->time);
6616 ndr_print_uint32(ndr, "global_counter", r->global_counter);
6617 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6618 ndr_print_uint32(ndr, "version", r->version);
6619 ndr_print_uint32(ndr, "free_build", r->free_build);
6620 ndr_print_uint32(ndr, "spooling", r->spooling);
6621 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
6622 ndr_print_uint32(ndr, "session_counter", r->session_counter);
6623 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
6624 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
6625 ndr_print_uint32(ndr, "job_error", r->job_error);
6626 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
6627 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
6628 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
6629 ndr_print_uint32(ndr, "change_id", r->change_id);
6630 ndr_print_WERROR(ndr, "last_error", r->last_error);
6631 ndr_print_uint32(ndr, "status", r->status);
6632 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
6633 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
6634 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
6635 ndr_print_uint16(ndr, "processor_level", r->processor_level);
6636 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
6637 ndr_print_uint32(ndr, "reserved2", r->reserved2);
6638 ndr_print_uint32(ndr, "reserved3", r->reserved3);
6639 ndr->depth--;
6642 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
6644 if (ndr_flags & NDR_SCALARS) {
6645 NDR_CHECK(ndr_push_align(ndr, 5));
6646 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
6647 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
6648 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
6649 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6650 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6652 if (ndr_flags & NDR_BUFFERS) {
6653 if (r->description) {
6654 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6655 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6656 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6657 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6659 if (r->name) {
6660 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6661 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6662 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6663 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6665 if (r->comment) {
6666 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6668 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6669 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6672 return NDR_ERR_SUCCESS;
6675 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
6677 uint32_t _ptr_description;
6678 TALLOC_CTX *_mem_save_description_0;
6679 uint32_t _ptr_name;
6680 TALLOC_CTX *_mem_save_name_0;
6681 uint32_t _ptr_comment;
6682 TALLOC_CTX *_mem_save_comment_0;
6683 if (ndr_flags & NDR_SCALARS) {
6684 NDR_CHECK(ndr_pull_align(ndr, 5));
6685 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
6686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
6687 if (_ptr_description) {
6688 NDR_PULL_ALLOC(ndr, r->description);
6689 } else {
6690 r->description = NULL;
6692 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
6693 if (_ptr_name) {
6694 NDR_PULL_ALLOC(ndr, r->name);
6695 } else {
6696 r->name = NULL;
6698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6699 if (_ptr_comment) {
6700 NDR_PULL_ALLOC(ndr, r->comment);
6701 } else {
6702 r->comment = NULL;
6704 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6706 if (ndr_flags & NDR_BUFFERS) {
6707 if (r->description) {
6708 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6709 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6710 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6711 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6712 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
6713 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));
6715 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
6716 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
6717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6719 if (r->name) {
6720 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6721 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6722 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6723 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6724 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
6725 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));
6727 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
6728 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
6729 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6731 if (r->comment) {
6732 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6733 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6734 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6735 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6736 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6737 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));
6739 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6740 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6744 return NDR_ERR_SUCCESS;
6747 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
6749 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
6750 ndr->depth++;
6751 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
6752 ndr_print_ptr(ndr, "description", r->description);
6753 ndr->depth++;
6754 if (r->description) {
6755 ndr_print_string(ndr, "description", r->description);
6757 ndr->depth--;
6758 ndr_print_ptr(ndr, "name", r->name);
6759 ndr->depth++;
6760 if (r->name) {
6761 ndr_print_string(ndr, "name", r->name);
6763 ndr->depth--;
6764 ndr_print_ptr(ndr, "comment", r->comment);
6765 ndr->depth++;
6766 if (r->comment) {
6767 ndr_print_string(ndr, "comment", r->comment);
6769 ndr->depth--;
6770 ndr->depth--;
6773 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
6775 if (ndr_flags & NDR_SCALARS) {
6776 NDR_CHECK(ndr_push_align(ndr, 5));
6777 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6778 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6779 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6780 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6781 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6782 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6783 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6784 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
6785 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6786 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6787 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6788 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6789 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
6790 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6795 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6798 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6800 if (ndr_flags & NDR_BUFFERS) {
6801 if (r->servername) {
6802 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6803 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6804 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6805 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6807 if (r->printername) {
6808 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6809 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6810 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6811 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6813 if (r->sharename) {
6814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6815 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6816 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6817 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6819 if (r->portname) {
6820 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6821 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6822 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6823 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6825 if (r->drivername) {
6826 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6827 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6828 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6829 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6831 if (r->comment) {
6832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6833 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6834 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6835 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6837 if (r->location) {
6838 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6839 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6840 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6841 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6843 if (r->devmode) {
6845 struct ndr_push *_ndr_devmode;
6846 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6847 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6848 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
6851 if (r->sepfile) {
6852 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6853 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6854 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6855 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6857 if (r->printprocessor) {
6858 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6859 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6860 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6861 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6863 if (r->datatype) {
6864 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6865 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6866 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6867 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6869 if (r->parameters) {
6870 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6871 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6872 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6873 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6875 if (r->secdesc) {
6877 struct ndr_push *_ndr_secdesc;
6878 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6879 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6880 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6884 return NDR_ERR_SUCCESS;
6887 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6889 uint32_t _ptr_servername;
6890 TALLOC_CTX *_mem_save_servername_0;
6891 uint32_t _ptr_printername;
6892 TALLOC_CTX *_mem_save_printername_0;
6893 uint32_t _ptr_sharename;
6894 TALLOC_CTX *_mem_save_sharename_0;
6895 uint32_t _ptr_portname;
6896 TALLOC_CTX *_mem_save_portname_0;
6897 uint32_t _ptr_drivername;
6898 TALLOC_CTX *_mem_save_drivername_0;
6899 uint32_t _ptr_comment;
6900 TALLOC_CTX *_mem_save_comment_0;
6901 uint32_t _ptr_location;
6902 TALLOC_CTX *_mem_save_location_0;
6903 uint32_t _ptr_devmode;
6904 TALLOC_CTX *_mem_save_devmode_0;
6905 uint32_t _ptr_sepfile;
6906 TALLOC_CTX *_mem_save_sepfile_0;
6907 uint32_t _ptr_printprocessor;
6908 TALLOC_CTX *_mem_save_printprocessor_0;
6909 uint32_t _ptr_datatype;
6910 TALLOC_CTX *_mem_save_datatype_0;
6911 uint32_t _ptr_parameters;
6912 TALLOC_CTX *_mem_save_parameters_0;
6913 uint32_t _ptr_secdesc;
6914 TALLOC_CTX *_mem_save_secdesc_0;
6915 if (ndr_flags & NDR_SCALARS) {
6916 NDR_CHECK(ndr_pull_align(ndr, 5));
6917 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6918 if (_ptr_servername) {
6919 NDR_PULL_ALLOC(ndr, r->servername);
6920 } else {
6921 r->servername = NULL;
6923 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6924 if (_ptr_printername) {
6925 NDR_PULL_ALLOC(ndr, r->printername);
6926 } else {
6927 r->printername = NULL;
6929 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6930 if (_ptr_sharename) {
6931 NDR_PULL_ALLOC(ndr, r->sharename);
6932 } else {
6933 r->sharename = NULL;
6935 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6936 if (_ptr_portname) {
6937 NDR_PULL_ALLOC(ndr, r->portname);
6938 } else {
6939 r->portname = NULL;
6941 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6942 if (_ptr_drivername) {
6943 NDR_PULL_ALLOC(ndr, r->drivername);
6944 } else {
6945 r->drivername = NULL;
6947 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6948 if (_ptr_comment) {
6949 NDR_PULL_ALLOC(ndr, r->comment);
6950 } else {
6951 r->comment = NULL;
6953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6954 if (_ptr_location) {
6955 NDR_PULL_ALLOC(ndr, r->location);
6956 } else {
6957 r->location = NULL;
6959 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
6960 if (_ptr_devmode) {
6961 NDR_PULL_ALLOC(ndr, r->devmode);
6962 } else {
6963 r->devmode = NULL;
6965 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6966 if (_ptr_sepfile) {
6967 NDR_PULL_ALLOC(ndr, r->sepfile);
6968 } else {
6969 r->sepfile = NULL;
6971 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6972 if (_ptr_printprocessor) {
6973 NDR_PULL_ALLOC(ndr, r->printprocessor);
6974 } else {
6975 r->printprocessor = NULL;
6977 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6978 if (_ptr_datatype) {
6979 NDR_PULL_ALLOC(ndr, r->datatype);
6980 } else {
6981 r->datatype = NULL;
6983 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6984 if (_ptr_parameters) {
6985 NDR_PULL_ALLOC(ndr, r->parameters);
6986 } else {
6987 r->parameters = NULL;
6989 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
6990 if (_ptr_secdesc) {
6991 NDR_PULL_ALLOC(ndr, r->secdesc);
6992 } else {
6993 r->secdesc = NULL;
6995 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6996 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6997 if (r->priority > 99) {
6998 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7000 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
7001 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
7002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
7003 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7004 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
7005 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
7006 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7008 if (ndr_flags & NDR_BUFFERS) {
7009 if (r->servername) {
7010 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7011 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7012 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7013 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7014 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7015 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));
7017 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7018 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7021 if (r->printername) {
7022 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7023 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7024 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7025 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7026 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7027 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));
7029 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7030 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7033 if (r->sharename) {
7034 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7035 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
7036 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
7037 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
7038 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
7039 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));
7041 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
7042 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
7043 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
7045 if (r->portname) {
7046 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7047 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7048 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7049 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7050 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7051 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));
7053 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7054 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7055 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7057 if (r->drivername) {
7058 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7059 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
7060 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
7061 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
7062 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
7063 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));
7065 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
7066 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
7067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
7069 if (r->comment) {
7070 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
7071 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
7072 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
7073 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
7074 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
7075 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));
7077 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
7078 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
7079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
7081 if (r->location) {
7082 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
7083 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
7084 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
7085 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
7086 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
7087 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));
7089 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
7090 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
7091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
7093 if (r->devmode) {
7094 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
7095 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
7097 struct ndr_pull *_ndr_devmode;
7098 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
7099 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
7100 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
7102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
7104 if (r->sepfile) {
7105 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
7106 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
7107 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
7108 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
7109 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
7110 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));
7112 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
7113 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
7114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
7116 if (r->printprocessor) {
7117 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
7118 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
7119 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
7120 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
7121 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
7122 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));
7124 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
7125 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
7126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
7128 if (r->datatype) {
7129 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7130 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
7131 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
7132 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
7133 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
7134 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));
7136 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
7137 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
7138 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
7140 if (r->parameters) {
7141 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
7142 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
7143 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
7144 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
7145 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
7146 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));
7148 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
7149 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
7150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
7152 if (r->secdesc) {
7153 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
7154 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
7156 struct ndr_pull *_ndr_secdesc;
7157 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
7158 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
7159 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
7161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
7164 return NDR_ERR_SUCCESS;
7167 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
7169 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
7170 ndr->depth++;
7171 ndr_print_ptr(ndr, "servername", r->servername);
7172 ndr->depth++;
7173 if (r->servername) {
7174 ndr_print_string(ndr, "servername", r->servername);
7176 ndr->depth--;
7177 ndr_print_ptr(ndr, "printername", r->printername);
7178 ndr->depth++;
7179 if (r->printername) {
7180 ndr_print_string(ndr, "printername", r->printername);
7182 ndr->depth--;
7183 ndr_print_ptr(ndr, "sharename", r->sharename);
7184 ndr->depth++;
7185 if (r->sharename) {
7186 ndr_print_string(ndr, "sharename", r->sharename);
7188 ndr->depth--;
7189 ndr_print_ptr(ndr, "portname", r->portname);
7190 ndr->depth++;
7191 if (r->portname) {
7192 ndr_print_string(ndr, "portname", r->portname);
7194 ndr->depth--;
7195 ndr_print_ptr(ndr, "drivername", r->drivername);
7196 ndr->depth++;
7197 if (r->drivername) {
7198 ndr_print_string(ndr, "drivername", r->drivername);
7200 ndr->depth--;
7201 ndr_print_ptr(ndr, "comment", r->comment);
7202 ndr->depth++;
7203 if (r->comment) {
7204 ndr_print_string(ndr, "comment", r->comment);
7206 ndr->depth--;
7207 ndr_print_ptr(ndr, "location", r->location);
7208 ndr->depth++;
7209 if (r->location) {
7210 ndr_print_string(ndr, "location", r->location);
7212 ndr->depth--;
7213 ndr_print_ptr(ndr, "devmode", r->devmode);
7214 ndr->depth++;
7215 if (r->devmode) {
7216 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
7218 ndr->depth--;
7219 ndr_print_ptr(ndr, "sepfile", r->sepfile);
7220 ndr->depth++;
7221 if (r->sepfile) {
7222 ndr_print_string(ndr, "sepfile", r->sepfile);
7224 ndr->depth--;
7225 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
7226 ndr->depth++;
7227 if (r->printprocessor) {
7228 ndr_print_string(ndr, "printprocessor", r->printprocessor);
7230 ndr->depth--;
7231 ndr_print_ptr(ndr, "datatype", r->datatype);
7232 ndr->depth++;
7233 if (r->datatype) {
7234 ndr_print_string(ndr, "datatype", r->datatype);
7236 ndr->depth--;
7237 ndr_print_ptr(ndr, "parameters", r->parameters);
7238 ndr->depth++;
7239 if (r->parameters) {
7240 ndr_print_string(ndr, "parameters", r->parameters);
7242 ndr->depth--;
7243 ndr_print_ptr(ndr, "secdesc", r->secdesc);
7244 ndr->depth++;
7245 if (r->secdesc) {
7246 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
7248 ndr->depth--;
7249 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7250 ndr_print_uint32(ndr, "priority", r->priority);
7251 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
7252 ndr_print_uint32(ndr, "starttime", r->starttime);
7253 ndr_print_uint32(ndr, "untiltime", r->untiltime);
7254 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7255 ndr_print_uint32(ndr, "cjobs", r->cjobs);
7256 ndr_print_uint32(ndr, "averageppm", r->averageppm);
7257 ndr->depth--;
7260 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
7262 if (ndr_flags & NDR_SCALARS) {
7263 NDR_CHECK(ndr_push_align(ndr, 4));
7264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
7265 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7267 if (ndr_flags & NDR_BUFFERS) {
7269 return NDR_ERR_SUCCESS;
7272 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
7274 if (ndr_flags & NDR_SCALARS) {
7275 NDR_CHECK(ndr_pull_align(ndr, 4));
7276 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
7277 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7279 if (ndr_flags & NDR_BUFFERS) {
7281 return NDR_ERR_SUCCESS;
7284 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
7286 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
7287 ndr->depth++;
7288 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
7289 ndr->depth--;
7292 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
7294 if (ndr_flags & NDR_SCALARS) {
7295 NDR_CHECK(ndr_push_align(ndr, 5));
7296 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7297 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7298 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7299 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7301 if (ndr_flags & NDR_BUFFERS) {
7302 if (r->printername) {
7303 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7304 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7305 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7306 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7308 if (r->servername) {
7309 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7310 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7311 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7312 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7315 return NDR_ERR_SUCCESS;
7318 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
7320 uint32_t _ptr_printername;
7321 TALLOC_CTX *_mem_save_printername_0;
7322 uint32_t _ptr_servername;
7323 TALLOC_CTX *_mem_save_servername_0;
7324 if (ndr_flags & NDR_SCALARS) {
7325 NDR_CHECK(ndr_pull_align(ndr, 5));
7326 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7327 if (_ptr_printername) {
7328 NDR_PULL_ALLOC(ndr, r->printername);
7329 } else {
7330 r->printername = NULL;
7332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7333 if (_ptr_servername) {
7334 NDR_PULL_ALLOC(ndr, r->servername);
7335 } else {
7336 r->servername = NULL;
7338 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7339 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7341 if (ndr_flags & NDR_BUFFERS) {
7342 if (r->printername) {
7343 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7344 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7345 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7346 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7347 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7348 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));
7350 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7351 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7354 if (r->servername) {
7355 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7356 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7357 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7358 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7359 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7360 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));
7362 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7363 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7364 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7367 return NDR_ERR_SUCCESS;
7370 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
7372 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
7373 ndr->depth++;
7374 ndr_print_ptr(ndr, "printername", r->printername);
7375 ndr->depth++;
7376 if (r->printername) {
7377 ndr_print_string(ndr, "printername", r->printername);
7379 ndr->depth--;
7380 ndr_print_ptr(ndr, "servername", r->servername);
7381 ndr->depth++;
7382 if (r->servername) {
7383 ndr_print_string(ndr, "servername", r->servername);
7385 ndr->depth--;
7386 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7387 ndr->depth--;
7390 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
7392 if (ndr_flags & NDR_SCALARS) {
7393 NDR_CHECK(ndr_push_align(ndr, 5));
7394 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7395 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7396 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
7398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
7399 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7401 if (ndr_flags & NDR_BUFFERS) {
7402 if (r->printername) {
7403 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7404 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7405 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7406 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7408 if (r->portname) {
7409 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7410 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7411 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7412 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7415 return NDR_ERR_SUCCESS;
7418 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
7420 uint32_t _ptr_printername;
7421 TALLOC_CTX *_mem_save_printername_0;
7422 uint32_t _ptr_portname;
7423 TALLOC_CTX *_mem_save_portname_0;
7424 if (ndr_flags & NDR_SCALARS) {
7425 NDR_CHECK(ndr_pull_align(ndr, 5));
7426 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7427 if (_ptr_printername) {
7428 NDR_PULL_ALLOC(ndr, r->printername);
7429 } else {
7430 r->printername = NULL;
7432 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7433 if (_ptr_portname) {
7434 NDR_PULL_ALLOC(ndr, r->portname);
7435 } else {
7436 r->portname = NULL;
7438 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
7440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
7441 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7443 if (ndr_flags & NDR_BUFFERS) {
7444 if (r->printername) {
7445 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7446 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7447 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7448 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7449 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7450 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));
7452 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7453 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7454 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7456 if (r->portname) {
7457 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7458 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7459 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7460 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7461 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7462 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));
7464 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7465 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7469 return NDR_ERR_SUCCESS;
7472 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
7474 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
7475 ndr->depth++;
7476 ndr_print_ptr(ndr, "printername", r->printername);
7477 ndr->depth++;
7478 if (r->printername) {
7479 ndr_print_string(ndr, "printername", r->printername);
7481 ndr->depth--;
7482 ndr_print_ptr(ndr, "portname", r->portname);
7483 ndr->depth++;
7484 if (r->portname) {
7485 ndr_print_string(ndr, "portname", r->portname);
7487 ndr->depth--;
7488 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7489 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
7490 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
7491 ndr->depth--;
7494 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
7496 if (ndr_flags & NDR_SCALARS) {
7497 NDR_CHECK(ndr_push_align(ndr, 4));
7498 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7499 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7501 if (ndr_flags & NDR_BUFFERS) {
7503 return NDR_ERR_SUCCESS;
7506 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
7508 if (ndr_flags & NDR_SCALARS) {
7509 NDR_CHECK(ndr_pull_align(ndr, 4));
7510 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7511 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7513 if (ndr_flags & NDR_BUFFERS) {
7515 return NDR_ERR_SUCCESS;
7518 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
7520 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
7521 ndr->depth++;
7522 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7523 ndr->depth--;
7526 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
7528 if (ndr_flags & NDR_SCALARS) {
7529 NDR_CHECK(ndr_push_align(ndr, 5));
7530 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
7531 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
7532 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7534 if (ndr_flags & NDR_BUFFERS) {
7535 if (r->guid) {
7536 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7537 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7538 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7539 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7542 return NDR_ERR_SUCCESS;
7545 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
7547 uint32_t _ptr_guid;
7548 TALLOC_CTX *_mem_save_guid_0;
7549 if (ndr_flags & NDR_SCALARS) {
7550 NDR_CHECK(ndr_pull_align(ndr, 5));
7551 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
7552 if (_ptr_guid) {
7553 NDR_PULL_ALLOC(ndr, r->guid);
7554 } else {
7555 r->guid = NULL;
7557 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
7558 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7560 if (ndr_flags & NDR_BUFFERS) {
7561 if (r->guid) {
7562 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7563 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
7564 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
7565 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
7566 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
7567 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));
7569 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
7570 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
7571 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
7574 return NDR_ERR_SUCCESS;
7577 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
7579 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
7580 ndr->depth++;
7581 ndr_print_ptr(ndr, "guid", r->guid);
7582 ndr->depth++;
7583 if (r->guid) {
7584 ndr_print_string(ndr, "guid", r->guid);
7586 ndr->depth--;
7587 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
7588 ndr->depth--;
7591 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
7593 if (ndr_flags & NDR_SCALARS) {
7594 int level = ndr_push_get_switch_value(ndr, r);
7595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7596 NDR_CHECK(ndr_push_union_align(ndr, 5));
7597 switch (level) {
7598 case 0: {
7599 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
7600 break; }
7602 case 1: {
7603 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7604 break; }
7606 case 2: {
7607 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7608 break; }
7610 case 3: {
7611 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
7612 break; }
7614 case 4: {
7615 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
7616 break; }
7618 case 5: {
7619 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
7620 break; }
7622 case 6: {
7623 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
7624 break; }
7626 case 7: {
7627 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
7628 break; }
7630 case 8: {
7631 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
7632 break; }
7634 case 9: {
7635 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
7636 break; }
7638 default: {
7639 break; }
7643 if (ndr_flags & NDR_BUFFERS) {
7644 int level = ndr_push_get_switch_value(ndr, r);
7645 switch (level) {
7646 case 0:
7647 if (r->info0) {
7648 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7650 break;
7652 case 1:
7653 if (r->info1) {
7654 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7656 break;
7658 case 2:
7659 if (r->info2) {
7660 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7662 break;
7664 case 3:
7665 if (r->info3) {
7666 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7668 break;
7670 case 4:
7671 if (r->info4) {
7672 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7674 break;
7676 case 5:
7677 if (r->info5) {
7678 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7680 break;
7682 case 6:
7683 if (r->info6) {
7684 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7686 break;
7688 case 7:
7689 if (r->info7) {
7690 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7692 break;
7694 case 8:
7695 if (r->info8) {
7696 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7698 break;
7700 case 9:
7701 if (r->info9) {
7702 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7704 break;
7706 default:
7707 break;
7711 return NDR_ERR_SUCCESS;
7714 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
7716 int level;
7717 uint32_t _level;
7718 TALLOC_CTX *_mem_save_info0_0;
7719 TALLOC_CTX *_mem_save_info1_0;
7720 TALLOC_CTX *_mem_save_info2_0;
7721 TALLOC_CTX *_mem_save_info3_0;
7722 TALLOC_CTX *_mem_save_info4_0;
7723 TALLOC_CTX *_mem_save_info5_0;
7724 TALLOC_CTX *_mem_save_info6_0;
7725 TALLOC_CTX *_mem_save_info7_0;
7726 TALLOC_CTX *_mem_save_info8_0;
7727 TALLOC_CTX *_mem_save_info9_0;
7728 level = ndr_pull_get_switch_value(ndr, r);
7729 if (ndr_flags & NDR_SCALARS) {
7730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7731 if (_level != level) {
7732 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
7734 NDR_CHECK(ndr_pull_union_align(ndr, 5));
7735 switch (level) {
7736 case 0: {
7737 uint32_t _ptr_info0;
7738 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7739 if (_ptr_info0) {
7740 NDR_PULL_ALLOC(ndr, r->info0);
7741 } else {
7742 r->info0 = NULL;
7744 break; }
7746 case 1: {
7747 uint32_t _ptr_info1;
7748 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7749 if (_ptr_info1) {
7750 NDR_PULL_ALLOC(ndr, r->info1);
7751 } else {
7752 r->info1 = NULL;
7754 break; }
7756 case 2: {
7757 uint32_t _ptr_info2;
7758 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7759 if (_ptr_info2) {
7760 NDR_PULL_ALLOC(ndr, r->info2);
7761 } else {
7762 r->info2 = NULL;
7764 break; }
7766 case 3: {
7767 uint32_t _ptr_info3;
7768 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7769 if (_ptr_info3) {
7770 NDR_PULL_ALLOC(ndr, r->info3);
7771 } else {
7772 r->info3 = NULL;
7774 break; }
7776 case 4: {
7777 uint32_t _ptr_info4;
7778 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7779 if (_ptr_info4) {
7780 NDR_PULL_ALLOC(ndr, r->info4);
7781 } else {
7782 r->info4 = NULL;
7784 break; }
7786 case 5: {
7787 uint32_t _ptr_info5;
7788 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7789 if (_ptr_info5) {
7790 NDR_PULL_ALLOC(ndr, r->info5);
7791 } else {
7792 r->info5 = NULL;
7794 break; }
7796 case 6: {
7797 uint32_t _ptr_info6;
7798 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7799 if (_ptr_info6) {
7800 NDR_PULL_ALLOC(ndr, r->info6);
7801 } else {
7802 r->info6 = NULL;
7804 break; }
7806 case 7: {
7807 uint32_t _ptr_info7;
7808 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7809 if (_ptr_info7) {
7810 NDR_PULL_ALLOC(ndr, r->info7);
7811 } else {
7812 r->info7 = NULL;
7814 break; }
7816 case 8: {
7817 uint32_t _ptr_info8;
7818 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7819 if (_ptr_info8) {
7820 NDR_PULL_ALLOC(ndr, r->info8);
7821 } else {
7822 r->info8 = NULL;
7824 break; }
7826 case 9: {
7827 uint32_t _ptr_info9;
7828 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7829 if (_ptr_info9) {
7830 NDR_PULL_ALLOC(ndr, r->info9);
7831 } else {
7832 r->info9 = NULL;
7834 break; }
7836 default: {
7837 break; }
7841 if (ndr_flags & NDR_BUFFERS) {
7842 switch (level) {
7843 case 0:
7844 if (r->info0) {
7845 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7846 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7847 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7850 break;
7852 case 1:
7853 if (r->info1) {
7854 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7855 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7856 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7859 break;
7861 case 2:
7862 if (r->info2) {
7863 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7864 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7865 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7868 break;
7870 case 3:
7871 if (r->info3) {
7872 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7873 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7874 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7875 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7877 break;
7879 case 4:
7880 if (r->info4) {
7881 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7882 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7883 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7886 break;
7888 case 5:
7889 if (r->info5) {
7890 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7891 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7892 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7893 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7895 break;
7897 case 6:
7898 if (r->info6) {
7899 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7900 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7901 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7904 break;
7906 case 7:
7907 if (r->info7) {
7908 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7909 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7910 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7913 break;
7915 case 8:
7916 if (r->info8) {
7917 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7918 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7919 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7922 break;
7924 case 9:
7925 if (r->info9) {
7926 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7927 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7928 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7931 break;
7933 default:
7934 break;
7938 return NDR_ERR_SUCCESS;
7941 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7943 int level;
7944 level = ndr_print_get_switch_value(ndr, r);
7945 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
7946 switch (level) {
7947 case 0:
7948 ndr_print_ptr(ndr, "info0", r->info0);
7949 ndr->depth++;
7950 if (r->info0) {
7951 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
7953 ndr->depth--;
7954 break;
7956 case 1:
7957 ndr_print_ptr(ndr, "info1", r->info1);
7958 ndr->depth++;
7959 if (r->info1) {
7960 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
7962 ndr->depth--;
7963 break;
7965 case 2:
7966 ndr_print_ptr(ndr, "info2", r->info2);
7967 ndr->depth++;
7968 if (r->info2) {
7969 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
7971 ndr->depth--;
7972 break;
7974 case 3:
7975 ndr_print_ptr(ndr, "info3", r->info3);
7976 ndr->depth++;
7977 if (r->info3) {
7978 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
7980 ndr->depth--;
7981 break;
7983 case 4:
7984 ndr_print_ptr(ndr, "info4", r->info4);
7985 ndr->depth++;
7986 if (r->info4) {
7987 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
7989 ndr->depth--;
7990 break;
7992 case 5:
7993 ndr_print_ptr(ndr, "info5", r->info5);
7994 ndr->depth++;
7995 if (r->info5) {
7996 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
7998 ndr->depth--;
7999 break;
8001 case 6:
8002 ndr_print_ptr(ndr, "info6", r->info6);
8003 ndr->depth++;
8004 if (r->info6) {
8005 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
8007 ndr->depth--;
8008 break;
8010 case 7:
8011 ndr_print_ptr(ndr, "info7", r->info7);
8012 ndr->depth++;
8013 if (r->info7) {
8014 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
8016 ndr->depth--;
8017 break;
8019 case 8:
8020 ndr_print_ptr(ndr, "info8", r->info8);
8021 ndr->depth++;
8022 if (r->info8) {
8023 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
8025 ndr->depth--;
8026 break;
8028 case 9:
8029 ndr_print_ptr(ndr, "info9", r->info9);
8030 ndr->depth++;
8031 if (r->info9) {
8032 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
8034 ndr->depth--;
8035 break;
8037 default:
8038 break;
8043 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
8045 if (ndr_flags & NDR_SCALARS) {
8046 NDR_CHECK(ndr_push_align(ndr, 5));
8047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
8048 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
8049 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8050 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8052 if (ndr_flags & NDR_BUFFERS) {
8053 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8055 return NDR_ERR_SUCCESS;
8058 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
8060 if (ndr_flags & NDR_SCALARS) {
8061 NDR_CHECK(ndr_pull_align(ndr, 5));
8062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
8063 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
8064 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8065 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8067 if (ndr_flags & NDR_BUFFERS) {
8068 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8070 return NDR_ERR_SUCCESS;
8073 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
8075 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
8076 ndr->depth++;
8077 ndr_print_uint32(ndr, "level", r->level);
8078 ndr_print_set_switch_value(ndr, &r->info, r->level);
8079 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
8080 ndr->depth--;
8083 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
8085 if (ndr_flags & NDR_SCALARS) {
8086 NDR_CHECK(ndr_push_align(ndr, 4));
8087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
8089 uint32_t _flags_save_string_array = ndr->flags;
8090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8091 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
8092 ndr->flags = _flags_save_string_array;
8094 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
8096 if (ndr_flags & NDR_BUFFERS) {
8098 return NDR_ERR_SUCCESS;
8101 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
8103 if (ndr_flags & NDR_SCALARS) {
8104 NDR_CHECK(ndr_pull_align(ndr, 4));
8105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
8107 uint32_t _flags_save_string_array = ndr->flags;
8108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8109 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
8110 ndr->flags = _flags_save_string_array;
8112 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
8114 if (ndr_flags & NDR_BUFFERS) {
8116 return NDR_ERR_SUCCESS;
8119 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
8121 ndr_print_struct(ndr, name, "spoolss_StringArray");
8122 ndr->depth++;
8123 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);
8124 ndr_print_string_array(ndr, "string", r->string);
8125 ndr->depth--;
8128 _PUBLIC_ void ndr_print_spoolss_StringArray2(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray2 *r)
8130 ndr_print_struct(ndr, name, "spoolss_StringArray2");
8131 ndr->depth++;
8132 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?(ndr_size_spoolss_StringArray2(r, ndr->iconv_convenience, ndr->flags) - 4) / 2:r->_ndr_size);
8133 ndr_print_string_array(ndr, "string", r->string);
8134 ndr->depth--;
8137 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
8139 if (ndr_flags & NDR_SCALARS) {
8140 NDR_CHECK(ndr_push_align(ndr, 5));
8141 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8142 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8144 if (ndr_flags & NDR_BUFFERS) {
8145 if (r->driver_name) {
8146 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8147 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8148 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8149 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8152 return NDR_ERR_SUCCESS;
8155 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
8157 uint32_t _ptr_driver_name;
8158 TALLOC_CTX *_mem_save_driver_name_0;
8159 if (ndr_flags & NDR_SCALARS) {
8160 NDR_CHECK(ndr_pull_align(ndr, 5));
8161 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8162 if (_ptr_driver_name) {
8163 NDR_PULL_ALLOC(ndr, r->driver_name);
8164 } else {
8165 r->driver_name = NULL;
8167 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8169 if (ndr_flags & NDR_BUFFERS) {
8170 if (r->driver_name) {
8171 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8172 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8173 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8174 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8175 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8176 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));
8178 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8179 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8183 return NDR_ERR_SUCCESS;
8186 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
8188 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
8189 ndr->depth++;
8190 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8191 ndr->depth++;
8192 if (r->driver_name) {
8193 ndr_print_string(ndr, "driver_name", r->driver_name);
8195 ndr->depth--;
8196 ndr->depth--;
8199 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
8201 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8202 return NDR_ERR_SUCCESS;
8205 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
8207 uint32_t v;
8208 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8209 *r = v;
8210 return NDR_ERR_SUCCESS;
8213 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
8215 const char *val = NULL;
8217 switch (r) {
8218 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
8219 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
8220 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
8221 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
8223 ndr_print_enum(ndr, name, "ENUM", val, r);
8226 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
8228 if (ndr_flags & NDR_SCALARS) {
8229 NDR_CHECK(ndr_push_align(ndr, 5));
8230 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8231 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8232 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8233 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8234 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8235 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8236 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8238 if (ndr_flags & NDR_BUFFERS) {
8239 if (r->driver_name) {
8240 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8241 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8242 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8243 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8245 if (r->architecture) {
8246 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8247 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8248 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8249 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8251 if (r->driver_path) {
8252 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8253 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8254 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8255 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8257 if (r->data_file) {
8258 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8259 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8260 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8261 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8263 if (r->config_file) {
8264 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8265 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8266 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8267 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8270 return NDR_ERR_SUCCESS;
8273 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
8275 uint32_t _ptr_driver_name;
8276 TALLOC_CTX *_mem_save_driver_name_0;
8277 uint32_t _ptr_architecture;
8278 TALLOC_CTX *_mem_save_architecture_0;
8279 uint32_t _ptr_driver_path;
8280 TALLOC_CTX *_mem_save_driver_path_0;
8281 uint32_t _ptr_data_file;
8282 TALLOC_CTX *_mem_save_data_file_0;
8283 uint32_t _ptr_config_file;
8284 TALLOC_CTX *_mem_save_config_file_0;
8285 if (ndr_flags & NDR_SCALARS) {
8286 NDR_CHECK(ndr_pull_align(ndr, 5));
8287 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8288 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8289 if (_ptr_driver_name) {
8290 NDR_PULL_ALLOC(ndr, r->driver_name);
8291 } else {
8292 r->driver_name = NULL;
8294 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8295 if (_ptr_architecture) {
8296 NDR_PULL_ALLOC(ndr, r->architecture);
8297 } else {
8298 r->architecture = NULL;
8300 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8301 if (_ptr_driver_path) {
8302 NDR_PULL_ALLOC(ndr, r->driver_path);
8303 } else {
8304 r->driver_path = NULL;
8306 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8307 if (_ptr_data_file) {
8308 NDR_PULL_ALLOC(ndr, r->data_file);
8309 } else {
8310 r->data_file = NULL;
8312 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8313 if (_ptr_config_file) {
8314 NDR_PULL_ALLOC(ndr, r->config_file);
8315 } else {
8316 r->config_file = NULL;
8318 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8320 if (ndr_flags & NDR_BUFFERS) {
8321 if (r->driver_name) {
8322 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8323 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8324 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8325 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8326 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8327 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));
8329 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8330 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8333 if (r->architecture) {
8334 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8335 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8336 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8337 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8338 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8339 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));
8341 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8342 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8345 if (r->driver_path) {
8346 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8347 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8348 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8349 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8350 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8351 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));
8353 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8354 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8357 if (r->data_file) {
8358 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8359 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8360 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8361 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8362 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8363 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));
8365 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8366 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8369 if (r->config_file) {
8370 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8371 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8372 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8373 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8374 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8375 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));
8377 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8378 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8382 return NDR_ERR_SUCCESS;
8385 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
8387 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
8388 ndr->depth++;
8389 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8390 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8391 ndr->depth++;
8392 if (r->driver_name) {
8393 ndr_print_string(ndr, "driver_name", r->driver_name);
8395 ndr->depth--;
8396 ndr_print_ptr(ndr, "architecture", r->architecture);
8397 ndr->depth++;
8398 if (r->architecture) {
8399 ndr_print_string(ndr, "architecture", r->architecture);
8401 ndr->depth--;
8402 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8403 ndr->depth++;
8404 if (r->driver_path) {
8405 ndr_print_string(ndr, "driver_path", r->driver_path);
8407 ndr->depth--;
8408 ndr_print_ptr(ndr, "data_file", r->data_file);
8409 ndr->depth++;
8410 if (r->data_file) {
8411 ndr_print_string(ndr, "data_file", r->data_file);
8413 ndr->depth--;
8414 ndr_print_ptr(ndr, "config_file", r->config_file);
8415 ndr->depth++;
8416 if (r->config_file) {
8417 ndr_print_string(ndr, "config_file", r->config_file);
8419 ndr->depth--;
8420 ndr->depth--;
8423 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
8425 if (ndr_flags & NDR_SCALARS) {
8426 NDR_CHECK(ndr_push_align(ndr, 5));
8427 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8428 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8429 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8430 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8431 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8432 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8433 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8434 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8435 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8437 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8438 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8440 if (ndr_flags & NDR_BUFFERS) {
8441 if (r->driver_name) {
8442 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8443 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8444 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8445 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8447 if (r->architecture) {
8448 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8449 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8450 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8451 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8453 if (r->driver_path) {
8454 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8455 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8456 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8457 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8459 if (r->data_file) {
8460 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8461 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8462 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8463 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8465 if (r->config_file) {
8466 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8467 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8468 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8469 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8471 if (r->help_file) {
8472 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8473 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8474 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8475 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8477 if (r->monitor_name) {
8478 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8479 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8480 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8481 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8483 if (r->default_datatype) {
8484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8485 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8486 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8487 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8489 if (r->dependent_files) {
8490 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8493 return NDR_ERR_SUCCESS;
8496 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
8498 uint32_t _ptr_driver_name;
8499 TALLOC_CTX *_mem_save_driver_name_0;
8500 uint32_t _ptr_architecture;
8501 TALLOC_CTX *_mem_save_architecture_0;
8502 uint32_t _ptr_driver_path;
8503 TALLOC_CTX *_mem_save_driver_path_0;
8504 uint32_t _ptr_data_file;
8505 TALLOC_CTX *_mem_save_data_file_0;
8506 uint32_t _ptr_config_file;
8507 TALLOC_CTX *_mem_save_config_file_0;
8508 uint32_t _ptr_help_file;
8509 TALLOC_CTX *_mem_save_help_file_0;
8510 uint32_t _ptr_monitor_name;
8511 TALLOC_CTX *_mem_save_monitor_name_0;
8512 uint32_t _ptr_default_datatype;
8513 TALLOC_CTX *_mem_save_default_datatype_0;
8514 uint32_t _ptr_dependent_files;
8515 TALLOC_CTX *_mem_save_dependent_files_0;
8516 if (ndr_flags & NDR_SCALARS) {
8517 NDR_CHECK(ndr_pull_align(ndr, 5));
8518 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8519 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8520 if (_ptr_driver_name) {
8521 NDR_PULL_ALLOC(ndr, r->driver_name);
8522 } else {
8523 r->driver_name = NULL;
8525 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8526 if (_ptr_architecture) {
8527 NDR_PULL_ALLOC(ndr, r->architecture);
8528 } else {
8529 r->architecture = NULL;
8531 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8532 if (_ptr_driver_path) {
8533 NDR_PULL_ALLOC(ndr, r->driver_path);
8534 } else {
8535 r->driver_path = NULL;
8537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8538 if (_ptr_data_file) {
8539 NDR_PULL_ALLOC(ndr, r->data_file);
8540 } else {
8541 r->data_file = NULL;
8543 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8544 if (_ptr_config_file) {
8545 NDR_PULL_ALLOC(ndr, r->config_file);
8546 } else {
8547 r->config_file = NULL;
8549 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8550 if (_ptr_help_file) {
8551 NDR_PULL_ALLOC(ndr, r->help_file);
8552 } else {
8553 r->help_file = NULL;
8555 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8556 if (_ptr_monitor_name) {
8557 NDR_PULL_ALLOC(ndr, r->monitor_name);
8558 } else {
8559 r->monitor_name = NULL;
8561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8562 if (_ptr_default_datatype) {
8563 NDR_PULL_ALLOC(ndr, r->default_datatype);
8564 } else {
8565 r->default_datatype = NULL;
8567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8568 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8569 if (_ptr_dependent_files) {
8570 NDR_PULL_ALLOC(ndr, r->dependent_files);
8571 } else {
8572 r->dependent_files = NULL;
8574 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8576 if (ndr_flags & NDR_BUFFERS) {
8577 if (r->driver_name) {
8578 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8579 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8580 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8581 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8582 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8583 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));
8585 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8586 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8589 if (r->architecture) {
8590 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8591 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8592 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8593 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8594 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8595 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));
8597 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8598 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8599 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8601 if (r->driver_path) {
8602 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8603 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8604 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8605 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8606 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8607 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));
8609 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8610 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8613 if (r->data_file) {
8614 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8615 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8616 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8617 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8618 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8619 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));
8621 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8622 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8623 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8625 if (r->config_file) {
8626 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8627 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8628 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8629 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8630 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8631 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));
8633 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8634 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8635 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8637 if (r->help_file) {
8638 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8639 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8640 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8641 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8642 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8643 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));
8645 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8646 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8649 if (r->monitor_name) {
8650 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8651 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8652 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8653 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8654 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8655 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));
8657 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8658 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8661 if (r->default_datatype) {
8662 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8663 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8664 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8665 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8666 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8667 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));
8669 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8670 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8673 if (r->dependent_files) {
8674 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8675 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8676 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8680 return NDR_ERR_SUCCESS;
8683 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
8685 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
8686 ndr->depth++;
8687 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8688 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8689 ndr->depth++;
8690 if (r->driver_name) {
8691 ndr_print_string(ndr, "driver_name", r->driver_name);
8693 ndr->depth--;
8694 ndr_print_ptr(ndr, "architecture", r->architecture);
8695 ndr->depth++;
8696 if (r->architecture) {
8697 ndr_print_string(ndr, "architecture", r->architecture);
8699 ndr->depth--;
8700 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8701 ndr->depth++;
8702 if (r->driver_path) {
8703 ndr_print_string(ndr, "driver_path", r->driver_path);
8705 ndr->depth--;
8706 ndr_print_ptr(ndr, "data_file", r->data_file);
8707 ndr->depth++;
8708 if (r->data_file) {
8709 ndr_print_string(ndr, "data_file", r->data_file);
8711 ndr->depth--;
8712 ndr_print_ptr(ndr, "config_file", r->config_file);
8713 ndr->depth++;
8714 if (r->config_file) {
8715 ndr_print_string(ndr, "config_file", r->config_file);
8717 ndr->depth--;
8718 ndr_print_ptr(ndr, "help_file", r->help_file);
8719 ndr->depth++;
8720 if (r->help_file) {
8721 ndr_print_string(ndr, "help_file", r->help_file);
8723 ndr->depth--;
8724 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8725 ndr->depth++;
8726 if (r->monitor_name) {
8727 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8729 ndr->depth--;
8730 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8731 ndr->depth++;
8732 if (r->default_datatype) {
8733 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8735 ndr->depth--;
8736 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);
8737 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8738 ndr->depth++;
8739 if (r->dependent_files) {
8740 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8742 ndr->depth--;
8743 ndr->depth--;
8746 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8748 if (ndr_flags & NDR_SCALARS) {
8749 NDR_CHECK(ndr_push_align(ndr, 5));
8750 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8751 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8752 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8753 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8754 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8755 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8756 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8757 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8758 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8760 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8762 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8763 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8765 if (ndr_flags & NDR_BUFFERS) {
8766 if (r->driver_name) {
8767 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8768 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8769 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8770 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8772 if (r->architecture) {
8773 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8774 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8775 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8776 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8778 if (r->driver_path) {
8779 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8780 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8781 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8782 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8784 if (r->data_file) {
8785 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8786 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8787 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8788 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8790 if (r->config_file) {
8791 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8792 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8793 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8794 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8796 if (r->help_file) {
8797 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8798 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8799 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8800 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8802 if (r->monitor_name) {
8803 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8804 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8805 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8806 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8808 if (r->default_datatype) {
8809 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8810 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8811 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8812 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8814 if (r->dependent_files) {
8815 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8817 if (r->previous_names) {
8818 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8821 return NDR_ERR_SUCCESS;
8824 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8826 uint32_t _ptr_driver_name;
8827 TALLOC_CTX *_mem_save_driver_name_0;
8828 uint32_t _ptr_architecture;
8829 TALLOC_CTX *_mem_save_architecture_0;
8830 uint32_t _ptr_driver_path;
8831 TALLOC_CTX *_mem_save_driver_path_0;
8832 uint32_t _ptr_data_file;
8833 TALLOC_CTX *_mem_save_data_file_0;
8834 uint32_t _ptr_config_file;
8835 TALLOC_CTX *_mem_save_config_file_0;
8836 uint32_t _ptr_help_file;
8837 TALLOC_CTX *_mem_save_help_file_0;
8838 uint32_t _ptr_monitor_name;
8839 TALLOC_CTX *_mem_save_monitor_name_0;
8840 uint32_t _ptr_default_datatype;
8841 TALLOC_CTX *_mem_save_default_datatype_0;
8842 uint32_t _ptr_dependent_files;
8843 TALLOC_CTX *_mem_save_dependent_files_0;
8844 uint32_t _ptr_previous_names;
8845 TALLOC_CTX *_mem_save_previous_names_0;
8846 if (ndr_flags & NDR_SCALARS) {
8847 NDR_CHECK(ndr_pull_align(ndr, 5));
8848 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8850 if (_ptr_driver_name) {
8851 NDR_PULL_ALLOC(ndr, r->driver_name);
8852 } else {
8853 r->driver_name = NULL;
8855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8856 if (_ptr_architecture) {
8857 NDR_PULL_ALLOC(ndr, r->architecture);
8858 } else {
8859 r->architecture = NULL;
8861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8862 if (_ptr_driver_path) {
8863 NDR_PULL_ALLOC(ndr, r->driver_path);
8864 } else {
8865 r->driver_path = NULL;
8867 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8868 if (_ptr_data_file) {
8869 NDR_PULL_ALLOC(ndr, r->data_file);
8870 } else {
8871 r->data_file = NULL;
8873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8874 if (_ptr_config_file) {
8875 NDR_PULL_ALLOC(ndr, r->config_file);
8876 } else {
8877 r->config_file = NULL;
8879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8880 if (_ptr_help_file) {
8881 NDR_PULL_ALLOC(ndr, r->help_file);
8882 } else {
8883 r->help_file = NULL;
8885 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8886 if (_ptr_monitor_name) {
8887 NDR_PULL_ALLOC(ndr, r->monitor_name);
8888 } else {
8889 r->monitor_name = NULL;
8891 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8892 if (_ptr_default_datatype) {
8893 NDR_PULL_ALLOC(ndr, r->default_datatype);
8894 } else {
8895 r->default_datatype = NULL;
8897 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8899 if (_ptr_dependent_files) {
8900 NDR_PULL_ALLOC(ndr, r->dependent_files);
8901 } else {
8902 r->dependent_files = NULL;
8904 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8905 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8906 if (_ptr_previous_names) {
8907 NDR_PULL_ALLOC(ndr, r->previous_names);
8908 } else {
8909 r->previous_names = NULL;
8911 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8913 if (ndr_flags & NDR_BUFFERS) {
8914 if (r->driver_name) {
8915 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8916 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8917 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8918 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8919 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8920 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));
8922 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8923 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8926 if (r->architecture) {
8927 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8928 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8929 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8930 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8931 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8932 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));
8934 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8935 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8938 if (r->driver_path) {
8939 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8940 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8941 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8942 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8943 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8944 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));
8946 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8947 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8950 if (r->data_file) {
8951 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8952 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8953 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8954 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8955 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8956 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));
8958 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8959 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8962 if (r->config_file) {
8963 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8964 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8965 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8966 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8967 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8968 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));
8970 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8971 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8974 if (r->help_file) {
8975 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8976 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8977 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8978 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8979 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8980 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));
8982 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8983 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8984 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8986 if (r->monitor_name) {
8987 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8988 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8989 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8990 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8991 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8992 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));
8994 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8995 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8998 if (r->default_datatype) {
8999 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9000 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9001 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9002 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9003 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9004 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));
9006 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9007 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9010 if (r->dependent_files) {
9011 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9012 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9013 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9016 if (r->previous_names) {
9017 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9018 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9019 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9023 return NDR_ERR_SUCCESS;
9026 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
9028 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
9029 ndr->depth++;
9030 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9031 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9032 ndr->depth++;
9033 if (r->driver_name) {
9034 ndr_print_string(ndr, "driver_name", r->driver_name);
9036 ndr->depth--;
9037 ndr_print_ptr(ndr, "architecture", r->architecture);
9038 ndr->depth++;
9039 if (r->architecture) {
9040 ndr_print_string(ndr, "architecture", r->architecture);
9042 ndr->depth--;
9043 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9044 ndr->depth++;
9045 if (r->driver_path) {
9046 ndr_print_string(ndr, "driver_path", r->driver_path);
9048 ndr->depth--;
9049 ndr_print_ptr(ndr, "data_file", r->data_file);
9050 ndr->depth++;
9051 if (r->data_file) {
9052 ndr_print_string(ndr, "data_file", r->data_file);
9054 ndr->depth--;
9055 ndr_print_ptr(ndr, "config_file", r->config_file);
9056 ndr->depth++;
9057 if (r->config_file) {
9058 ndr_print_string(ndr, "config_file", r->config_file);
9060 ndr->depth--;
9061 ndr_print_ptr(ndr, "help_file", r->help_file);
9062 ndr->depth++;
9063 if (r->help_file) {
9064 ndr_print_string(ndr, "help_file", r->help_file);
9066 ndr->depth--;
9067 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9068 ndr->depth++;
9069 if (r->monitor_name) {
9070 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9072 ndr->depth--;
9073 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9074 ndr->depth++;
9075 if (r->default_datatype) {
9076 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9078 ndr->depth--;
9079 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);
9080 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9081 ndr->depth++;
9082 if (r->dependent_files) {
9083 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9085 ndr->depth--;
9086 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);
9087 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9088 ndr->depth++;
9089 if (r->previous_names) {
9090 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9092 ndr->depth--;
9093 ndr->depth--;
9096 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
9098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
9099 return NDR_ERR_SUCCESS;
9102 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
9104 uint32_t v;
9105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
9106 *r = v;
9107 return NDR_ERR_SUCCESS;
9110 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
9112 ndr_print_uint32(ndr, name, r);
9113 ndr->depth++;
9114 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
9115 ndr->depth--;
9118 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
9120 if (ndr_flags & NDR_SCALARS) {
9121 NDR_CHECK(ndr_push_align(ndr, 8));
9122 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9123 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9124 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9125 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9126 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9127 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9128 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9129 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9130 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9132 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9134 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9135 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9136 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9137 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9138 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9139 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9140 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9141 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9143 if (ndr_flags & NDR_BUFFERS) {
9144 if (r->driver_name) {
9145 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9146 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9147 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9148 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9150 if (r->architecture) {
9151 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9152 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9153 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9154 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9156 if (r->driver_path) {
9157 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9158 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9159 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9160 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9162 if (r->data_file) {
9163 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9164 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9165 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9166 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9168 if (r->config_file) {
9169 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9170 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9171 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9172 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9174 if (r->help_file) {
9175 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9176 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9177 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9178 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9180 if (r->monitor_name) {
9181 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9182 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9183 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9184 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9186 if (r->default_datatype) {
9187 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9188 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9189 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9190 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9192 if (r->dependent_files) {
9193 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9195 if (r->previous_names) {
9196 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9198 if (r->manufacturer_name) {
9199 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9200 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9201 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9202 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9204 if (r->manufacturer_url) {
9205 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9206 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9207 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9208 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9210 if (r->hardware_id) {
9211 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9212 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9213 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9214 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9216 if (r->provider) {
9217 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9218 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9219 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9220 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9223 return NDR_ERR_SUCCESS;
9226 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
9228 uint32_t _ptr_driver_name;
9229 TALLOC_CTX *_mem_save_driver_name_0;
9230 uint32_t _ptr_architecture;
9231 TALLOC_CTX *_mem_save_architecture_0;
9232 uint32_t _ptr_driver_path;
9233 TALLOC_CTX *_mem_save_driver_path_0;
9234 uint32_t _ptr_data_file;
9235 TALLOC_CTX *_mem_save_data_file_0;
9236 uint32_t _ptr_config_file;
9237 TALLOC_CTX *_mem_save_config_file_0;
9238 uint32_t _ptr_help_file;
9239 TALLOC_CTX *_mem_save_help_file_0;
9240 uint32_t _ptr_monitor_name;
9241 TALLOC_CTX *_mem_save_monitor_name_0;
9242 uint32_t _ptr_default_datatype;
9243 TALLOC_CTX *_mem_save_default_datatype_0;
9244 uint32_t _ptr_dependent_files;
9245 TALLOC_CTX *_mem_save_dependent_files_0;
9246 uint32_t _ptr_previous_names;
9247 TALLOC_CTX *_mem_save_previous_names_0;
9248 uint32_t _ptr_manufacturer_name;
9249 TALLOC_CTX *_mem_save_manufacturer_name_0;
9250 uint32_t _ptr_manufacturer_url;
9251 TALLOC_CTX *_mem_save_manufacturer_url_0;
9252 uint32_t _ptr_hardware_id;
9253 TALLOC_CTX *_mem_save_hardware_id_0;
9254 uint32_t _ptr_provider;
9255 TALLOC_CTX *_mem_save_provider_0;
9256 if (ndr_flags & NDR_SCALARS) {
9257 NDR_CHECK(ndr_pull_align(ndr, 8));
9258 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9259 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9260 if (_ptr_driver_name) {
9261 NDR_PULL_ALLOC(ndr, r->driver_name);
9262 } else {
9263 r->driver_name = NULL;
9265 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9266 if (_ptr_architecture) {
9267 NDR_PULL_ALLOC(ndr, r->architecture);
9268 } else {
9269 r->architecture = NULL;
9271 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9272 if (_ptr_driver_path) {
9273 NDR_PULL_ALLOC(ndr, r->driver_path);
9274 } else {
9275 r->driver_path = NULL;
9277 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9278 if (_ptr_data_file) {
9279 NDR_PULL_ALLOC(ndr, r->data_file);
9280 } else {
9281 r->data_file = NULL;
9283 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9284 if (_ptr_config_file) {
9285 NDR_PULL_ALLOC(ndr, r->config_file);
9286 } else {
9287 r->config_file = NULL;
9289 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9290 if (_ptr_help_file) {
9291 NDR_PULL_ALLOC(ndr, r->help_file);
9292 } else {
9293 r->help_file = NULL;
9295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9296 if (_ptr_monitor_name) {
9297 NDR_PULL_ALLOC(ndr, r->monitor_name);
9298 } else {
9299 r->monitor_name = NULL;
9301 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9302 if (_ptr_default_datatype) {
9303 NDR_PULL_ALLOC(ndr, r->default_datatype);
9304 } else {
9305 r->default_datatype = NULL;
9307 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9308 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9309 if (_ptr_dependent_files) {
9310 NDR_PULL_ALLOC(ndr, r->dependent_files);
9311 } else {
9312 r->dependent_files = NULL;
9314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9316 if (_ptr_previous_names) {
9317 NDR_PULL_ALLOC(ndr, r->previous_names);
9318 } else {
9319 r->previous_names = NULL;
9321 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9322 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9323 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9324 if (_ptr_manufacturer_name) {
9325 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9326 } else {
9327 r->manufacturer_name = NULL;
9329 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9330 if (_ptr_manufacturer_url) {
9331 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9332 } else {
9333 r->manufacturer_url = NULL;
9335 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9336 if (_ptr_hardware_id) {
9337 NDR_PULL_ALLOC(ndr, r->hardware_id);
9338 } else {
9339 r->hardware_id = NULL;
9341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9342 if (_ptr_provider) {
9343 NDR_PULL_ALLOC(ndr, r->provider);
9344 } else {
9345 r->provider = NULL;
9347 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9349 if (ndr_flags & NDR_BUFFERS) {
9350 if (r->driver_name) {
9351 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9352 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9353 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9354 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9355 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9356 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));
9358 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9359 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9362 if (r->architecture) {
9363 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9364 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9365 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9366 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9367 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9368 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));
9370 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9371 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9374 if (r->driver_path) {
9375 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9376 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9377 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9378 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9379 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9380 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));
9382 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9383 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9386 if (r->data_file) {
9387 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9388 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9389 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9390 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9391 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9392 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));
9394 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9395 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9398 if (r->config_file) {
9399 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9400 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9401 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9402 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9403 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9404 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));
9406 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9407 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9410 if (r->help_file) {
9411 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9412 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9413 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9414 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9415 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9416 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));
9418 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9419 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9422 if (r->monitor_name) {
9423 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9424 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9425 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9426 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9427 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9428 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));
9430 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9431 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9434 if (r->default_datatype) {
9435 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9436 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9437 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9438 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9439 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9440 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));
9442 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9443 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9446 if (r->dependent_files) {
9447 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9448 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9449 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9452 if (r->previous_names) {
9453 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9454 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9455 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9458 if (r->manufacturer_name) {
9459 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9460 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9461 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9462 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9463 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9464 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));
9466 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9467 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9470 if (r->manufacturer_url) {
9471 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9472 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9473 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9474 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9475 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9476 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));
9478 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9479 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9480 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9482 if (r->hardware_id) {
9483 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9484 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9485 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9486 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9487 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9488 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));
9490 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9491 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9494 if (r->provider) {
9495 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9496 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9497 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9498 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9499 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9500 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));
9502 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9503 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9507 return NDR_ERR_SUCCESS;
9510 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
9512 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
9513 ndr->depth++;
9514 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9515 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9516 ndr->depth++;
9517 if (r->driver_name) {
9518 ndr_print_string(ndr, "driver_name", r->driver_name);
9520 ndr->depth--;
9521 ndr_print_ptr(ndr, "architecture", r->architecture);
9522 ndr->depth++;
9523 if (r->architecture) {
9524 ndr_print_string(ndr, "architecture", r->architecture);
9526 ndr->depth--;
9527 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9528 ndr->depth++;
9529 if (r->driver_path) {
9530 ndr_print_string(ndr, "driver_path", r->driver_path);
9532 ndr->depth--;
9533 ndr_print_ptr(ndr, "data_file", r->data_file);
9534 ndr->depth++;
9535 if (r->data_file) {
9536 ndr_print_string(ndr, "data_file", r->data_file);
9538 ndr->depth--;
9539 ndr_print_ptr(ndr, "config_file", r->config_file);
9540 ndr->depth++;
9541 if (r->config_file) {
9542 ndr_print_string(ndr, "config_file", r->config_file);
9544 ndr->depth--;
9545 ndr_print_ptr(ndr, "help_file", r->help_file);
9546 ndr->depth++;
9547 if (r->help_file) {
9548 ndr_print_string(ndr, "help_file", r->help_file);
9550 ndr->depth--;
9551 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9552 ndr->depth++;
9553 if (r->monitor_name) {
9554 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9556 ndr->depth--;
9557 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9558 ndr->depth++;
9559 if (r->default_datatype) {
9560 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9562 ndr->depth--;
9563 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);
9564 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9565 ndr->depth++;
9566 if (r->dependent_files) {
9567 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9569 ndr->depth--;
9570 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);
9571 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9572 ndr->depth++;
9573 if (r->previous_names) {
9574 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9576 ndr->depth--;
9577 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9578 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9579 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9580 ndr->depth++;
9581 if (r->manufacturer_name) {
9582 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9584 ndr->depth--;
9585 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9586 ndr->depth++;
9587 if (r->manufacturer_url) {
9588 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9590 ndr->depth--;
9591 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9592 ndr->depth++;
9593 if (r->hardware_id) {
9594 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9596 ndr->depth--;
9597 ndr_print_ptr(ndr, "provider", r->provider);
9598 ndr->depth++;
9599 if (r->provider) {
9600 ndr_print_string(ndr, "provider", r->provider);
9602 ndr->depth--;
9603 ndr->depth--;
9606 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
9608 if (ndr_flags & NDR_SCALARS) {
9609 NDR_CHECK(ndr_push_align(ndr, 8));
9610 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9611 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9612 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9613 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9614 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9615 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9616 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9617 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9618 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9620 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9622 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9623 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9624 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9625 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9626 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9627 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9628 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9629 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
9630 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
9631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9632 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
9633 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
9634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9636 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
9637 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9638 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9639 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9641 if (ndr_flags & NDR_BUFFERS) {
9642 if (r->driver_name) {
9643 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9644 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9645 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9646 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9648 if (r->architecture) {
9649 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9650 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9651 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9652 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9654 if (r->driver_path) {
9655 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9656 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9657 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9658 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9660 if (r->data_file) {
9661 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9662 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9663 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9664 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9666 if (r->config_file) {
9667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9668 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9669 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9670 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9672 if (r->help_file) {
9673 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9674 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9675 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9676 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9678 if (r->monitor_name) {
9679 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9680 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9681 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9682 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9684 if (r->default_datatype) {
9685 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9686 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9687 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9688 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9690 if (r->dependent_files) {
9691 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9693 if (r->previous_names) {
9694 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9696 if (r->manufacturer_name) {
9697 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9698 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9699 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9700 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9702 if (r->manufacturer_url) {
9703 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9704 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9705 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9706 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9708 if (r->hardware_id) {
9709 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9710 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9711 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9712 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9714 if (r->provider) {
9715 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9716 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9717 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9718 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9720 if (r->print_processor) {
9721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9723 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9724 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9726 if (r->vendor_setup) {
9727 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9728 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9729 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9730 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9732 if (r->color_profiles) {
9733 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9735 if (r->inf_path) {
9736 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9737 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9738 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9739 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9741 if (r->core_driver_dependencies) {
9742 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9745 return NDR_ERR_SUCCESS;
9748 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
9750 uint32_t _ptr_driver_name;
9751 TALLOC_CTX *_mem_save_driver_name_0;
9752 uint32_t _ptr_architecture;
9753 TALLOC_CTX *_mem_save_architecture_0;
9754 uint32_t _ptr_driver_path;
9755 TALLOC_CTX *_mem_save_driver_path_0;
9756 uint32_t _ptr_data_file;
9757 TALLOC_CTX *_mem_save_data_file_0;
9758 uint32_t _ptr_config_file;
9759 TALLOC_CTX *_mem_save_config_file_0;
9760 uint32_t _ptr_help_file;
9761 TALLOC_CTX *_mem_save_help_file_0;
9762 uint32_t _ptr_monitor_name;
9763 TALLOC_CTX *_mem_save_monitor_name_0;
9764 uint32_t _ptr_default_datatype;
9765 TALLOC_CTX *_mem_save_default_datatype_0;
9766 uint32_t _ptr_dependent_files;
9767 TALLOC_CTX *_mem_save_dependent_files_0;
9768 uint32_t _ptr_previous_names;
9769 TALLOC_CTX *_mem_save_previous_names_0;
9770 uint32_t _ptr_manufacturer_name;
9771 TALLOC_CTX *_mem_save_manufacturer_name_0;
9772 uint32_t _ptr_manufacturer_url;
9773 TALLOC_CTX *_mem_save_manufacturer_url_0;
9774 uint32_t _ptr_hardware_id;
9775 TALLOC_CTX *_mem_save_hardware_id_0;
9776 uint32_t _ptr_provider;
9777 TALLOC_CTX *_mem_save_provider_0;
9778 uint32_t _ptr_print_processor;
9779 TALLOC_CTX *_mem_save_print_processor_0;
9780 uint32_t _ptr_vendor_setup;
9781 TALLOC_CTX *_mem_save_vendor_setup_0;
9782 uint32_t _ptr_color_profiles;
9783 TALLOC_CTX *_mem_save_color_profiles_0;
9784 uint32_t _ptr_inf_path;
9785 TALLOC_CTX *_mem_save_inf_path_0;
9786 uint32_t _ptr_core_driver_dependencies;
9787 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9788 if (ndr_flags & NDR_SCALARS) {
9789 NDR_CHECK(ndr_pull_align(ndr, 8));
9790 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9792 if (_ptr_driver_name) {
9793 NDR_PULL_ALLOC(ndr, r->driver_name);
9794 } else {
9795 r->driver_name = NULL;
9797 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9798 if (_ptr_architecture) {
9799 NDR_PULL_ALLOC(ndr, r->architecture);
9800 } else {
9801 r->architecture = NULL;
9803 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9804 if (_ptr_driver_path) {
9805 NDR_PULL_ALLOC(ndr, r->driver_path);
9806 } else {
9807 r->driver_path = NULL;
9809 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9810 if (_ptr_data_file) {
9811 NDR_PULL_ALLOC(ndr, r->data_file);
9812 } else {
9813 r->data_file = NULL;
9815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9816 if (_ptr_config_file) {
9817 NDR_PULL_ALLOC(ndr, r->config_file);
9818 } else {
9819 r->config_file = NULL;
9821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9822 if (_ptr_help_file) {
9823 NDR_PULL_ALLOC(ndr, r->help_file);
9824 } else {
9825 r->help_file = NULL;
9827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9828 if (_ptr_monitor_name) {
9829 NDR_PULL_ALLOC(ndr, r->monitor_name);
9830 } else {
9831 r->monitor_name = NULL;
9833 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9834 if (_ptr_default_datatype) {
9835 NDR_PULL_ALLOC(ndr, r->default_datatype);
9836 } else {
9837 r->default_datatype = NULL;
9839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9841 if (_ptr_dependent_files) {
9842 NDR_PULL_ALLOC(ndr, r->dependent_files);
9843 } else {
9844 r->dependent_files = NULL;
9846 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9847 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9848 if (_ptr_previous_names) {
9849 NDR_PULL_ALLOC(ndr, r->previous_names);
9850 } else {
9851 r->previous_names = NULL;
9853 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9854 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9856 if (_ptr_manufacturer_name) {
9857 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9858 } else {
9859 r->manufacturer_name = NULL;
9861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9862 if (_ptr_manufacturer_url) {
9863 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9864 } else {
9865 r->manufacturer_url = NULL;
9867 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9868 if (_ptr_hardware_id) {
9869 NDR_PULL_ALLOC(ndr, r->hardware_id);
9870 } else {
9871 r->hardware_id = NULL;
9873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9874 if (_ptr_provider) {
9875 NDR_PULL_ALLOC(ndr, r->provider);
9876 } else {
9877 r->provider = NULL;
9879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9880 if (_ptr_print_processor) {
9881 NDR_PULL_ALLOC(ndr, r->print_processor);
9882 } else {
9883 r->print_processor = NULL;
9885 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9886 if (_ptr_vendor_setup) {
9887 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9888 } else {
9889 r->vendor_setup = NULL;
9891 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9892 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9893 if (_ptr_color_profiles) {
9894 NDR_PULL_ALLOC(ndr, r->color_profiles);
9895 } else {
9896 r->color_profiles = NULL;
9898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9899 if (_ptr_inf_path) {
9900 NDR_PULL_ALLOC(ndr, r->inf_path);
9901 } else {
9902 r->inf_path = NULL;
9904 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9905 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9907 if (_ptr_core_driver_dependencies) {
9908 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9909 } else {
9910 r->core_driver_dependencies = NULL;
9912 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9913 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9914 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9916 if (ndr_flags & NDR_BUFFERS) {
9917 if (r->driver_name) {
9918 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9919 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9920 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9921 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9922 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9923 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));
9925 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9926 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9929 if (r->architecture) {
9930 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9931 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9932 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9933 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9934 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
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->architecture), ndr_get_array_length(ndr, &r->architecture));
9937 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9938 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9939 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9941 if (r->driver_path) {
9942 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9943 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9944 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9945 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9946 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9947 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));
9949 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9950 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9953 if (r->data_file) {
9954 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9955 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9956 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9957 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9958 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9959 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));
9961 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9962 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9965 if (r->config_file) {
9966 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9967 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9968 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9969 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9970 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9971 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));
9973 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9974 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9977 if (r->help_file) {
9978 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9979 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9980 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9981 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9982 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9983 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));
9985 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9986 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9989 if (r->monitor_name) {
9990 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9991 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9992 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9993 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9994 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9995 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));
9997 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9998 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9999 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10001 if (r->default_datatype) {
10002 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10003 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10004 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
10005 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
10006 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
10007 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));
10009 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
10010 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
10011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10013 if (r->dependent_files) {
10014 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10015 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10016 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10019 if (r->previous_names) {
10020 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10021 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10022 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10025 if (r->manufacturer_name) {
10026 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10027 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10028 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
10029 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
10030 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
10031 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));
10033 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
10034 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
10035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10037 if (r->manufacturer_url) {
10038 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10039 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10040 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
10041 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
10042 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
10043 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));
10045 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
10046 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
10047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10049 if (r->hardware_id) {
10050 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10051 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10052 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
10053 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
10054 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
10055 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));
10057 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
10058 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
10059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10061 if (r->provider) {
10062 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10063 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10064 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
10065 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
10066 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
10067 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));
10069 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
10070 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
10071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10073 if (r->print_processor) {
10074 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10075 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10076 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
10077 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
10078 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
10079 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));
10081 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
10082 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
10083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10085 if (r->vendor_setup) {
10086 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10087 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10088 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
10089 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
10090 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
10091 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));
10093 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
10094 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
10095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10097 if (r->color_profiles) {
10098 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10099 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10100 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
10101 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10103 if (r->inf_path) {
10104 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10105 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10106 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
10107 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
10108 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
10109 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));
10111 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
10112 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
10113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10115 if (r->core_driver_dependencies) {
10116 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10117 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10118 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
10119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10122 return NDR_ERR_SUCCESS;
10125 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
10127 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
10128 ndr->depth++;
10129 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10130 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10131 ndr->depth++;
10132 if (r->driver_name) {
10133 ndr_print_string(ndr, "driver_name", r->driver_name);
10135 ndr->depth--;
10136 ndr_print_ptr(ndr, "architecture", r->architecture);
10137 ndr->depth++;
10138 if (r->architecture) {
10139 ndr_print_string(ndr, "architecture", r->architecture);
10141 ndr->depth--;
10142 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10143 ndr->depth++;
10144 if (r->driver_path) {
10145 ndr_print_string(ndr, "driver_path", r->driver_path);
10147 ndr->depth--;
10148 ndr_print_ptr(ndr, "data_file", r->data_file);
10149 ndr->depth++;
10150 if (r->data_file) {
10151 ndr_print_string(ndr, "data_file", r->data_file);
10153 ndr->depth--;
10154 ndr_print_ptr(ndr, "config_file", r->config_file);
10155 ndr->depth++;
10156 if (r->config_file) {
10157 ndr_print_string(ndr, "config_file", r->config_file);
10159 ndr->depth--;
10160 ndr_print_ptr(ndr, "help_file", r->help_file);
10161 ndr->depth++;
10162 if (r->help_file) {
10163 ndr_print_string(ndr, "help_file", r->help_file);
10165 ndr->depth--;
10166 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10167 ndr->depth++;
10168 if (r->monitor_name) {
10169 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10171 ndr->depth--;
10172 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10173 ndr->depth++;
10174 if (r->default_datatype) {
10175 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10177 ndr->depth--;
10178 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);
10179 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10180 ndr->depth++;
10181 if (r->dependent_files) {
10182 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10184 ndr->depth--;
10185 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);
10186 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10187 ndr->depth++;
10188 if (r->previous_names) {
10189 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10191 ndr->depth--;
10192 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10193 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10194 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10195 ndr->depth++;
10196 if (r->manufacturer_name) {
10197 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10199 ndr->depth--;
10200 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10201 ndr->depth++;
10202 if (r->manufacturer_url) {
10203 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10205 ndr->depth--;
10206 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10207 ndr->depth++;
10208 if (r->hardware_id) {
10209 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10211 ndr->depth--;
10212 ndr_print_ptr(ndr, "provider", r->provider);
10213 ndr->depth++;
10214 if (r->provider) {
10215 ndr_print_string(ndr, "provider", r->provider);
10217 ndr->depth--;
10218 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10219 ndr->depth++;
10220 if (r->print_processor) {
10221 ndr_print_string(ndr, "print_processor", r->print_processor);
10223 ndr->depth--;
10224 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10225 ndr->depth++;
10226 if (r->vendor_setup) {
10227 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10229 ndr->depth--;
10230 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);
10231 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10232 ndr->depth++;
10233 if (r->color_profiles) {
10234 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
10236 ndr->depth--;
10237 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10238 ndr->depth++;
10239 if (r->inf_path) {
10240 ndr_print_string(ndr, "inf_path", r->inf_path);
10242 ndr->depth--;
10243 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10244 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);
10245 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10246 ndr->depth++;
10247 if (r->core_driver_dependencies) {
10248 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10250 ndr->depth--;
10251 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10252 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10253 ndr->depth--;
10256 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
10258 if (ndr_flags & NDR_SCALARS) {
10259 int level = ndr_push_get_switch_value(ndr, r);
10260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10261 NDR_CHECK(ndr_push_union_align(ndr, 5));
10262 switch (level) {
10263 case 1: {
10264 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
10265 break; }
10267 case 2: {
10268 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
10269 break; }
10271 case 3: {
10272 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
10273 break; }
10275 case 4: {
10276 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
10277 break; }
10279 case 6: {
10280 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
10281 break; }
10283 case 8: {
10284 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
10285 break; }
10287 default:
10288 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10291 if (ndr_flags & NDR_BUFFERS) {
10292 int level = ndr_push_get_switch_value(ndr, r);
10293 switch (level) {
10294 case 1:
10295 if (r->info1) {
10296 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10298 break;
10300 case 2:
10301 if (r->info2) {
10302 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10304 break;
10306 case 3:
10307 if (r->info3) {
10308 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10310 break;
10312 case 4:
10313 if (r->info4) {
10314 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10316 break;
10318 case 6:
10319 if (r->info6) {
10320 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10322 break;
10324 case 8:
10325 if (r->info8) {
10326 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10328 break;
10330 default:
10331 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10334 return NDR_ERR_SUCCESS;
10337 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
10339 int level;
10340 uint32_t _level;
10341 TALLOC_CTX *_mem_save_info1_0;
10342 TALLOC_CTX *_mem_save_info2_0;
10343 TALLOC_CTX *_mem_save_info3_0;
10344 TALLOC_CTX *_mem_save_info4_0;
10345 TALLOC_CTX *_mem_save_info6_0;
10346 TALLOC_CTX *_mem_save_info8_0;
10347 level = ndr_pull_get_switch_value(ndr, r);
10348 if (ndr_flags & NDR_SCALARS) {
10349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10350 if (_level != level) {
10351 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10353 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10354 switch (level) {
10355 case 1: {
10356 uint32_t _ptr_info1;
10357 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
10358 if (_ptr_info1) {
10359 NDR_PULL_ALLOC(ndr, r->info1);
10360 } else {
10361 r->info1 = NULL;
10363 break; }
10365 case 2: {
10366 uint32_t _ptr_info2;
10367 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
10368 if (_ptr_info2) {
10369 NDR_PULL_ALLOC(ndr, r->info2);
10370 } else {
10371 r->info2 = NULL;
10373 break; }
10375 case 3: {
10376 uint32_t _ptr_info3;
10377 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
10378 if (_ptr_info3) {
10379 NDR_PULL_ALLOC(ndr, r->info3);
10380 } else {
10381 r->info3 = NULL;
10383 break; }
10385 case 4: {
10386 uint32_t _ptr_info4;
10387 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
10388 if (_ptr_info4) {
10389 NDR_PULL_ALLOC(ndr, r->info4);
10390 } else {
10391 r->info4 = NULL;
10393 break; }
10395 case 6: {
10396 uint32_t _ptr_info6;
10397 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
10398 if (_ptr_info6) {
10399 NDR_PULL_ALLOC(ndr, r->info6);
10400 } else {
10401 r->info6 = NULL;
10403 break; }
10405 case 8: {
10406 uint32_t _ptr_info8;
10407 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
10408 if (_ptr_info8) {
10409 NDR_PULL_ALLOC(ndr, r->info8);
10410 } else {
10411 r->info8 = NULL;
10413 break; }
10415 default:
10416 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10419 if (ndr_flags & NDR_BUFFERS) {
10420 switch (level) {
10421 case 1:
10422 if (r->info1) {
10423 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10424 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
10425 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
10428 break;
10430 case 2:
10431 if (r->info2) {
10432 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
10433 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
10434 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
10437 break;
10439 case 3:
10440 if (r->info3) {
10441 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
10442 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
10443 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
10446 break;
10448 case 4:
10449 if (r->info4) {
10450 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
10451 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
10452 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
10455 break;
10457 case 6:
10458 if (r->info6) {
10459 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
10460 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
10461 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
10464 break;
10466 case 8:
10467 if (r->info8) {
10468 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
10469 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
10470 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
10473 break;
10475 default:
10476 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10479 return NDR_ERR_SUCCESS;
10482 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
10484 int level;
10485 level = ndr_print_get_switch_value(ndr, r);
10486 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
10487 switch (level) {
10488 case 1:
10489 ndr_print_ptr(ndr, "info1", r->info1);
10490 ndr->depth++;
10491 if (r->info1) {
10492 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
10494 ndr->depth--;
10495 break;
10497 case 2:
10498 ndr_print_ptr(ndr, "info2", r->info2);
10499 ndr->depth++;
10500 if (r->info2) {
10501 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
10503 ndr->depth--;
10504 break;
10506 case 3:
10507 ndr_print_ptr(ndr, "info3", r->info3);
10508 ndr->depth++;
10509 if (r->info3) {
10510 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
10512 ndr->depth--;
10513 break;
10515 case 4:
10516 ndr_print_ptr(ndr, "info4", r->info4);
10517 ndr->depth++;
10518 if (r->info4) {
10519 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
10521 ndr->depth--;
10522 break;
10524 case 6:
10525 ndr_print_ptr(ndr, "info6", r->info6);
10526 ndr->depth++;
10527 if (r->info6) {
10528 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
10530 ndr->depth--;
10531 break;
10533 case 8:
10534 ndr_print_ptr(ndr, "info8", r->info8);
10535 ndr->depth++;
10536 if (r->info8) {
10537 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
10539 ndr->depth--;
10540 break;
10542 default:
10543 ndr_print_bad_level(ndr, name, level);
10547 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
10549 if (ndr_flags & NDR_SCALARS) {
10550 NDR_CHECK(ndr_push_align(ndr, 5));
10551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
10552 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
10553 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10554 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10556 if (ndr_flags & NDR_BUFFERS) {
10557 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10559 return NDR_ERR_SUCCESS;
10562 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
10564 if (ndr_flags & NDR_SCALARS) {
10565 NDR_CHECK(ndr_pull_align(ndr, 5));
10566 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
10567 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
10568 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10569 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10571 if (ndr_flags & NDR_BUFFERS) {
10572 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10574 return NDR_ERR_SUCCESS;
10577 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
10579 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
10580 ndr->depth++;
10581 ndr_print_uint32(ndr, "level", r->level);
10582 ndr_print_set_switch_value(ndr, &r->info, r->level);
10583 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
10584 ndr->depth--;
10587 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
10589 if (ndr_flags & NDR_SCALARS) {
10590 NDR_CHECK(ndr_push_align(ndr, 5));
10592 uint32_t _flags_save_string = ndr->flags;
10593 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10594 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10595 ndr->flags = _flags_save_string;
10597 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10599 if (ndr_flags & NDR_BUFFERS) {
10601 uint32_t _flags_save_string = ndr->flags;
10602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10603 if (r->driver_name) {
10604 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10605 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10607 ndr->flags = _flags_save_string;
10610 return NDR_ERR_SUCCESS;
10613 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
10615 uint32_t _ptr_driver_name;
10616 TALLOC_CTX *_mem_save_driver_name_0;
10617 if (ndr_flags & NDR_SCALARS) {
10618 NDR_CHECK(ndr_pull_align(ndr, 5));
10620 uint32_t _flags_save_string = ndr->flags;
10621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10622 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10623 if (_ptr_driver_name) {
10624 NDR_PULL_ALLOC(ndr, r->driver_name);
10625 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10626 } else {
10627 r->driver_name = NULL;
10629 ndr->flags = _flags_save_string;
10631 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10633 if (ndr_flags & NDR_BUFFERS) {
10635 uint32_t _flags_save_string = ndr->flags;
10636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10637 if (r->driver_name) {
10638 uint32_t _relative_save_offset;
10639 _relative_save_offset = ndr->offset;
10640 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10641 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10642 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10643 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10645 if (ndr->offset > ndr->relative_highest_offset) {
10646 ndr->relative_highest_offset = ndr->offset;
10648 ndr->offset = _relative_save_offset;
10650 ndr->flags = _flags_save_string;
10653 return NDR_ERR_SUCCESS;
10656 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
10658 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
10659 ndr->depth++;
10660 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10661 ndr->depth++;
10662 if (r->driver_name) {
10663 ndr_print_string(ndr, "driver_name", r->driver_name);
10665 ndr->depth--;
10666 ndr->depth--;
10669 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10671 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
10674 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
10676 if (ndr_flags & NDR_SCALARS) {
10677 NDR_CHECK(ndr_push_align(ndr, 5));
10678 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10680 uint32_t _flags_save_string = ndr->flags;
10681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10682 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10683 ndr->flags = _flags_save_string;
10686 uint32_t _flags_save_string = ndr->flags;
10687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10688 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10689 ndr->flags = _flags_save_string;
10692 uint32_t _flags_save_string = ndr->flags;
10693 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10694 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10695 ndr->flags = _flags_save_string;
10698 uint32_t _flags_save_string = ndr->flags;
10699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10700 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10701 ndr->flags = _flags_save_string;
10704 uint32_t _flags_save_string = ndr->flags;
10705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10706 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10707 ndr->flags = _flags_save_string;
10709 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10711 if (ndr_flags & NDR_BUFFERS) {
10713 uint32_t _flags_save_string = ndr->flags;
10714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10715 if (r->driver_name) {
10716 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10717 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10719 ndr->flags = _flags_save_string;
10722 uint32_t _flags_save_string = ndr->flags;
10723 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10724 if (r->architecture) {
10725 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10726 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10728 ndr->flags = _flags_save_string;
10731 uint32_t _flags_save_string = ndr->flags;
10732 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10733 if (r->driver_path) {
10734 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10735 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10737 ndr->flags = _flags_save_string;
10740 uint32_t _flags_save_string = ndr->flags;
10741 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10742 if (r->data_file) {
10743 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10744 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10746 ndr->flags = _flags_save_string;
10749 uint32_t _flags_save_string = ndr->flags;
10750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10751 if (r->config_file) {
10752 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10753 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10755 ndr->flags = _flags_save_string;
10758 return NDR_ERR_SUCCESS;
10761 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
10763 uint32_t _ptr_driver_name;
10764 TALLOC_CTX *_mem_save_driver_name_0;
10765 uint32_t _ptr_architecture;
10766 TALLOC_CTX *_mem_save_architecture_0;
10767 uint32_t _ptr_driver_path;
10768 TALLOC_CTX *_mem_save_driver_path_0;
10769 uint32_t _ptr_data_file;
10770 TALLOC_CTX *_mem_save_data_file_0;
10771 uint32_t _ptr_config_file;
10772 TALLOC_CTX *_mem_save_config_file_0;
10773 if (ndr_flags & NDR_SCALARS) {
10774 NDR_CHECK(ndr_pull_align(ndr, 5));
10775 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10777 uint32_t _flags_save_string = ndr->flags;
10778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10779 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10780 if (_ptr_driver_name) {
10781 NDR_PULL_ALLOC(ndr, r->driver_name);
10782 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10783 } else {
10784 r->driver_name = NULL;
10786 ndr->flags = _flags_save_string;
10789 uint32_t _flags_save_string = ndr->flags;
10790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10792 if (_ptr_architecture) {
10793 NDR_PULL_ALLOC(ndr, r->architecture);
10794 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10795 } else {
10796 r->architecture = NULL;
10798 ndr->flags = _flags_save_string;
10801 uint32_t _flags_save_string = ndr->flags;
10802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10803 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10804 if (_ptr_driver_path) {
10805 NDR_PULL_ALLOC(ndr, r->driver_path);
10806 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10807 } else {
10808 r->driver_path = NULL;
10810 ndr->flags = _flags_save_string;
10813 uint32_t _flags_save_string = ndr->flags;
10814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10816 if (_ptr_data_file) {
10817 NDR_PULL_ALLOC(ndr, r->data_file);
10818 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10819 } else {
10820 r->data_file = NULL;
10822 ndr->flags = _flags_save_string;
10825 uint32_t _flags_save_string = ndr->flags;
10826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10828 if (_ptr_config_file) {
10829 NDR_PULL_ALLOC(ndr, r->config_file);
10830 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10831 } else {
10832 r->config_file = NULL;
10834 ndr->flags = _flags_save_string;
10836 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10838 if (ndr_flags & NDR_BUFFERS) {
10840 uint32_t _flags_save_string = ndr->flags;
10841 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10842 if (r->driver_name) {
10843 uint32_t _relative_save_offset;
10844 _relative_save_offset = ndr->offset;
10845 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10846 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10847 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10848 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10850 if (ndr->offset > ndr->relative_highest_offset) {
10851 ndr->relative_highest_offset = ndr->offset;
10853 ndr->offset = _relative_save_offset;
10855 ndr->flags = _flags_save_string;
10858 uint32_t _flags_save_string = ndr->flags;
10859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10860 if (r->architecture) {
10861 uint32_t _relative_save_offset;
10862 _relative_save_offset = ndr->offset;
10863 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10864 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10865 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10866 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10868 if (ndr->offset > ndr->relative_highest_offset) {
10869 ndr->relative_highest_offset = ndr->offset;
10871 ndr->offset = _relative_save_offset;
10873 ndr->flags = _flags_save_string;
10876 uint32_t _flags_save_string = ndr->flags;
10877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10878 if (r->driver_path) {
10879 uint32_t _relative_save_offset;
10880 _relative_save_offset = ndr->offset;
10881 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10882 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10883 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10884 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10886 if (ndr->offset > ndr->relative_highest_offset) {
10887 ndr->relative_highest_offset = ndr->offset;
10889 ndr->offset = _relative_save_offset;
10891 ndr->flags = _flags_save_string;
10894 uint32_t _flags_save_string = ndr->flags;
10895 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10896 if (r->data_file) {
10897 uint32_t _relative_save_offset;
10898 _relative_save_offset = ndr->offset;
10899 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10900 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10901 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10902 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10904 if (ndr->offset > ndr->relative_highest_offset) {
10905 ndr->relative_highest_offset = ndr->offset;
10907 ndr->offset = _relative_save_offset;
10909 ndr->flags = _flags_save_string;
10912 uint32_t _flags_save_string = ndr->flags;
10913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10914 if (r->config_file) {
10915 uint32_t _relative_save_offset;
10916 _relative_save_offset = ndr->offset;
10917 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10918 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10919 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10920 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10922 if (ndr->offset > ndr->relative_highest_offset) {
10923 ndr->relative_highest_offset = ndr->offset;
10925 ndr->offset = _relative_save_offset;
10927 ndr->flags = _flags_save_string;
10930 return NDR_ERR_SUCCESS;
10933 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10935 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10936 ndr->depth++;
10937 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10938 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10939 ndr->depth++;
10940 if (r->driver_name) {
10941 ndr_print_string(ndr, "driver_name", r->driver_name);
10943 ndr->depth--;
10944 ndr_print_ptr(ndr, "architecture", r->architecture);
10945 ndr->depth++;
10946 if (r->architecture) {
10947 ndr_print_string(ndr, "architecture", r->architecture);
10949 ndr->depth--;
10950 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10951 ndr->depth++;
10952 if (r->driver_path) {
10953 ndr_print_string(ndr, "driver_path", r->driver_path);
10955 ndr->depth--;
10956 ndr_print_ptr(ndr, "data_file", r->data_file);
10957 ndr->depth++;
10958 if (r->data_file) {
10959 ndr_print_string(ndr, "data_file", r->data_file);
10961 ndr->depth--;
10962 ndr_print_ptr(ndr, "config_file", r->config_file);
10963 ndr->depth++;
10964 if (r->config_file) {
10965 ndr_print_string(ndr, "config_file", r->config_file);
10967 ndr->depth--;
10968 ndr->depth--;
10971 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10973 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10976 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10978 if (ndr_flags & NDR_SCALARS) {
10979 NDR_CHECK(ndr_push_align(ndr, 5));
10980 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10982 uint32_t _flags_save_string = ndr->flags;
10983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10984 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10985 ndr->flags = _flags_save_string;
10988 uint32_t _flags_save_string = ndr->flags;
10989 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10990 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10991 ndr->flags = _flags_save_string;
10994 uint32_t _flags_save_string = ndr->flags;
10995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10996 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10997 ndr->flags = _flags_save_string;
11000 uint32_t _flags_save_string = ndr->flags;
11001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11002 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11003 ndr->flags = _flags_save_string;
11006 uint32_t _flags_save_string = ndr->flags;
11007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11008 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11009 ndr->flags = _flags_save_string;
11012 uint32_t _flags_save_string = ndr->flags;
11013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11014 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11015 ndr->flags = _flags_save_string;
11018 uint32_t _flags_save_string_array = ndr->flags;
11019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11020 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11021 ndr->flags = _flags_save_string_array;
11024 uint32_t _flags_save_string = ndr->flags;
11025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11026 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11027 ndr->flags = _flags_save_string;
11030 uint32_t _flags_save_string = ndr->flags;
11031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11032 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11033 ndr->flags = _flags_save_string;
11035 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11037 if (ndr_flags & NDR_BUFFERS) {
11039 uint32_t _flags_save_string = ndr->flags;
11040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11041 if (r->driver_name) {
11042 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11043 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11045 ndr->flags = _flags_save_string;
11048 uint32_t _flags_save_string = ndr->flags;
11049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11050 if (r->architecture) {
11051 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11052 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11054 ndr->flags = _flags_save_string;
11057 uint32_t _flags_save_string = ndr->flags;
11058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11059 if (r->driver_path) {
11060 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11061 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11063 ndr->flags = _flags_save_string;
11066 uint32_t _flags_save_string = ndr->flags;
11067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11068 if (r->data_file) {
11069 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11070 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11072 ndr->flags = _flags_save_string;
11075 uint32_t _flags_save_string = ndr->flags;
11076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11077 if (r->config_file) {
11078 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11079 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11081 ndr->flags = _flags_save_string;
11084 uint32_t _flags_save_string = ndr->flags;
11085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11086 if (r->help_file) {
11087 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11088 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11090 ndr->flags = _flags_save_string;
11093 uint32_t _flags_save_string_array = ndr->flags;
11094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11095 if (r->dependent_files) {
11096 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11097 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11099 ndr->flags = _flags_save_string_array;
11102 uint32_t _flags_save_string = ndr->flags;
11103 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11104 if (r->monitor_name) {
11105 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11106 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
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->default_datatype) {
11114 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11115 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11117 ndr->flags = _flags_save_string;
11120 return NDR_ERR_SUCCESS;
11123 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
11125 uint32_t _ptr_driver_name;
11126 TALLOC_CTX *_mem_save_driver_name_0;
11127 uint32_t _ptr_architecture;
11128 TALLOC_CTX *_mem_save_architecture_0;
11129 uint32_t _ptr_driver_path;
11130 TALLOC_CTX *_mem_save_driver_path_0;
11131 uint32_t _ptr_data_file;
11132 TALLOC_CTX *_mem_save_data_file_0;
11133 uint32_t _ptr_config_file;
11134 TALLOC_CTX *_mem_save_config_file_0;
11135 uint32_t _ptr_help_file;
11136 TALLOC_CTX *_mem_save_help_file_0;
11137 uint32_t _ptr_dependent_files;
11138 TALLOC_CTX *_mem_save_dependent_files_0;
11139 uint32_t _ptr_monitor_name;
11140 TALLOC_CTX *_mem_save_monitor_name_0;
11141 uint32_t _ptr_default_datatype;
11142 TALLOC_CTX *_mem_save_default_datatype_0;
11143 if (ndr_flags & NDR_SCALARS) {
11144 NDR_CHECK(ndr_pull_align(ndr, 5));
11145 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11147 uint32_t _flags_save_string = ndr->flags;
11148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11149 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11150 if (_ptr_driver_name) {
11151 NDR_PULL_ALLOC(ndr, r->driver_name);
11152 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11153 } else {
11154 r->driver_name = NULL;
11156 ndr->flags = _flags_save_string;
11159 uint32_t _flags_save_string = ndr->flags;
11160 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11161 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11162 if (_ptr_architecture) {
11163 NDR_PULL_ALLOC(ndr, r->architecture);
11164 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11165 } else {
11166 r->architecture = NULL;
11168 ndr->flags = _flags_save_string;
11171 uint32_t _flags_save_string = ndr->flags;
11172 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11173 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11174 if (_ptr_driver_path) {
11175 NDR_PULL_ALLOC(ndr, r->driver_path);
11176 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11177 } else {
11178 r->driver_path = NULL;
11180 ndr->flags = _flags_save_string;
11183 uint32_t _flags_save_string = ndr->flags;
11184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11186 if (_ptr_data_file) {
11187 NDR_PULL_ALLOC(ndr, r->data_file);
11188 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11189 } else {
11190 r->data_file = NULL;
11192 ndr->flags = _flags_save_string;
11195 uint32_t _flags_save_string = ndr->flags;
11196 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11197 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11198 if (_ptr_config_file) {
11199 NDR_PULL_ALLOC(ndr, r->config_file);
11200 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11201 } else {
11202 r->config_file = NULL;
11204 ndr->flags = _flags_save_string;
11207 uint32_t _flags_save_string = ndr->flags;
11208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11209 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11210 if (_ptr_help_file) {
11211 NDR_PULL_ALLOC(ndr, r->help_file);
11212 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11213 } else {
11214 r->help_file = NULL;
11216 ndr->flags = _flags_save_string;
11219 uint32_t _flags_save_string_array = ndr->flags;
11220 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11221 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11222 if (_ptr_dependent_files) {
11223 NDR_PULL_ALLOC(ndr, r->dependent_files);
11224 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11225 } else {
11226 r->dependent_files = NULL;
11228 ndr->flags = _flags_save_string_array;
11231 uint32_t _flags_save_string = ndr->flags;
11232 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11233 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11234 if (_ptr_monitor_name) {
11235 NDR_PULL_ALLOC(ndr, r->monitor_name);
11236 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11237 } else {
11238 r->monitor_name = NULL;
11240 ndr->flags = _flags_save_string;
11243 uint32_t _flags_save_string = ndr->flags;
11244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11245 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11246 if (_ptr_default_datatype) {
11247 NDR_PULL_ALLOC(ndr, r->default_datatype);
11248 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11249 } else {
11250 r->default_datatype = NULL;
11252 ndr->flags = _flags_save_string;
11254 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11256 if (ndr_flags & NDR_BUFFERS) {
11258 uint32_t _flags_save_string = ndr->flags;
11259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11260 if (r->driver_name) {
11261 uint32_t _relative_save_offset;
11262 _relative_save_offset = ndr->offset;
11263 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11264 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11265 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11266 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11268 if (ndr->offset > ndr->relative_highest_offset) {
11269 ndr->relative_highest_offset = ndr->offset;
11271 ndr->offset = _relative_save_offset;
11273 ndr->flags = _flags_save_string;
11276 uint32_t _flags_save_string = ndr->flags;
11277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11278 if (r->architecture) {
11279 uint32_t _relative_save_offset;
11280 _relative_save_offset = ndr->offset;
11281 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11282 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11283 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11284 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11285 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11286 if (ndr->offset > ndr->relative_highest_offset) {
11287 ndr->relative_highest_offset = ndr->offset;
11289 ndr->offset = _relative_save_offset;
11291 ndr->flags = _flags_save_string;
11294 uint32_t _flags_save_string = ndr->flags;
11295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11296 if (r->driver_path) {
11297 uint32_t _relative_save_offset;
11298 _relative_save_offset = ndr->offset;
11299 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11300 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11301 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11302 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11303 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11304 if (ndr->offset > ndr->relative_highest_offset) {
11305 ndr->relative_highest_offset = ndr->offset;
11307 ndr->offset = _relative_save_offset;
11309 ndr->flags = _flags_save_string;
11312 uint32_t _flags_save_string = ndr->flags;
11313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11314 if (r->data_file) {
11315 uint32_t _relative_save_offset;
11316 _relative_save_offset = ndr->offset;
11317 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11318 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11319 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11320 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11322 if (ndr->offset > ndr->relative_highest_offset) {
11323 ndr->relative_highest_offset = ndr->offset;
11325 ndr->offset = _relative_save_offset;
11327 ndr->flags = _flags_save_string;
11330 uint32_t _flags_save_string = ndr->flags;
11331 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11332 if (r->config_file) {
11333 uint32_t _relative_save_offset;
11334 _relative_save_offset = ndr->offset;
11335 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11336 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11337 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11338 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11340 if (ndr->offset > ndr->relative_highest_offset) {
11341 ndr->relative_highest_offset = ndr->offset;
11343 ndr->offset = _relative_save_offset;
11345 ndr->flags = _flags_save_string;
11348 uint32_t _flags_save_string = ndr->flags;
11349 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11350 if (r->help_file) {
11351 uint32_t _relative_save_offset;
11352 _relative_save_offset = ndr->offset;
11353 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11354 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11355 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11356 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11358 if (ndr->offset > ndr->relative_highest_offset) {
11359 ndr->relative_highest_offset = ndr->offset;
11361 ndr->offset = _relative_save_offset;
11363 ndr->flags = _flags_save_string;
11366 uint32_t _flags_save_string_array = ndr->flags;
11367 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11368 if (r->dependent_files) {
11369 uint32_t _relative_save_offset;
11370 _relative_save_offset = ndr->offset;
11371 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11372 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11373 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11374 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11375 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11376 if (ndr->offset > ndr->relative_highest_offset) {
11377 ndr->relative_highest_offset = ndr->offset;
11379 ndr->offset = _relative_save_offset;
11381 ndr->flags = _flags_save_string_array;
11384 uint32_t _flags_save_string = ndr->flags;
11385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11386 if (r->monitor_name) {
11387 uint32_t _relative_save_offset;
11388 _relative_save_offset = ndr->offset;
11389 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11390 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11391 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11392 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11394 if (ndr->offset > ndr->relative_highest_offset) {
11395 ndr->relative_highest_offset = ndr->offset;
11397 ndr->offset = _relative_save_offset;
11399 ndr->flags = _flags_save_string;
11402 uint32_t _flags_save_string = ndr->flags;
11403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11404 if (r->default_datatype) {
11405 uint32_t _relative_save_offset;
11406 _relative_save_offset = ndr->offset;
11407 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11408 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11409 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11410 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11412 if (ndr->offset > ndr->relative_highest_offset) {
11413 ndr->relative_highest_offset = ndr->offset;
11415 ndr->offset = _relative_save_offset;
11417 ndr->flags = _flags_save_string;
11420 return NDR_ERR_SUCCESS;
11423 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
11425 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
11426 ndr->depth++;
11427 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11428 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11429 ndr->depth++;
11430 if (r->driver_name) {
11431 ndr_print_string(ndr, "driver_name", r->driver_name);
11433 ndr->depth--;
11434 ndr_print_ptr(ndr, "architecture", r->architecture);
11435 ndr->depth++;
11436 if (r->architecture) {
11437 ndr_print_string(ndr, "architecture", r->architecture);
11439 ndr->depth--;
11440 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11441 ndr->depth++;
11442 if (r->driver_path) {
11443 ndr_print_string(ndr, "driver_path", r->driver_path);
11445 ndr->depth--;
11446 ndr_print_ptr(ndr, "data_file", r->data_file);
11447 ndr->depth++;
11448 if (r->data_file) {
11449 ndr_print_string(ndr, "data_file", r->data_file);
11451 ndr->depth--;
11452 ndr_print_ptr(ndr, "config_file", r->config_file);
11453 ndr->depth++;
11454 if (r->config_file) {
11455 ndr_print_string(ndr, "config_file", r->config_file);
11457 ndr->depth--;
11458 ndr_print_ptr(ndr, "help_file", r->help_file);
11459 ndr->depth++;
11460 if (r->help_file) {
11461 ndr_print_string(ndr, "help_file", r->help_file);
11463 ndr->depth--;
11464 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11465 ndr->depth++;
11466 if (r->dependent_files) {
11467 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11469 ndr->depth--;
11470 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11471 ndr->depth++;
11472 if (r->monitor_name) {
11473 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11475 ndr->depth--;
11476 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11477 ndr->depth++;
11478 if (r->default_datatype) {
11479 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11481 ndr->depth--;
11482 ndr->depth--;
11485 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
11487 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
11490 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
11492 if (ndr_flags & NDR_SCALARS) {
11493 NDR_CHECK(ndr_push_align(ndr, 5));
11494 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11496 uint32_t _flags_save_string = ndr->flags;
11497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11498 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11499 ndr->flags = _flags_save_string;
11502 uint32_t _flags_save_string = ndr->flags;
11503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11504 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11505 ndr->flags = _flags_save_string;
11508 uint32_t _flags_save_string = ndr->flags;
11509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11510 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11511 ndr->flags = _flags_save_string;
11514 uint32_t _flags_save_string = ndr->flags;
11515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11516 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11517 ndr->flags = _flags_save_string;
11520 uint32_t _flags_save_string = ndr->flags;
11521 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11522 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11523 ndr->flags = _flags_save_string;
11526 uint32_t _flags_save_string = ndr->flags;
11527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11528 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11529 ndr->flags = _flags_save_string;
11532 uint32_t _flags_save_string_array = ndr->flags;
11533 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11534 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11535 ndr->flags = _flags_save_string_array;
11538 uint32_t _flags_save_string = ndr->flags;
11539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11540 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11541 ndr->flags = _flags_save_string;
11544 uint32_t _flags_save_string = ndr->flags;
11545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11546 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11547 ndr->flags = _flags_save_string;
11550 uint32_t _flags_save_string_array = ndr->flags;
11551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11552 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11553 ndr->flags = _flags_save_string_array;
11555 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11557 if (ndr_flags & NDR_BUFFERS) {
11559 uint32_t _flags_save_string = ndr->flags;
11560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11561 if (r->driver_name) {
11562 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11563 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11565 ndr->flags = _flags_save_string;
11568 uint32_t _flags_save_string = ndr->flags;
11569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11570 if (r->architecture) {
11571 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11572 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11574 ndr->flags = _flags_save_string;
11577 uint32_t _flags_save_string = ndr->flags;
11578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11579 if (r->driver_path) {
11580 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11581 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11583 ndr->flags = _flags_save_string;
11586 uint32_t _flags_save_string = ndr->flags;
11587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11588 if (r->data_file) {
11589 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11590 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11592 ndr->flags = _flags_save_string;
11595 uint32_t _flags_save_string = ndr->flags;
11596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11597 if (r->config_file) {
11598 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11599 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11601 ndr->flags = _flags_save_string;
11604 uint32_t _flags_save_string = ndr->flags;
11605 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11606 if (r->help_file) {
11607 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11608 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11610 ndr->flags = _flags_save_string;
11613 uint32_t _flags_save_string_array = ndr->flags;
11614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11615 if (r->dependent_files) {
11616 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11617 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11619 ndr->flags = _flags_save_string_array;
11622 uint32_t _flags_save_string = ndr->flags;
11623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11624 if (r->monitor_name) {
11625 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11626 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11628 ndr->flags = _flags_save_string;
11631 uint32_t _flags_save_string = ndr->flags;
11632 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11633 if (r->default_datatype) {
11634 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11635 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11637 ndr->flags = _flags_save_string;
11640 uint32_t _flags_save_string_array = ndr->flags;
11641 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11642 if (r->previous_names) {
11643 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
11644 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11646 ndr->flags = _flags_save_string_array;
11649 return NDR_ERR_SUCCESS;
11652 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
11654 uint32_t _ptr_driver_name;
11655 TALLOC_CTX *_mem_save_driver_name_0;
11656 uint32_t _ptr_architecture;
11657 TALLOC_CTX *_mem_save_architecture_0;
11658 uint32_t _ptr_driver_path;
11659 TALLOC_CTX *_mem_save_driver_path_0;
11660 uint32_t _ptr_data_file;
11661 TALLOC_CTX *_mem_save_data_file_0;
11662 uint32_t _ptr_config_file;
11663 TALLOC_CTX *_mem_save_config_file_0;
11664 uint32_t _ptr_help_file;
11665 TALLOC_CTX *_mem_save_help_file_0;
11666 uint32_t _ptr_dependent_files;
11667 TALLOC_CTX *_mem_save_dependent_files_0;
11668 uint32_t _ptr_monitor_name;
11669 TALLOC_CTX *_mem_save_monitor_name_0;
11670 uint32_t _ptr_default_datatype;
11671 TALLOC_CTX *_mem_save_default_datatype_0;
11672 uint32_t _ptr_previous_names;
11673 TALLOC_CTX *_mem_save_previous_names_0;
11674 if (ndr_flags & NDR_SCALARS) {
11675 NDR_CHECK(ndr_pull_align(ndr, 5));
11676 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11678 uint32_t _flags_save_string = ndr->flags;
11679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11680 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11681 if (_ptr_driver_name) {
11682 NDR_PULL_ALLOC(ndr, r->driver_name);
11683 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11684 } else {
11685 r->driver_name = NULL;
11687 ndr->flags = _flags_save_string;
11690 uint32_t _flags_save_string = ndr->flags;
11691 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11692 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11693 if (_ptr_architecture) {
11694 NDR_PULL_ALLOC(ndr, r->architecture);
11695 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11696 } else {
11697 r->architecture = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11705 if (_ptr_driver_path) {
11706 NDR_PULL_ALLOC(ndr, r->driver_path);
11707 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11708 } else {
11709 r->driver_path = NULL;
11711 ndr->flags = _flags_save_string;
11714 uint32_t _flags_save_string = ndr->flags;
11715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11716 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11717 if (_ptr_data_file) {
11718 NDR_PULL_ALLOC(ndr, r->data_file);
11719 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11720 } else {
11721 r->data_file = NULL;
11723 ndr->flags = _flags_save_string;
11726 uint32_t _flags_save_string = ndr->flags;
11727 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11728 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11729 if (_ptr_config_file) {
11730 NDR_PULL_ALLOC(ndr, r->config_file);
11731 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11732 } else {
11733 r->config_file = NULL;
11735 ndr->flags = _flags_save_string;
11738 uint32_t _flags_save_string = ndr->flags;
11739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11740 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11741 if (_ptr_help_file) {
11742 NDR_PULL_ALLOC(ndr, r->help_file);
11743 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11744 } else {
11745 r->help_file = NULL;
11747 ndr->flags = _flags_save_string;
11750 uint32_t _flags_save_string_array = ndr->flags;
11751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11752 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11753 if (_ptr_dependent_files) {
11754 NDR_PULL_ALLOC(ndr, r->dependent_files);
11755 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11756 } else {
11757 r->dependent_files = NULL;
11759 ndr->flags = _flags_save_string_array;
11762 uint32_t _flags_save_string = ndr->flags;
11763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11764 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11765 if (_ptr_monitor_name) {
11766 NDR_PULL_ALLOC(ndr, r->monitor_name);
11767 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11768 } else {
11769 r->monitor_name = NULL;
11771 ndr->flags = _flags_save_string;
11774 uint32_t _flags_save_string = ndr->flags;
11775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11777 if (_ptr_default_datatype) {
11778 NDR_PULL_ALLOC(ndr, r->default_datatype);
11779 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11780 } else {
11781 r->default_datatype = NULL;
11783 ndr->flags = _flags_save_string;
11786 uint32_t _flags_save_string_array = ndr->flags;
11787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11788 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11789 if (_ptr_previous_names) {
11790 NDR_PULL_ALLOC(ndr, r->previous_names);
11791 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11792 } else {
11793 r->previous_names = NULL;
11795 ndr->flags = _flags_save_string_array;
11797 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11799 if (ndr_flags & NDR_BUFFERS) {
11801 uint32_t _flags_save_string = ndr->flags;
11802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11803 if (r->driver_name) {
11804 uint32_t _relative_save_offset;
11805 _relative_save_offset = ndr->offset;
11806 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11807 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11808 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11809 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11811 if (ndr->offset > ndr->relative_highest_offset) {
11812 ndr->relative_highest_offset = ndr->offset;
11814 ndr->offset = _relative_save_offset;
11816 ndr->flags = _flags_save_string;
11819 uint32_t _flags_save_string = ndr->flags;
11820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11821 if (r->architecture) {
11822 uint32_t _relative_save_offset;
11823 _relative_save_offset = ndr->offset;
11824 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11825 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11826 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11827 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11828 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11829 if (ndr->offset > ndr->relative_highest_offset) {
11830 ndr->relative_highest_offset = ndr->offset;
11832 ndr->offset = _relative_save_offset;
11834 ndr->flags = _flags_save_string;
11837 uint32_t _flags_save_string = ndr->flags;
11838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11839 if (r->driver_path) {
11840 uint32_t _relative_save_offset;
11841 _relative_save_offset = ndr->offset;
11842 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11843 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11844 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11845 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11847 if (ndr->offset > ndr->relative_highest_offset) {
11848 ndr->relative_highest_offset = ndr->offset;
11850 ndr->offset = _relative_save_offset;
11852 ndr->flags = _flags_save_string;
11855 uint32_t _flags_save_string = ndr->flags;
11856 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11857 if (r->data_file) {
11858 uint32_t _relative_save_offset;
11859 _relative_save_offset = ndr->offset;
11860 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11861 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11862 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11863 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11865 if (ndr->offset > ndr->relative_highest_offset) {
11866 ndr->relative_highest_offset = ndr->offset;
11868 ndr->offset = _relative_save_offset;
11870 ndr->flags = _flags_save_string;
11873 uint32_t _flags_save_string = ndr->flags;
11874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11875 if (r->config_file) {
11876 uint32_t _relative_save_offset;
11877 _relative_save_offset = ndr->offset;
11878 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11879 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11880 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11881 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11883 if (ndr->offset > ndr->relative_highest_offset) {
11884 ndr->relative_highest_offset = ndr->offset;
11886 ndr->offset = _relative_save_offset;
11888 ndr->flags = _flags_save_string;
11891 uint32_t _flags_save_string = ndr->flags;
11892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11893 if (r->help_file) {
11894 uint32_t _relative_save_offset;
11895 _relative_save_offset = ndr->offset;
11896 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11897 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11898 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11899 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11901 if (ndr->offset > ndr->relative_highest_offset) {
11902 ndr->relative_highest_offset = ndr->offset;
11904 ndr->offset = _relative_save_offset;
11906 ndr->flags = _flags_save_string;
11909 uint32_t _flags_save_string_array = ndr->flags;
11910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11911 if (r->dependent_files) {
11912 uint32_t _relative_save_offset;
11913 _relative_save_offset = ndr->offset;
11914 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11915 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11916 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11917 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11919 if (ndr->offset > ndr->relative_highest_offset) {
11920 ndr->relative_highest_offset = ndr->offset;
11922 ndr->offset = _relative_save_offset;
11924 ndr->flags = _flags_save_string_array;
11927 uint32_t _flags_save_string = ndr->flags;
11928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11929 if (r->monitor_name) {
11930 uint32_t _relative_save_offset;
11931 _relative_save_offset = ndr->offset;
11932 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11933 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11934 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11935 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11937 if (ndr->offset > ndr->relative_highest_offset) {
11938 ndr->relative_highest_offset = ndr->offset;
11940 ndr->offset = _relative_save_offset;
11942 ndr->flags = _flags_save_string;
11945 uint32_t _flags_save_string = ndr->flags;
11946 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11947 if (r->default_datatype) {
11948 uint32_t _relative_save_offset;
11949 _relative_save_offset = ndr->offset;
11950 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11951 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11952 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11953 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11955 if (ndr->offset > ndr->relative_highest_offset) {
11956 ndr->relative_highest_offset = ndr->offset;
11958 ndr->offset = _relative_save_offset;
11960 ndr->flags = _flags_save_string;
11963 uint32_t _flags_save_string_array = ndr->flags;
11964 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11965 if (r->previous_names) {
11966 uint32_t _relative_save_offset;
11967 _relative_save_offset = ndr->offset;
11968 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11969 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11970 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11971 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11973 if (ndr->offset > ndr->relative_highest_offset) {
11974 ndr->relative_highest_offset = ndr->offset;
11976 ndr->offset = _relative_save_offset;
11978 ndr->flags = _flags_save_string_array;
11981 return NDR_ERR_SUCCESS;
11984 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11986 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11987 ndr->depth++;
11988 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11989 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11990 ndr->depth++;
11991 if (r->driver_name) {
11992 ndr_print_string(ndr, "driver_name", r->driver_name);
11994 ndr->depth--;
11995 ndr_print_ptr(ndr, "architecture", r->architecture);
11996 ndr->depth++;
11997 if (r->architecture) {
11998 ndr_print_string(ndr, "architecture", r->architecture);
12000 ndr->depth--;
12001 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12002 ndr->depth++;
12003 if (r->driver_path) {
12004 ndr_print_string(ndr, "driver_path", r->driver_path);
12006 ndr->depth--;
12007 ndr_print_ptr(ndr, "data_file", r->data_file);
12008 ndr->depth++;
12009 if (r->data_file) {
12010 ndr_print_string(ndr, "data_file", r->data_file);
12012 ndr->depth--;
12013 ndr_print_ptr(ndr, "config_file", r->config_file);
12014 ndr->depth++;
12015 if (r->config_file) {
12016 ndr_print_string(ndr, "config_file", r->config_file);
12018 ndr->depth--;
12019 ndr_print_ptr(ndr, "help_file", r->help_file);
12020 ndr->depth++;
12021 if (r->help_file) {
12022 ndr_print_string(ndr, "help_file", r->help_file);
12024 ndr->depth--;
12025 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12026 ndr->depth++;
12027 if (r->dependent_files) {
12028 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12030 ndr->depth--;
12031 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12032 ndr->depth++;
12033 if (r->monitor_name) {
12034 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12036 ndr->depth--;
12037 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12038 ndr->depth++;
12039 if (r->default_datatype) {
12040 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12042 ndr->depth--;
12043 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12044 ndr->depth++;
12045 if (r->previous_names) {
12046 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12048 ndr->depth--;
12049 ndr->depth--;
12052 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
12054 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
12057 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
12059 if (ndr_flags & NDR_SCALARS) {
12060 NDR_CHECK(ndr_push_align(ndr, 5));
12061 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12063 uint32_t _flags_save_string = ndr->flags;
12064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12065 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12066 ndr->flags = _flags_save_string;
12069 uint32_t _flags_save_string = ndr->flags;
12070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12071 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12072 ndr->flags = _flags_save_string;
12075 uint32_t _flags_save_string = ndr->flags;
12076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12077 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12078 ndr->flags = _flags_save_string;
12081 uint32_t _flags_save_string = ndr->flags;
12082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12083 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12084 ndr->flags = _flags_save_string;
12087 uint32_t _flags_save_string = ndr->flags;
12088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12089 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12090 ndr->flags = _flags_save_string;
12092 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
12093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
12094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
12095 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
12097 if (ndr_flags & NDR_BUFFERS) {
12099 uint32_t _flags_save_string = ndr->flags;
12100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12101 if (r->driver_name) {
12102 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12103 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12105 ndr->flags = _flags_save_string;
12108 uint32_t _flags_save_string = ndr->flags;
12109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12110 if (r->architecture) {
12111 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12112 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12114 ndr->flags = _flags_save_string;
12117 uint32_t _flags_save_string = ndr->flags;
12118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12119 if (r->driver_path) {
12120 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12121 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12123 ndr->flags = _flags_save_string;
12126 uint32_t _flags_save_string = ndr->flags;
12127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12128 if (r->data_file) {
12129 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12130 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12132 ndr->flags = _flags_save_string;
12135 uint32_t _flags_save_string = ndr->flags;
12136 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12137 if (r->config_file) {
12138 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12139 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12141 ndr->flags = _flags_save_string;
12144 return NDR_ERR_SUCCESS;
12147 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
12149 uint32_t _ptr_driver_name;
12150 TALLOC_CTX *_mem_save_driver_name_0;
12151 uint32_t _ptr_architecture;
12152 TALLOC_CTX *_mem_save_architecture_0;
12153 uint32_t _ptr_driver_path;
12154 TALLOC_CTX *_mem_save_driver_path_0;
12155 uint32_t _ptr_data_file;
12156 TALLOC_CTX *_mem_save_data_file_0;
12157 uint32_t _ptr_config_file;
12158 TALLOC_CTX *_mem_save_config_file_0;
12159 if (ndr_flags & NDR_SCALARS) {
12160 NDR_CHECK(ndr_pull_align(ndr, 5));
12161 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12163 uint32_t _flags_save_string = ndr->flags;
12164 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12166 if (_ptr_driver_name) {
12167 NDR_PULL_ALLOC(ndr, r->driver_name);
12168 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12169 } else {
12170 r->driver_name = NULL;
12172 ndr->flags = _flags_save_string;
12175 uint32_t _flags_save_string = ndr->flags;
12176 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12177 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12178 if (_ptr_architecture) {
12179 NDR_PULL_ALLOC(ndr, r->architecture);
12180 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12181 } else {
12182 r->architecture = NULL;
12184 ndr->flags = _flags_save_string;
12187 uint32_t _flags_save_string = ndr->flags;
12188 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12189 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12190 if (_ptr_driver_path) {
12191 NDR_PULL_ALLOC(ndr, r->driver_path);
12192 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12193 } else {
12194 r->driver_path = NULL;
12196 ndr->flags = _flags_save_string;
12199 uint32_t _flags_save_string = ndr->flags;
12200 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12201 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12202 if (_ptr_data_file) {
12203 NDR_PULL_ALLOC(ndr, r->data_file);
12204 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12205 } else {
12206 r->data_file = NULL;
12208 ndr->flags = _flags_save_string;
12211 uint32_t _flags_save_string = ndr->flags;
12212 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12213 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12214 if (_ptr_config_file) {
12215 NDR_PULL_ALLOC(ndr, r->config_file);
12216 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12217 } else {
12218 r->config_file = NULL;
12220 ndr->flags = _flags_save_string;
12222 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
12223 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
12224 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
12225 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12227 if (ndr_flags & NDR_BUFFERS) {
12229 uint32_t _flags_save_string = ndr->flags;
12230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12231 if (r->driver_name) {
12232 uint32_t _relative_save_offset;
12233 _relative_save_offset = ndr->offset;
12234 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12235 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12236 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12237 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12239 if (ndr->offset > ndr->relative_highest_offset) {
12240 ndr->relative_highest_offset = ndr->offset;
12242 ndr->offset = _relative_save_offset;
12244 ndr->flags = _flags_save_string;
12247 uint32_t _flags_save_string = ndr->flags;
12248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12249 if (r->architecture) {
12250 uint32_t _relative_save_offset;
12251 _relative_save_offset = ndr->offset;
12252 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12253 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12254 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12255 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12257 if (ndr->offset > ndr->relative_highest_offset) {
12258 ndr->relative_highest_offset = ndr->offset;
12260 ndr->offset = _relative_save_offset;
12262 ndr->flags = _flags_save_string;
12265 uint32_t _flags_save_string = ndr->flags;
12266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12267 if (r->driver_path) {
12268 uint32_t _relative_save_offset;
12269 _relative_save_offset = ndr->offset;
12270 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12271 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12272 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12273 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12274 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12275 if (ndr->offset > ndr->relative_highest_offset) {
12276 ndr->relative_highest_offset = ndr->offset;
12278 ndr->offset = _relative_save_offset;
12280 ndr->flags = _flags_save_string;
12283 uint32_t _flags_save_string = ndr->flags;
12284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12285 if (r->data_file) {
12286 uint32_t _relative_save_offset;
12287 _relative_save_offset = ndr->offset;
12288 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12289 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12290 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12291 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12293 if (ndr->offset > ndr->relative_highest_offset) {
12294 ndr->relative_highest_offset = ndr->offset;
12296 ndr->offset = _relative_save_offset;
12298 ndr->flags = _flags_save_string;
12301 uint32_t _flags_save_string = ndr->flags;
12302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12303 if (r->config_file) {
12304 uint32_t _relative_save_offset;
12305 _relative_save_offset = ndr->offset;
12306 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12307 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12308 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12309 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12310 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12311 if (ndr->offset > ndr->relative_highest_offset) {
12312 ndr->relative_highest_offset = ndr->offset;
12314 ndr->offset = _relative_save_offset;
12316 ndr->flags = _flags_save_string;
12319 return NDR_ERR_SUCCESS;
12322 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
12324 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
12325 ndr->depth++;
12326 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12327 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12328 ndr->depth++;
12329 if (r->driver_name) {
12330 ndr_print_string(ndr, "driver_name", r->driver_name);
12332 ndr->depth--;
12333 ndr_print_ptr(ndr, "architecture", r->architecture);
12334 ndr->depth++;
12335 if (r->architecture) {
12336 ndr_print_string(ndr, "architecture", r->architecture);
12338 ndr->depth--;
12339 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12340 ndr->depth++;
12341 if (r->driver_path) {
12342 ndr_print_string(ndr, "driver_path", r->driver_path);
12344 ndr->depth--;
12345 ndr_print_ptr(ndr, "data_file", r->data_file);
12346 ndr->depth++;
12347 if (r->data_file) {
12348 ndr_print_string(ndr, "data_file", r->data_file);
12350 ndr->depth--;
12351 ndr_print_ptr(ndr, "config_file", r->config_file);
12352 ndr->depth++;
12353 if (r->config_file) {
12354 ndr_print_string(ndr, "config_file", r->config_file);
12356 ndr->depth--;
12357 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
12358 ndr_print_uint32(ndr, "config_version", r->config_version);
12359 ndr_print_uint32(ndr, "driver_version", r->driver_version);
12360 ndr->depth--;
12363 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
12365 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
12368 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
12370 if (ndr_flags & NDR_SCALARS) {
12371 NDR_CHECK(ndr_push_align(ndr, 8));
12372 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12374 uint32_t _flags_save_string = ndr->flags;
12375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12376 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12377 ndr->flags = _flags_save_string;
12380 uint32_t _flags_save_string = ndr->flags;
12381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12382 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
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_push_relative_ptr1(ndr, r->driver_path));
12389 ndr->flags = _flags_save_string;
12392 uint32_t _flags_save_string = ndr->flags;
12393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12394 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
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_push_relative_ptr1(ndr, r->config_file));
12401 ndr->flags = _flags_save_string;
12404 uint32_t _flags_save_string = ndr->flags;
12405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12406 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12407 ndr->flags = _flags_save_string;
12410 uint32_t _flags_save_string_array = ndr->flags;
12411 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12412 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12413 ndr->flags = _flags_save_string_array;
12416 uint32_t _flags_save_string = ndr->flags;
12417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12418 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
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_push_relative_ptr1(ndr, r->default_datatype));
12425 ndr->flags = _flags_save_string;
12428 uint32_t _flags_save_string_array = ndr->flags;
12429 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12430 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12431 ndr->flags = _flags_save_string_array;
12433 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12434 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12436 uint32_t _flags_save_string = ndr->flags;
12437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12438 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12439 ndr->flags = _flags_save_string;
12442 uint32_t _flags_save_string = ndr->flags;
12443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12444 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12445 ndr->flags = _flags_save_string;
12448 uint32_t _flags_save_string = ndr->flags;
12449 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12450 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12451 ndr->flags = _flags_save_string;
12454 uint32_t _flags_save_string = ndr->flags;
12455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12456 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12457 ndr->flags = _flags_save_string;
12459 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12461 if (ndr_flags & NDR_BUFFERS) {
12463 uint32_t _flags_save_string = ndr->flags;
12464 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12465 if (r->driver_name) {
12466 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12467 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12469 ndr->flags = _flags_save_string;
12472 uint32_t _flags_save_string = ndr->flags;
12473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12474 if (r->architecture) {
12475 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12476 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12478 ndr->flags = _flags_save_string;
12481 uint32_t _flags_save_string = ndr->flags;
12482 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12483 if (r->driver_path) {
12484 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12485 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12487 ndr->flags = _flags_save_string;
12490 uint32_t _flags_save_string = ndr->flags;
12491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12492 if (r->data_file) {
12493 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12494 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12496 ndr->flags = _flags_save_string;
12499 uint32_t _flags_save_string = ndr->flags;
12500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12501 if (r->config_file) {
12502 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12503 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
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 if (r->help_file) {
12511 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
12512 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12514 ndr->flags = _flags_save_string;
12517 uint32_t _flags_save_string_array = ndr->flags;
12518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12519 if (r->dependent_files) {
12520 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
12521 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12523 ndr->flags = _flags_save_string_array;
12526 uint32_t _flags_save_string = ndr->flags;
12527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12528 if (r->monitor_name) {
12529 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12530 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12532 ndr->flags = _flags_save_string;
12535 uint32_t _flags_save_string = ndr->flags;
12536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12537 if (r->default_datatype) {
12538 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
12539 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12541 ndr->flags = _flags_save_string;
12544 uint32_t _flags_save_string_array = ndr->flags;
12545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12546 if (r->previous_names) {
12547 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
12548 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12550 ndr->flags = _flags_save_string_array;
12553 uint32_t _flags_save_string = ndr->flags;
12554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12555 if (r->manufacturer_name) {
12556 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
12557 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12559 ndr->flags = _flags_save_string;
12562 uint32_t _flags_save_string = ndr->flags;
12563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12564 if (r->manufacturer_url) {
12565 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
12566 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12568 ndr->flags = _flags_save_string;
12571 uint32_t _flags_save_string = ndr->flags;
12572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12573 if (r->hardware_id) {
12574 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
12575 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
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->provider) {
12583 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
12584 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12586 ndr->flags = _flags_save_string;
12589 return NDR_ERR_SUCCESS;
12592 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
12594 uint32_t _ptr_driver_name;
12595 TALLOC_CTX *_mem_save_driver_name_0;
12596 uint32_t _ptr_architecture;
12597 TALLOC_CTX *_mem_save_architecture_0;
12598 uint32_t _ptr_driver_path;
12599 TALLOC_CTX *_mem_save_driver_path_0;
12600 uint32_t _ptr_data_file;
12601 TALLOC_CTX *_mem_save_data_file_0;
12602 uint32_t _ptr_config_file;
12603 TALLOC_CTX *_mem_save_config_file_0;
12604 uint32_t _ptr_help_file;
12605 TALLOC_CTX *_mem_save_help_file_0;
12606 uint32_t _ptr_dependent_files;
12607 TALLOC_CTX *_mem_save_dependent_files_0;
12608 uint32_t _ptr_monitor_name;
12609 TALLOC_CTX *_mem_save_monitor_name_0;
12610 uint32_t _ptr_default_datatype;
12611 TALLOC_CTX *_mem_save_default_datatype_0;
12612 uint32_t _ptr_previous_names;
12613 TALLOC_CTX *_mem_save_previous_names_0;
12614 uint32_t _ptr_manufacturer_name;
12615 TALLOC_CTX *_mem_save_manufacturer_name_0;
12616 uint32_t _ptr_manufacturer_url;
12617 TALLOC_CTX *_mem_save_manufacturer_url_0;
12618 uint32_t _ptr_hardware_id;
12619 TALLOC_CTX *_mem_save_hardware_id_0;
12620 uint32_t _ptr_provider;
12621 TALLOC_CTX *_mem_save_provider_0;
12622 if (ndr_flags & NDR_SCALARS) {
12623 NDR_CHECK(ndr_pull_align(ndr, 8));
12624 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12626 uint32_t _flags_save_string = ndr->flags;
12627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12628 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12629 if (_ptr_driver_name) {
12630 NDR_PULL_ALLOC(ndr, r->driver_name);
12631 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12632 } else {
12633 r->driver_name = NULL;
12635 ndr->flags = _flags_save_string;
12638 uint32_t _flags_save_string = ndr->flags;
12639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12640 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12641 if (_ptr_architecture) {
12642 NDR_PULL_ALLOC(ndr, r->architecture);
12643 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12644 } else {
12645 r->architecture = NULL;
12647 ndr->flags = _flags_save_string;
12650 uint32_t _flags_save_string = ndr->flags;
12651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12652 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12653 if (_ptr_driver_path) {
12654 NDR_PULL_ALLOC(ndr, r->driver_path);
12655 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12656 } else {
12657 r->driver_path = NULL;
12659 ndr->flags = _flags_save_string;
12662 uint32_t _flags_save_string = ndr->flags;
12663 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12664 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12665 if (_ptr_data_file) {
12666 NDR_PULL_ALLOC(ndr, r->data_file);
12667 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12668 } else {
12669 r->data_file = NULL;
12671 ndr->flags = _flags_save_string;
12674 uint32_t _flags_save_string = ndr->flags;
12675 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12676 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12677 if (_ptr_config_file) {
12678 NDR_PULL_ALLOC(ndr, r->config_file);
12679 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12680 } else {
12681 r->config_file = NULL;
12683 ndr->flags = _flags_save_string;
12686 uint32_t _flags_save_string = ndr->flags;
12687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12688 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12689 if (_ptr_help_file) {
12690 NDR_PULL_ALLOC(ndr, r->help_file);
12691 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12692 } else {
12693 r->help_file = NULL;
12695 ndr->flags = _flags_save_string;
12698 uint32_t _flags_save_string_array = ndr->flags;
12699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12700 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12701 if (_ptr_dependent_files) {
12702 NDR_PULL_ALLOC(ndr, r->dependent_files);
12703 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12704 } else {
12705 r->dependent_files = NULL;
12707 ndr->flags = _flags_save_string_array;
12710 uint32_t _flags_save_string = ndr->flags;
12711 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12712 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12713 if (_ptr_monitor_name) {
12714 NDR_PULL_ALLOC(ndr, r->monitor_name);
12715 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12716 } else {
12717 r->monitor_name = NULL;
12719 ndr->flags = _flags_save_string;
12722 uint32_t _flags_save_string = ndr->flags;
12723 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12724 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12725 if (_ptr_default_datatype) {
12726 NDR_PULL_ALLOC(ndr, r->default_datatype);
12727 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12728 } else {
12729 r->default_datatype = NULL;
12731 ndr->flags = _flags_save_string;
12734 uint32_t _flags_save_string_array = ndr->flags;
12735 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12736 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12737 if (_ptr_previous_names) {
12738 NDR_PULL_ALLOC(ndr, r->previous_names);
12739 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12740 } else {
12741 r->previous_names = NULL;
12743 ndr->flags = _flags_save_string_array;
12745 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12746 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12748 uint32_t _flags_save_string = ndr->flags;
12749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12750 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12751 if (_ptr_manufacturer_name) {
12752 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12753 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12754 } else {
12755 r->manufacturer_name = NULL;
12757 ndr->flags = _flags_save_string;
12760 uint32_t _flags_save_string = ndr->flags;
12761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12762 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12763 if (_ptr_manufacturer_url) {
12764 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12765 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12766 } else {
12767 r->manufacturer_url = NULL;
12769 ndr->flags = _flags_save_string;
12772 uint32_t _flags_save_string = ndr->flags;
12773 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12774 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12775 if (_ptr_hardware_id) {
12776 NDR_PULL_ALLOC(ndr, r->hardware_id);
12777 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12778 } else {
12779 r->hardware_id = NULL;
12781 ndr->flags = _flags_save_string;
12784 uint32_t _flags_save_string = ndr->flags;
12785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12786 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12787 if (_ptr_provider) {
12788 NDR_PULL_ALLOC(ndr, r->provider);
12789 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12790 } else {
12791 r->provider = NULL;
12793 ndr->flags = _flags_save_string;
12795 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12797 if (ndr_flags & NDR_BUFFERS) {
12799 uint32_t _flags_save_string = ndr->flags;
12800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12801 if (r->driver_name) {
12802 uint32_t _relative_save_offset;
12803 _relative_save_offset = ndr->offset;
12804 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12805 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12806 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12807 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12808 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12809 if (ndr->offset > ndr->relative_highest_offset) {
12810 ndr->relative_highest_offset = ndr->offset;
12812 ndr->offset = _relative_save_offset;
12814 ndr->flags = _flags_save_string;
12817 uint32_t _flags_save_string = ndr->flags;
12818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12819 if (r->architecture) {
12820 uint32_t _relative_save_offset;
12821 _relative_save_offset = ndr->offset;
12822 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12823 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12824 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12825 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12826 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12827 if (ndr->offset > ndr->relative_highest_offset) {
12828 ndr->relative_highest_offset = ndr->offset;
12830 ndr->offset = _relative_save_offset;
12832 ndr->flags = _flags_save_string;
12835 uint32_t _flags_save_string = ndr->flags;
12836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12837 if (r->driver_path) {
12838 uint32_t _relative_save_offset;
12839 _relative_save_offset = ndr->offset;
12840 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12841 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12842 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12843 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12844 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12845 if (ndr->offset > ndr->relative_highest_offset) {
12846 ndr->relative_highest_offset = ndr->offset;
12848 ndr->offset = _relative_save_offset;
12850 ndr->flags = _flags_save_string;
12853 uint32_t _flags_save_string = ndr->flags;
12854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12855 if (r->data_file) {
12856 uint32_t _relative_save_offset;
12857 _relative_save_offset = ndr->offset;
12858 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12859 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12860 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12861 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12863 if (ndr->offset > ndr->relative_highest_offset) {
12864 ndr->relative_highest_offset = ndr->offset;
12866 ndr->offset = _relative_save_offset;
12868 ndr->flags = _flags_save_string;
12871 uint32_t _flags_save_string = ndr->flags;
12872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12873 if (r->config_file) {
12874 uint32_t _relative_save_offset;
12875 _relative_save_offset = ndr->offset;
12876 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12877 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12878 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12879 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12881 if (ndr->offset > ndr->relative_highest_offset) {
12882 ndr->relative_highest_offset = ndr->offset;
12884 ndr->offset = _relative_save_offset;
12886 ndr->flags = _flags_save_string;
12889 uint32_t _flags_save_string = ndr->flags;
12890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12891 if (r->help_file) {
12892 uint32_t _relative_save_offset;
12893 _relative_save_offset = ndr->offset;
12894 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12895 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12896 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12897 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12899 if (ndr->offset > ndr->relative_highest_offset) {
12900 ndr->relative_highest_offset = ndr->offset;
12902 ndr->offset = _relative_save_offset;
12904 ndr->flags = _flags_save_string;
12907 uint32_t _flags_save_string_array = ndr->flags;
12908 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12909 if (r->dependent_files) {
12910 uint32_t _relative_save_offset;
12911 _relative_save_offset = ndr->offset;
12912 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12913 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12914 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12915 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12917 if (ndr->offset > ndr->relative_highest_offset) {
12918 ndr->relative_highest_offset = ndr->offset;
12920 ndr->offset = _relative_save_offset;
12922 ndr->flags = _flags_save_string_array;
12925 uint32_t _flags_save_string = ndr->flags;
12926 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12927 if (r->monitor_name) {
12928 uint32_t _relative_save_offset;
12929 _relative_save_offset = ndr->offset;
12930 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12931 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12932 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12933 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12935 if (ndr->offset > ndr->relative_highest_offset) {
12936 ndr->relative_highest_offset = ndr->offset;
12938 ndr->offset = _relative_save_offset;
12940 ndr->flags = _flags_save_string;
12943 uint32_t _flags_save_string = ndr->flags;
12944 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12945 if (r->default_datatype) {
12946 uint32_t _relative_save_offset;
12947 _relative_save_offset = ndr->offset;
12948 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12949 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12950 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12951 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12953 if (ndr->offset > ndr->relative_highest_offset) {
12954 ndr->relative_highest_offset = ndr->offset;
12956 ndr->offset = _relative_save_offset;
12958 ndr->flags = _flags_save_string;
12961 uint32_t _flags_save_string_array = ndr->flags;
12962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12963 if (r->previous_names) {
12964 uint32_t _relative_save_offset;
12965 _relative_save_offset = ndr->offset;
12966 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12967 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12968 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12969 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12971 if (ndr->offset > ndr->relative_highest_offset) {
12972 ndr->relative_highest_offset = ndr->offset;
12974 ndr->offset = _relative_save_offset;
12976 ndr->flags = _flags_save_string_array;
12979 uint32_t _flags_save_string = ndr->flags;
12980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12981 if (r->manufacturer_name) {
12982 uint32_t _relative_save_offset;
12983 _relative_save_offset = ndr->offset;
12984 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12985 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12986 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12987 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12989 if (ndr->offset > ndr->relative_highest_offset) {
12990 ndr->relative_highest_offset = ndr->offset;
12992 ndr->offset = _relative_save_offset;
12994 ndr->flags = _flags_save_string;
12997 uint32_t _flags_save_string = ndr->flags;
12998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12999 if (r->manufacturer_url) {
13000 uint32_t _relative_save_offset;
13001 _relative_save_offset = ndr->offset;
13002 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13003 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13004 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13005 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13007 if (ndr->offset > ndr->relative_highest_offset) {
13008 ndr->relative_highest_offset = ndr->offset;
13010 ndr->offset = _relative_save_offset;
13012 ndr->flags = _flags_save_string;
13015 uint32_t _flags_save_string = ndr->flags;
13016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13017 if (r->hardware_id) {
13018 uint32_t _relative_save_offset;
13019 _relative_save_offset = ndr->offset;
13020 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13021 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13022 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13023 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13025 if (ndr->offset > ndr->relative_highest_offset) {
13026 ndr->relative_highest_offset = ndr->offset;
13028 ndr->offset = _relative_save_offset;
13030 ndr->flags = _flags_save_string;
13033 uint32_t _flags_save_string = ndr->flags;
13034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13035 if (r->provider) {
13036 uint32_t _relative_save_offset;
13037 _relative_save_offset = ndr->offset;
13038 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13039 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13040 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13041 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13043 if (ndr->offset > ndr->relative_highest_offset) {
13044 ndr->relative_highest_offset = ndr->offset;
13046 ndr->offset = _relative_save_offset;
13048 ndr->flags = _flags_save_string;
13051 return NDR_ERR_SUCCESS;
13054 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
13056 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
13057 ndr->depth++;
13058 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13059 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13060 ndr->depth++;
13061 if (r->driver_name) {
13062 ndr_print_string(ndr, "driver_name", r->driver_name);
13064 ndr->depth--;
13065 ndr_print_ptr(ndr, "architecture", r->architecture);
13066 ndr->depth++;
13067 if (r->architecture) {
13068 ndr_print_string(ndr, "architecture", r->architecture);
13070 ndr->depth--;
13071 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13072 ndr->depth++;
13073 if (r->driver_path) {
13074 ndr_print_string(ndr, "driver_path", r->driver_path);
13076 ndr->depth--;
13077 ndr_print_ptr(ndr, "data_file", r->data_file);
13078 ndr->depth++;
13079 if (r->data_file) {
13080 ndr_print_string(ndr, "data_file", r->data_file);
13082 ndr->depth--;
13083 ndr_print_ptr(ndr, "config_file", r->config_file);
13084 ndr->depth++;
13085 if (r->config_file) {
13086 ndr_print_string(ndr, "config_file", r->config_file);
13088 ndr->depth--;
13089 ndr_print_ptr(ndr, "help_file", r->help_file);
13090 ndr->depth++;
13091 if (r->help_file) {
13092 ndr_print_string(ndr, "help_file", r->help_file);
13094 ndr->depth--;
13095 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13096 ndr->depth++;
13097 if (r->dependent_files) {
13098 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13100 ndr->depth--;
13101 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13102 ndr->depth++;
13103 if (r->monitor_name) {
13104 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13106 ndr->depth--;
13107 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13108 ndr->depth++;
13109 if (r->default_datatype) {
13110 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13112 ndr->depth--;
13113 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13114 ndr->depth++;
13115 if (r->previous_names) {
13116 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13118 ndr->depth--;
13119 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13120 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13121 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13122 ndr->depth++;
13123 if (r->manufacturer_name) {
13124 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13126 ndr->depth--;
13127 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13128 ndr->depth++;
13129 if (r->manufacturer_url) {
13130 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13132 ndr->depth--;
13133 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13134 ndr->depth++;
13135 if (r->hardware_id) {
13136 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13138 ndr->depth--;
13139 ndr_print_ptr(ndr, "provider", r->provider);
13140 ndr->depth++;
13141 if (r->provider) {
13142 ndr_print_string(ndr, "provider", r->provider);
13144 ndr->depth--;
13145 ndr->depth--;
13148 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
13150 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
13153 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
13155 if (ndr_flags & NDR_SCALARS) {
13156 NDR_CHECK(ndr_push_align(ndr, 8));
13157 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13159 uint32_t _flags_save_string = ndr->flags;
13160 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13161 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13162 ndr->flags = _flags_save_string;
13165 uint32_t _flags_save_string = ndr->flags;
13166 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13167 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13168 ndr->flags = _flags_save_string;
13171 uint32_t _flags_save_string = ndr->flags;
13172 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13173 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13174 ndr->flags = _flags_save_string;
13177 uint32_t _flags_save_string = ndr->flags;
13178 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13179 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
13180 ndr->flags = _flags_save_string;
13183 uint32_t _flags_save_string = ndr->flags;
13184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13185 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
13186 ndr->flags = _flags_save_string;
13189 uint32_t _flags_save_string = ndr->flags;
13190 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13191 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
13192 ndr->flags = _flags_save_string;
13195 uint32_t _flags_save_string = ndr->flags;
13196 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13197 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13198 ndr->flags = _flags_save_string;
13201 uint32_t _flags_save_string = ndr->flags;
13202 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13203 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
13204 ndr->flags = _flags_save_string;
13207 uint32_t _flags_save_string_array = ndr->flags;
13208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13209 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
13210 ndr->flags = _flags_save_string_array;
13213 uint32_t _flags_save_string_array = ndr->flags;
13214 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13215 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
13216 ndr->flags = _flags_save_string_array;
13218 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
13219 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
13221 uint32_t _flags_save_string = ndr->flags;
13222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13223 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
13224 ndr->flags = _flags_save_string;
13227 uint32_t _flags_save_string = ndr->flags;
13228 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13229 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
13230 ndr->flags = _flags_save_string;
13233 uint32_t _flags_save_string = ndr->flags;
13234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13235 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
13236 ndr->flags = _flags_save_string;
13239 uint32_t _flags_save_string = ndr->flags;
13240 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13241 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
13242 ndr->flags = _flags_save_string;
13245 uint32_t _flags_save_string = ndr->flags;
13246 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13247 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
13248 ndr->flags = _flags_save_string;
13251 uint32_t _flags_save_string = ndr->flags;
13252 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13253 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
13254 ndr->flags = _flags_save_string;
13257 uint32_t _flags_save_string_array = ndr->flags;
13258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13259 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
13260 ndr->flags = _flags_save_string_array;
13263 uint32_t _flags_save_string = ndr->flags;
13264 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13265 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
13266 ndr->flags = _flags_save_string;
13268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
13270 uint32_t _flags_save_string_array = ndr->flags;
13271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13272 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
13273 ndr->flags = _flags_save_string_array;
13275 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
13276 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
13277 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
13279 if (ndr_flags & NDR_BUFFERS) {
13281 uint32_t _flags_save_string = ndr->flags;
13282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13283 if (r->driver_name) {
13284 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
13285 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13287 ndr->flags = _flags_save_string;
13290 uint32_t _flags_save_string = ndr->flags;
13291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13292 if (r->architecture) {
13293 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
13294 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
13296 ndr->flags = _flags_save_string;
13299 uint32_t _flags_save_string = ndr->flags;
13300 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13301 if (r->driver_path) {
13302 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
13303 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
13305 ndr->flags = _flags_save_string;
13308 uint32_t _flags_save_string = ndr->flags;
13309 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13310 if (r->data_file) {
13311 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
13312 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
13314 ndr->flags = _flags_save_string;
13317 uint32_t _flags_save_string = ndr->flags;
13318 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13319 if (r->config_file) {
13320 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
13321 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13323 ndr->flags = _flags_save_string;
13326 uint32_t _flags_save_string = ndr->flags;
13327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13328 if (r->help_file) {
13329 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
13330 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
13332 ndr->flags = _flags_save_string;
13335 uint32_t _flags_save_string = ndr->flags;
13336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13337 if (r->monitor_name) {
13338 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
13339 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13341 ndr->flags = _flags_save_string;
13344 uint32_t _flags_save_string = ndr->flags;
13345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13346 if (r->default_datatype) {
13347 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
13348 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13350 ndr->flags = _flags_save_string;
13353 uint32_t _flags_save_string_array = ndr->flags;
13354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13355 if (r->dependent_files) {
13356 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
13357 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13359 ndr->flags = _flags_save_string_array;
13362 uint32_t _flags_save_string_array = ndr->flags;
13363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13364 if (r->previous_names) {
13365 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
13366 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
13368 ndr->flags = _flags_save_string_array;
13371 uint32_t _flags_save_string = ndr->flags;
13372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13373 if (r->manufacturer_name) {
13374 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
13375 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
13377 ndr->flags = _flags_save_string;
13380 uint32_t _flags_save_string = ndr->flags;
13381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13382 if (r->manufacturer_url) {
13383 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
13384 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
13386 ndr->flags = _flags_save_string;
13389 uint32_t _flags_save_string = ndr->flags;
13390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13391 if (r->hardware_id) {
13392 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
13393 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
13395 ndr->flags = _flags_save_string;
13398 uint32_t _flags_save_string = ndr->flags;
13399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13400 if (r->provider) {
13401 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
13402 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
13404 ndr->flags = _flags_save_string;
13407 uint32_t _flags_save_string = ndr->flags;
13408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13409 if (r->print_processor) {
13410 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
13411 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
13413 ndr->flags = _flags_save_string;
13416 uint32_t _flags_save_string = ndr->flags;
13417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13418 if (r->vendor_setup) {
13419 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
13420 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
13422 ndr->flags = _flags_save_string;
13425 uint32_t _flags_save_string_array = ndr->flags;
13426 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13427 if (r->color_profiles) {
13428 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
13429 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
13431 ndr->flags = _flags_save_string_array;
13434 uint32_t _flags_save_string = ndr->flags;
13435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13436 if (r->inf_path) {
13437 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
13438 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
13440 ndr->flags = _flags_save_string;
13443 uint32_t _flags_save_string_array = ndr->flags;
13444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13445 if (r->core_driver_dependencies) {
13446 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
13447 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
13449 ndr->flags = _flags_save_string_array;
13452 return NDR_ERR_SUCCESS;
13455 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
13457 uint32_t _ptr_driver_name;
13458 TALLOC_CTX *_mem_save_driver_name_0;
13459 uint32_t _ptr_architecture;
13460 TALLOC_CTX *_mem_save_architecture_0;
13461 uint32_t _ptr_driver_path;
13462 TALLOC_CTX *_mem_save_driver_path_0;
13463 uint32_t _ptr_data_file;
13464 TALLOC_CTX *_mem_save_data_file_0;
13465 uint32_t _ptr_config_file;
13466 TALLOC_CTX *_mem_save_config_file_0;
13467 uint32_t _ptr_help_file;
13468 TALLOC_CTX *_mem_save_help_file_0;
13469 uint32_t _ptr_monitor_name;
13470 TALLOC_CTX *_mem_save_monitor_name_0;
13471 uint32_t _ptr_default_datatype;
13472 TALLOC_CTX *_mem_save_default_datatype_0;
13473 uint32_t _ptr_dependent_files;
13474 TALLOC_CTX *_mem_save_dependent_files_0;
13475 uint32_t _ptr_previous_names;
13476 TALLOC_CTX *_mem_save_previous_names_0;
13477 uint32_t _ptr_manufacturer_name;
13478 TALLOC_CTX *_mem_save_manufacturer_name_0;
13479 uint32_t _ptr_manufacturer_url;
13480 TALLOC_CTX *_mem_save_manufacturer_url_0;
13481 uint32_t _ptr_hardware_id;
13482 TALLOC_CTX *_mem_save_hardware_id_0;
13483 uint32_t _ptr_provider;
13484 TALLOC_CTX *_mem_save_provider_0;
13485 uint32_t _ptr_print_processor;
13486 TALLOC_CTX *_mem_save_print_processor_0;
13487 uint32_t _ptr_vendor_setup;
13488 TALLOC_CTX *_mem_save_vendor_setup_0;
13489 uint32_t _ptr_color_profiles;
13490 TALLOC_CTX *_mem_save_color_profiles_0;
13491 uint32_t _ptr_inf_path;
13492 TALLOC_CTX *_mem_save_inf_path_0;
13493 uint32_t _ptr_core_driver_dependencies;
13494 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
13495 if (ndr_flags & NDR_SCALARS) {
13496 NDR_CHECK(ndr_pull_align(ndr, 8));
13497 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13499 uint32_t _flags_save_string = ndr->flags;
13500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13501 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13502 if (_ptr_driver_name) {
13503 NDR_PULL_ALLOC(ndr, r->driver_name);
13504 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13505 } else {
13506 r->driver_name = NULL;
13508 ndr->flags = _flags_save_string;
13511 uint32_t _flags_save_string = ndr->flags;
13512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13513 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13514 if (_ptr_architecture) {
13515 NDR_PULL_ALLOC(ndr, r->architecture);
13516 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13517 } else {
13518 r->architecture = NULL;
13520 ndr->flags = _flags_save_string;
13523 uint32_t _flags_save_string = ndr->flags;
13524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13525 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13526 if (_ptr_driver_path) {
13527 NDR_PULL_ALLOC(ndr, r->driver_path);
13528 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13529 } else {
13530 r->driver_path = NULL;
13532 ndr->flags = _flags_save_string;
13535 uint32_t _flags_save_string = ndr->flags;
13536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13538 if (_ptr_data_file) {
13539 NDR_PULL_ALLOC(ndr, r->data_file);
13540 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13541 } else {
13542 r->data_file = NULL;
13544 ndr->flags = _flags_save_string;
13547 uint32_t _flags_save_string = ndr->flags;
13548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13549 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13550 if (_ptr_config_file) {
13551 NDR_PULL_ALLOC(ndr, r->config_file);
13552 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13553 } else {
13554 r->config_file = NULL;
13556 ndr->flags = _flags_save_string;
13559 uint32_t _flags_save_string = ndr->flags;
13560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13562 if (_ptr_help_file) {
13563 NDR_PULL_ALLOC(ndr, r->help_file);
13564 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13565 } else {
13566 r->help_file = NULL;
13568 ndr->flags = _flags_save_string;
13571 uint32_t _flags_save_string = ndr->flags;
13572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13573 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13574 if (_ptr_monitor_name) {
13575 NDR_PULL_ALLOC(ndr, r->monitor_name);
13576 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13577 } else {
13578 r->monitor_name = NULL;
13580 ndr->flags = _flags_save_string;
13583 uint32_t _flags_save_string = ndr->flags;
13584 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13585 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13586 if (_ptr_default_datatype) {
13587 NDR_PULL_ALLOC(ndr, r->default_datatype);
13588 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13589 } else {
13590 r->default_datatype = NULL;
13592 ndr->flags = _flags_save_string;
13595 uint32_t _flags_save_string_array = ndr->flags;
13596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13597 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13598 if (_ptr_dependent_files) {
13599 NDR_PULL_ALLOC(ndr, r->dependent_files);
13600 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13601 } else {
13602 r->dependent_files = NULL;
13604 ndr->flags = _flags_save_string_array;
13607 uint32_t _flags_save_string_array = ndr->flags;
13608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13609 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13610 if (_ptr_previous_names) {
13611 NDR_PULL_ALLOC(ndr, r->previous_names);
13612 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13613 } else {
13614 r->previous_names = NULL;
13616 ndr->flags = _flags_save_string_array;
13618 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13619 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13621 uint32_t _flags_save_string = ndr->flags;
13622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13623 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13624 if (_ptr_manufacturer_name) {
13625 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13626 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13627 } else {
13628 r->manufacturer_name = NULL;
13630 ndr->flags = _flags_save_string;
13633 uint32_t _flags_save_string = ndr->flags;
13634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13635 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13636 if (_ptr_manufacturer_url) {
13637 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13638 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13639 } else {
13640 r->manufacturer_url = NULL;
13642 ndr->flags = _flags_save_string;
13645 uint32_t _flags_save_string = ndr->flags;
13646 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13648 if (_ptr_hardware_id) {
13649 NDR_PULL_ALLOC(ndr, r->hardware_id);
13650 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13651 } else {
13652 r->hardware_id = NULL;
13654 ndr->flags = _flags_save_string;
13657 uint32_t _flags_save_string = ndr->flags;
13658 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13660 if (_ptr_provider) {
13661 NDR_PULL_ALLOC(ndr, r->provider);
13662 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13663 } else {
13664 r->provider = NULL;
13666 ndr->flags = _flags_save_string;
13669 uint32_t _flags_save_string = ndr->flags;
13670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13671 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
13672 if (_ptr_print_processor) {
13673 NDR_PULL_ALLOC(ndr, r->print_processor);
13674 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
13675 } else {
13676 r->print_processor = NULL;
13678 ndr->flags = _flags_save_string;
13681 uint32_t _flags_save_string = ndr->flags;
13682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
13684 if (_ptr_vendor_setup) {
13685 NDR_PULL_ALLOC(ndr, r->vendor_setup);
13686 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
13687 } else {
13688 r->vendor_setup = NULL;
13690 ndr->flags = _flags_save_string;
13693 uint32_t _flags_save_string_array = ndr->flags;
13694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
13696 if (_ptr_color_profiles) {
13697 NDR_PULL_ALLOC(ndr, r->color_profiles);
13698 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
13699 } else {
13700 r->color_profiles = NULL;
13702 ndr->flags = _flags_save_string_array;
13705 uint32_t _flags_save_string = ndr->flags;
13706 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13707 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
13708 if (_ptr_inf_path) {
13709 NDR_PULL_ALLOC(ndr, r->inf_path);
13710 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
13711 } else {
13712 r->inf_path = NULL;
13714 ndr->flags = _flags_save_string;
13716 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
13718 uint32_t _flags_save_string_array = ndr->flags;
13719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13720 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
13721 if (_ptr_core_driver_dependencies) {
13722 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
13723 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
13724 } else {
13725 r->core_driver_dependencies = NULL;
13727 ndr->flags = _flags_save_string_array;
13729 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
13730 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
13731 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
13733 if (ndr_flags & NDR_BUFFERS) {
13735 uint32_t _flags_save_string = ndr->flags;
13736 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13737 if (r->driver_name) {
13738 uint32_t _relative_save_offset;
13739 _relative_save_offset = ndr->offset;
13740 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13741 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13742 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13743 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13745 if (ndr->offset > ndr->relative_highest_offset) {
13746 ndr->relative_highest_offset = ndr->offset;
13748 ndr->offset = _relative_save_offset;
13750 ndr->flags = _flags_save_string;
13753 uint32_t _flags_save_string = ndr->flags;
13754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13755 if (r->architecture) {
13756 uint32_t _relative_save_offset;
13757 _relative_save_offset = ndr->offset;
13758 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13759 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13760 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13761 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13763 if (ndr->offset > ndr->relative_highest_offset) {
13764 ndr->relative_highest_offset = ndr->offset;
13766 ndr->offset = _relative_save_offset;
13768 ndr->flags = _flags_save_string;
13771 uint32_t _flags_save_string = ndr->flags;
13772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13773 if (r->driver_path) {
13774 uint32_t _relative_save_offset;
13775 _relative_save_offset = ndr->offset;
13776 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13777 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13778 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13779 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13781 if (ndr->offset > ndr->relative_highest_offset) {
13782 ndr->relative_highest_offset = ndr->offset;
13784 ndr->offset = _relative_save_offset;
13786 ndr->flags = _flags_save_string;
13789 uint32_t _flags_save_string = ndr->flags;
13790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13791 if (r->data_file) {
13792 uint32_t _relative_save_offset;
13793 _relative_save_offset = ndr->offset;
13794 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13795 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13796 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13797 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13799 if (ndr->offset > ndr->relative_highest_offset) {
13800 ndr->relative_highest_offset = ndr->offset;
13802 ndr->offset = _relative_save_offset;
13804 ndr->flags = _flags_save_string;
13807 uint32_t _flags_save_string = ndr->flags;
13808 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13809 if (r->config_file) {
13810 uint32_t _relative_save_offset;
13811 _relative_save_offset = ndr->offset;
13812 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13813 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13814 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13815 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13817 if (ndr->offset > ndr->relative_highest_offset) {
13818 ndr->relative_highest_offset = ndr->offset;
13820 ndr->offset = _relative_save_offset;
13822 ndr->flags = _flags_save_string;
13825 uint32_t _flags_save_string = ndr->flags;
13826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13827 if (r->help_file) {
13828 uint32_t _relative_save_offset;
13829 _relative_save_offset = ndr->offset;
13830 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
13831 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13832 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
13833 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
13834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
13835 if (ndr->offset > ndr->relative_highest_offset) {
13836 ndr->relative_highest_offset = ndr->offset;
13838 ndr->offset = _relative_save_offset;
13840 ndr->flags = _flags_save_string;
13843 uint32_t _flags_save_string = ndr->flags;
13844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13845 if (r->monitor_name) {
13846 uint32_t _relative_save_offset;
13847 _relative_save_offset = ndr->offset;
13848 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13849 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13850 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13851 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13852 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13853 if (ndr->offset > ndr->relative_highest_offset) {
13854 ndr->relative_highest_offset = ndr->offset;
13856 ndr->offset = _relative_save_offset;
13858 ndr->flags = _flags_save_string;
13861 uint32_t _flags_save_string = ndr->flags;
13862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13863 if (r->default_datatype) {
13864 uint32_t _relative_save_offset;
13865 _relative_save_offset = ndr->offset;
13866 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13867 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13868 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13869 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13871 if (ndr->offset > ndr->relative_highest_offset) {
13872 ndr->relative_highest_offset = ndr->offset;
13874 ndr->offset = _relative_save_offset;
13876 ndr->flags = _flags_save_string;
13879 uint32_t _flags_save_string_array = ndr->flags;
13880 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13881 if (r->dependent_files) {
13882 uint32_t _relative_save_offset;
13883 _relative_save_offset = ndr->offset;
13884 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13885 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13886 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13887 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13889 if (ndr->offset > ndr->relative_highest_offset) {
13890 ndr->relative_highest_offset = ndr->offset;
13892 ndr->offset = _relative_save_offset;
13894 ndr->flags = _flags_save_string_array;
13897 uint32_t _flags_save_string_array = ndr->flags;
13898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13899 if (r->previous_names) {
13900 uint32_t _relative_save_offset;
13901 _relative_save_offset = ndr->offset;
13902 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13903 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13904 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13905 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13907 if (ndr->offset > ndr->relative_highest_offset) {
13908 ndr->relative_highest_offset = ndr->offset;
13910 ndr->offset = _relative_save_offset;
13912 ndr->flags = _flags_save_string_array;
13915 uint32_t _flags_save_string = ndr->flags;
13916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13917 if (r->manufacturer_name) {
13918 uint32_t _relative_save_offset;
13919 _relative_save_offset = ndr->offset;
13920 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13921 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13922 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13923 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13925 if (ndr->offset > ndr->relative_highest_offset) {
13926 ndr->relative_highest_offset = ndr->offset;
13928 ndr->offset = _relative_save_offset;
13930 ndr->flags = _flags_save_string;
13933 uint32_t _flags_save_string = ndr->flags;
13934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13935 if (r->manufacturer_url) {
13936 uint32_t _relative_save_offset;
13937 _relative_save_offset = ndr->offset;
13938 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13939 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13940 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13941 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13943 if (ndr->offset > ndr->relative_highest_offset) {
13944 ndr->relative_highest_offset = ndr->offset;
13946 ndr->offset = _relative_save_offset;
13948 ndr->flags = _flags_save_string;
13951 uint32_t _flags_save_string = ndr->flags;
13952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13953 if (r->hardware_id) {
13954 uint32_t _relative_save_offset;
13955 _relative_save_offset = ndr->offset;
13956 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13957 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13958 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13959 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13961 if (ndr->offset > ndr->relative_highest_offset) {
13962 ndr->relative_highest_offset = ndr->offset;
13964 ndr->offset = _relative_save_offset;
13966 ndr->flags = _flags_save_string;
13969 uint32_t _flags_save_string = ndr->flags;
13970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13971 if (r->provider) {
13972 uint32_t _relative_save_offset;
13973 _relative_save_offset = ndr->offset;
13974 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13975 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13976 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13977 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13979 if (ndr->offset > ndr->relative_highest_offset) {
13980 ndr->relative_highest_offset = ndr->offset;
13982 ndr->offset = _relative_save_offset;
13984 ndr->flags = _flags_save_string;
13987 uint32_t _flags_save_string = ndr->flags;
13988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13989 if (r->print_processor) {
13990 uint32_t _relative_save_offset;
13991 _relative_save_offset = ndr->offset;
13992 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
13993 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
13994 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
13995 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
13996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
13997 if (ndr->offset > ndr->relative_highest_offset) {
13998 ndr->relative_highest_offset = ndr->offset;
14000 ndr->offset = _relative_save_offset;
14002 ndr->flags = _flags_save_string;
14005 uint32_t _flags_save_string = ndr->flags;
14006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14007 if (r->vendor_setup) {
14008 uint32_t _relative_save_offset;
14009 _relative_save_offset = ndr->offset;
14010 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
14011 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
14012 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
14013 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
14014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
14015 if (ndr->offset > ndr->relative_highest_offset) {
14016 ndr->relative_highest_offset = ndr->offset;
14018 ndr->offset = _relative_save_offset;
14020 ndr->flags = _flags_save_string;
14023 uint32_t _flags_save_string_array = ndr->flags;
14024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14025 if (r->color_profiles) {
14026 uint32_t _relative_save_offset;
14027 _relative_save_offset = ndr->offset;
14028 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
14029 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
14030 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
14031 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
14032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
14033 if (ndr->offset > ndr->relative_highest_offset) {
14034 ndr->relative_highest_offset = ndr->offset;
14036 ndr->offset = _relative_save_offset;
14038 ndr->flags = _flags_save_string_array;
14041 uint32_t _flags_save_string = ndr->flags;
14042 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14043 if (r->inf_path) {
14044 uint32_t _relative_save_offset;
14045 _relative_save_offset = ndr->offset;
14046 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
14047 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14048 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
14049 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
14050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
14051 if (ndr->offset > ndr->relative_highest_offset) {
14052 ndr->relative_highest_offset = ndr->offset;
14054 ndr->offset = _relative_save_offset;
14056 ndr->flags = _flags_save_string;
14059 uint32_t _flags_save_string_array = ndr->flags;
14060 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14061 if (r->core_driver_dependencies) {
14062 uint32_t _relative_save_offset;
14063 _relative_save_offset = ndr->offset;
14064 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
14065 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
14066 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
14067 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
14068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
14069 if (ndr->offset > ndr->relative_highest_offset) {
14070 ndr->relative_highest_offset = ndr->offset;
14072 ndr->offset = _relative_save_offset;
14074 ndr->flags = _flags_save_string_array;
14077 return NDR_ERR_SUCCESS;
14080 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
14082 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
14083 ndr->depth++;
14084 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14085 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14086 ndr->depth++;
14087 if (r->driver_name) {
14088 ndr_print_string(ndr, "driver_name", r->driver_name);
14090 ndr->depth--;
14091 ndr_print_ptr(ndr, "architecture", r->architecture);
14092 ndr->depth++;
14093 if (r->architecture) {
14094 ndr_print_string(ndr, "architecture", r->architecture);
14096 ndr->depth--;
14097 ndr_print_ptr(ndr, "driver_path", r->driver_path);
14098 ndr->depth++;
14099 if (r->driver_path) {
14100 ndr_print_string(ndr, "driver_path", r->driver_path);
14102 ndr->depth--;
14103 ndr_print_ptr(ndr, "data_file", r->data_file);
14104 ndr->depth++;
14105 if (r->data_file) {
14106 ndr_print_string(ndr, "data_file", r->data_file);
14108 ndr->depth--;
14109 ndr_print_ptr(ndr, "config_file", r->config_file);
14110 ndr->depth++;
14111 if (r->config_file) {
14112 ndr_print_string(ndr, "config_file", r->config_file);
14114 ndr->depth--;
14115 ndr_print_ptr(ndr, "help_file", r->help_file);
14116 ndr->depth++;
14117 if (r->help_file) {
14118 ndr_print_string(ndr, "help_file", r->help_file);
14120 ndr->depth--;
14121 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14122 ndr->depth++;
14123 if (r->monitor_name) {
14124 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14126 ndr->depth--;
14127 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14128 ndr->depth++;
14129 if (r->default_datatype) {
14130 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14132 ndr->depth--;
14133 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
14134 ndr->depth++;
14135 if (r->dependent_files) {
14136 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
14138 ndr->depth--;
14139 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14140 ndr->depth++;
14141 if (r->previous_names) {
14142 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14144 ndr->depth--;
14145 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14146 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14147 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14148 ndr->depth++;
14149 if (r->manufacturer_name) {
14150 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14152 ndr->depth--;
14153 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14154 ndr->depth++;
14155 if (r->manufacturer_url) {
14156 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14158 ndr->depth--;
14159 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14160 ndr->depth++;
14161 if (r->hardware_id) {
14162 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14164 ndr->depth--;
14165 ndr_print_ptr(ndr, "provider", r->provider);
14166 ndr->depth++;
14167 if (r->provider) {
14168 ndr_print_string(ndr, "provider", r->provider);
14170 ndr->depth--;
14171 ndr_print_ptr(ndr, "print_processor", r->print_processor);
14172 ndr->depth++;
14173 if (r->print_processor) {
14174 ndr_print_string(ndr, "print_processor", r->print_processor);
14176 ndr->depth--;
14177 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
14178 ndr->depth++;
14179 if (r->vendor_setup) {
14180 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
14182 ndr->depth--;
14183 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
14184 ndr->depth++;
14185 if (r->color_profiles) {
14186 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
14188 ndr->depth--;
14189 ndr_print_ptr(ndr, "inf_path", r->inf_path);
14190 ndr->depth++;
14191 if (r->inf_path) {
14192 ndr_print_string(ndr, "inf_path", r->inf_path);
14194 ndr->depth--;
14195 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
14196 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14197 ndr->depth++;
14198 if (r->core_driver_dependencies) {
14199 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14201 ndr->depth--;
14202 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
14203 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
14204 ndr->depth--;
14207 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
14209 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
14212 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
14214 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
14215 return NDR_ERR_SUCCESS;
14218 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
14220 uint32_t v;
14221 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
14222 *r = v;
14223 return NDR_ERR_SUCCESS;
14226 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
14228 const char *val = NULL;
14230 switch (r) {
14231 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
14232 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
14233 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
14234 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
14235 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
14237 ndr_print_enum(ndr, name, "ENUM", val, r);
14240 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
14242 if (ndr_flags & NDR_SCALARS) {
14243 NDR_CHECK(ndr_push_align(ndr, 5));
14245 uint32_t _flags_save_string = ndr->flags;
14246 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14247 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
14248 ndr->flags = _flags_save_string;
14250 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
14251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
14252 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14254 if (ndr_flags & NDR_BUFFERS) {
14256 uint32_t _flags_save_string = ndr->flags;
14257 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14258 if (r->file_name) {
14259 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
14260 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
14262 ndr->flags = _flags_save_string;
14265 return NDR_ERR_SUCCESS;
14268 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
14270 uint32_t _ptr_file_name;
14271 TALLOC_CTX *_mem_save_file_name_0;
14272 if (ndr_flags & NDR_SCALARS) {
14273 NDR_CHECK(ndr_pull_align(ndr, 5));
14275 uint32_t _flags_save_string = ndr->flags;
14276 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14277 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
14278 if (_ptr_file_name) {
14279 NDR_PULL_ALLOC(ndr, r->file_name);
14280 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
14281 } else {
14282 r->file_name = NULL;
14284 ndr->flags = _flags_save_string;
14286 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
14287 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
14288 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14290 if (ndr_flags & NDR_BUFFERS) {
14292 uint32_t _flags_save_string = ndr->flags;
14293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14294 if (r->file_name) {
14295 uint32_t _relative_save_offset;
14296 _relative_save_offset = ndr->offset;
14297 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
14298 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14299 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
14300 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
14301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
14302 if (ndr->offset > ndr->relative_highest_offset) {
14303 ndr->relative_highest_offset = ndr->offset;
14305 ndr->offset = _relative_save_offset;
14307 ndr->flags = _flags_save_string;
14310 return NDR_ERR_SUCCESS;
14313 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
14315 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
14316 ndr->depth++;
14317 ndr_print_ptr(ndr, "file_name", r->file_name);
14318 ndr->depth++;
14319 if (r->file_name) {
14320 ndr_print_string(ndr, "file_name", r->file_name);
14322 ndr->depth--;
14323 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
14324 ndr_print_uint32(ndr, "file_version", r->file_version);
14325 ndr->depth--;
14328 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
14330 uint32_t cntr_file_info_1;
14331 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
14332 ndr->depth++;
14333 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14334 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14335 ndr->depth++;
14336 if (r->driver_name) {
14337 ndr_print_string(ndr, "driver_name", r->driver_name);
14339 ndr->depth--;
14340 ndr_print_ptr(ndr, "architecture", r->architecture);
14341 ndr->depth++;
14342 if (r->architecture) {
14343 ndr_print_string(ndr, "architecture", r->architecture);
14345 ndr->depth--;
14346 ndr_print_ptr(ndr, "file_info", r->file_info);
14347 ndr->depth++;
14348 if (r->file_info) {
14349 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
14350 ndr->depth++;
14351 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
14352 char *idx_1=NULL;
14353 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
14354 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
14355 free(idx_1);
14358 ndr->depth--;
14360 ndr->depth--;
14361 ndr_print_uint32(ndr, "file_count", r->file_count);
14362 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14363 ndr->depth++;
14364 if (r->monitor_name) {
14365 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14367 ndr->depth--;
14368 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14369 ndr->depth++;
14370 if (r->default_datatype) {
14371 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14373 ndr->depth--;
14374 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14375 ndr->depth++;
14376 if (r->previous_names) {
14377 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14379 ndr->depth--;
14380 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14381 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14382 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14383 ndr->depth++;
14384 if (r->manufacturer_name) {
14385 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14387 ndr->depth--;
14388 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14389 ndr->depth++;
14390 if (r->manufacturer_url) {
14391 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14393 ndr->depth--;
14394 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14395 ndr->depth++;
14396 if (r->hardware_id) {
14397 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14399 ndr->depth--;
14400 ndr_print_ptr(ndr, "provider", r->provider);
14401 ndr->depth++;
14402 if (r->provider) {
14403 ndr_print_string(ndr, "provider", r->provider);
14405 ndr->depth--;
14406 ndr->depth--;
14409 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
14411 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
14414 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
14416 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14417 if (ndr_flags & NDR_SCALARS) {
14418 int level = ndr_push_get_switch_value(ndr, r);
14419 NDR_CHECK(ndr_push_union_align(ndr, 8));
14420 switch (level) {
14421 case 1: {
14422 NDR_CHECK(ndr_push_align(ndr, 5));
14423 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14424 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14425 break; }
14427 case 2: {
14428 NDR_CHECK(ndr_push_align(ndr, 5));
14429 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14430 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14431 break; }
14433 case 3: {
14434 NDR_CHECK(ndr_push_align(ndr, 5));
14435 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14436 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14437 break; }
14439 case 4: {
14440 NDR_CHECK(ndr_push_align(ndr, 5));
14441 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14442 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14443 break; }
14445 case 5: {
14446 NDR_CHECK(ndr_push_align(ndr, 5));
14447 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14448 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14449 break; }
14451 case 6: {
14452 NDR_CHECK(ndr_push_align(ndr, 8));
14453 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14454 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14455 break; }
14457 case 8: {
14458 NDR_CHECK(ndr_push_align(ndr, 8));
14459 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14460 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14461 break; }
14463 case 101: {
14464 NDR_CHECK(ndr_push_align(ndr, 8));
14465 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14466 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14467 break; }
14469 default: {
14470 break; }
14474 if (ndr_flags & NDR_BUFFERS) {
14475 int level = ndr_push_get_switch_value(ndr, r);
14476 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14477 switch (level) {
14478 case 1:
14479 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14480 break;
14482 case 2:
14483 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14484 break;
14486 case 3:
14487 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14488 break;
14490 case 4:
14491 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14492 break;
14494 case 5:
14495 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14496 break;
14498 case 6:
14499 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14500 break;
14502 case 8:
14503 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14504 break;
14506 case 101:
14507 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14508 break;
14510 default:
14511 break;
14515 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14516 return NDR_ERR_SUCCESS;
14519 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
14521 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14522 int level;
14523 level = ndr_pull_get_switch_value(ndr, r);
14524 if (ndr_flags & NDR_SCALARS) {
14525 NDR_CHECK(ndr_pull_union_align(ndr, 8));
14526 switch (level) {
14527 case 1: {
14528 NDR_CHECK(ndr_pull_align(ndr, 5));
14529 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14530 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14531 break; }
14533 case 2: {
14534 NDR_CHECK(ndr_pull_align(ndr, 5));
14535 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14536 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14537 break; }
14539 case 3: {
14540 NDR_CHECK(ndr_pull_align(ndr, 5));
14541 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14542 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14543 break; }
14545 case 4: {
14546 NDR_CHECK(ndr_pull_align(ndr, 5));
14547 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14548 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14549 break; }
14551 case 5: {
14552 NDR_CHECK(ndr_pull_align(ndr, 5));
14553 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14554 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14555 break; }
14557 case 6: {
14558 NDR_CHECK(ndr_pull_align(ndr, 8));
14559 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14560 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14561 break; }
14563 case 8: {
14564 NDR_CHECK(ndr_pull_align(ndr, 8));
14565 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14566 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14567 break; }
14569 case 101: {
14570 NDR_CHECK(ndr_pull_align(ndr, 8));
14571 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14572 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14573 break; }
14575 default: {
14576 break; }
14580 if (ndr_flags & NDR_BUFFERS) {
14581 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14582 switch (level) {
14583 case 1:
14584 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14585 break;
14587 case 2:
14588 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14589 break;
14591 case 3:
14592 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14593 break;
14595 case 4:
14596 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14597 break;
14599 case 5:
14600 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14601 break;
14603 case 6:
14604 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14605 break;
14607 case 8:
14608 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14609 break;
14611 case 101:
14612 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14613 break;
14615 default:
14616 break;
14620 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14621 return NDR_ERR_SUCCESS;
14624 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
14626 int level;
14627 level = ndr_print_get_switch_value(ndr, r);
14628 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
14629 switch (level) {
14630 case 1:
14631 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
14632 break;
14634 case 2:
14635 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
14636 break;
14638 case 3:
14639 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
14640 break;
14642 case 4:
14643 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
14644 break;
14646 case 5:
14647 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
14648 break;
14650 case 6:
14651 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
14652 break;
14654 case 8:
14655 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
14656 break;
14658 case 101:
14659 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
14660 break;
14662 default:
14663 break;
14668 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14670 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
14673 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
14675 if (ndr_flags & NDR_SCALARS) {
14676 NDR_CHECK(ndr_push_align(ndr, 4));
14678 uint32_t _flags_save_string = ndr->flags;
14679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14680 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14681 ndr->flags = _flags_save_string;
14683 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
14685 if (ndr_flags & NDR_BUFFERS) {
14687 return NDR_ERR_SUCCESS;
14690 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
14692 if (ndr_flags & NDR_SCALARS) {
14693 NDR_CHECK(ndr_pull_align(ndr, 4));
14695 uint32_t _flags_save_string = ndr->flags;
14696 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14697 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14698 ndr->flags = _flags_save_string;
14700 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
14702 if (ndr_flags & NDR_BUFFERS) {
14704 return NDR_ERR_SUCCESS;
14707 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
14709 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
14710 ndr->depth++;
14711 ndr_print_string(ndr, "directory_name", r->directory_name);
14712 ndr->depth--;
14715 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14717 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
14720 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
14722 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14723 if (ndr_flags & NDR_SCALARS) {
14724 int level = ndr_push_get_switch_value(ndr, r);
14725 NDR_CHECK(ndr_push_union_align(ndr, 4));
14726 switch (level) {
14727 case 1: {
14728 NDR_CHECK(ndr_push_align(ndr, 4));
14729 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14730 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14731 break; }
14733 default: {
14734 NDR_CHECK(ndr_push_align(ndr, 4));
14735 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14736 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14737 break; }
14741 if (ndr_flags & NDR_BUFFERS) {
14742 int level = ndr_push_get_switch_value(ndr, r);
14743 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14744 switch (level) {
14745 case 1:
14746 break;
14748 default:
14749 break;
14753 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14754 return NDR_ERR_SUCCESS;
14757 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
14759 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14760 int level;
14761 level = ndr_pull_get_switch_value(ndr, r);
14762 if (ndr_flags & NDR_SCALARS) {
14763 NDR_CHECK(ndr_pull_union_align(ndr, 4));
14764 switch (level) {
14765 case 1: {
14766 NDR_CHECK(ndr_pull_align(ndr, 4));
14767 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14768 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14769 break; }
14771 default: {
14772 NDR_CHECK(ndr_pull_align(ndr, 4));
14773 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14774 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14775 break; }
14779 if (ndr_flags & NDR_BUFFERS) {
14780 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14781 switch (level) {
14782 case 1:
14783 break;
14785 default:
14786 break;
14790 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14791 return NDR_ERR_SUCCESS;
14794 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
14796 int level;
14797 level = ndr_print_get_switch_value(ndr, r);
14798 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
14799 switch (level) {
14800 case 1:
14801 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14802 break;
14804 default:
14805 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14806 break;
14811 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14813 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
14816 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
14818 if (ndr_flags & NDR_SCALARS) {
14819 NDR_CHECK(ndr_push_align(ndr, 5));
14821 uint32_t _flags_save_string = ndr->flags;
14822 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14823 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
14824 ndr->flags = _flags_save_string;
14826 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14828 if (ndr_flags & NDR_BUFFERS) {
14830 uint32_t _flags_save_string = ndr->flags;
14831 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14832 if (r->print_processor_name) {
14833 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
14834 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
14836 ndr->flags = _flags_save_string;
14839 return NDR_ERR_SUCCESS;
14842 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
14844 uint32_t _ptr_print_processor_name;
14845 TALLOC_CTX *_mem_save_print_processor_name_0;
14846 if (ndr_flags & NDR_SCALARS) {
14847 NDR_CHECK(ndr_pull_align(ndr, 5));
14849 uint32_t _flags_save_string = ndr->flags;
14850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14851 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
14852 if (_ptr_print_processor_name) {
14853 NDR_PULL_ALLOC(ndr, r->print_processor_name);
14854 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
14855 } else {
14856 r->print_processor_name = NULL;
14858 ndr->flags = _flags_save_string;
14860 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14862 if (ndr_flags & NDR_BUFFERS) {
14864 uint32_t _flags_save_string = ndr->flags;
14865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14866 if (r->print_processor_name) {
14867 uint32_t _relative_save_offset;
14868 _relative_save_offset = ndr->offset;
14869 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
14870 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14871 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
14872 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
14873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
14874 if (ndr->offset > ndr->relative_highest_offset) {
14875 ndr->relative_highest_offset = ndr->offset;
14877 ndr->offset = _relative_save_offset;
14879 ndr->flags = _flags_save_string;
14882 return NDR_ERR_SUCCESS;
14885 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
14887 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
14888 ndr->depth++;
14889 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
14890 ndr->depth++;
14891 if (r->print_processor_name) {
14892 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
14894 ndr->depth--;
14895 ndr->depth--;
14898 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14900 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
14903 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
14905 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14906 if (ndr_flags & NDR_SCALARS) {
14907 int level = ndr_push_get_switch_value(ndr, r);
14908 NDR_CHECK(ndr_push_union_align(ndr, 5));
14909 switch (level) {
14910 case 1: {
14911 NDR_CHECK(ndr_push_align(ndr, 5));
14912 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14913 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14914 break; }
14916 default: {
14917 break; }
14921 if (ndr_flags & NDR_BUFFERS) {
14922 int level = ndr_push_get_switch_value(ndr, r);
14923 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14924 switch (level) {
14925 case 1:
14926 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14927 break;
14929 default:
14930 break;
14934 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14935 return NDR_ERR_SUCCESS;
14938 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
14940 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14941 int level;
14942 level = ndr_pull_get_switch_value(ndr, r);
14943 if (ndr_flags & NDR_SCALARS) {
14944 NDR_CHECK(ndr_pull_union_align(ndr, 5));
14945 switch (level) {
14946 case 1: {
14947 NDR_CHECK(ndr_pull_align(ndr, 5));
14948 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14949 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14950 break; }
14952 default: {
14953 break; }
14957 if (ndr_flags & NDR_BUFFERS) {
14958 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14959 switch (level) {
14960 case 1:
14961 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14962 break;
14964 default:
14965 break;
14969 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14970 return NDR_ERR_SUCCESS;
14973 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
14975 int level;
14976 level = ndr_print_get_switch_value(ndr, r);
14977 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
14978 switch (level) {
14979 case 1:
14980 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
14981 break;
14983 default:
14984 break;
14989 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14991 if (ndr_flags & NDR_SCALARS) {
14992 NDR_CHECK(ndr_push_align(ndr, 4));
14994 uint32_t _flags_save_string = ndr->flags;
14995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14996 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14997 ndr->flags = _flags_save_string;
14999 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15001 if (ndr_flags & NDR_BUFFERS) {
15003 return NDR_ERR_SUCCESS;
15006 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
15008 if (ndr_flags & NDR_SCALARS) {
15009 NDR_CHECK(ndr_pull_align(ndr, 4));
15011 uint32_t _flags_save_string = ndr->flags;
15012 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15013 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
15014 ndr->flags = _flags_save_string;
15016 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15018 if (ndr_flags & NDR_BUFFERS) {
15020 return NDR_ERR_SUCCESS;
15023 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15025 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
15026 ndr->depth++;
15027 ndr_print_string(ndr, "directory_name", r->directory_name);
15028 ndr->depth--;
15031 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15033 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
15036 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
15038 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15039 if (ndr_flags & NDR_SCALARS) {
15040 int level = ndr_push_get_switch_value(ndr, r);
15041 NDR_CHECK(ndr_push_union_align(ndr, 4));
15042 switch (level) {
15043 case 1: {
15044 NDR_CHECK(ndr_push_align(ndr, 4));
15045 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15046 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15047 break; }
15049 default: {
15050 NDR_CHECK(ndr_push_align(ndr, 4));
15051 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15052 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15053 break; }
15057 if (ndr_flags & NDR_BUFFERS) {
15058 int level = ndr_push_get_switch_value(ndr, r);
15059 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15060 switch (level) {
15061 case 1:
15062 break;
15064 default:
15065 break;
15069 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15070 return NDR_ERR_SUCCESS;
15073 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
15075 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15076 int level;
15077 level = ndr_pull_get_switch_value(ndr, r);
15078 if (ndr_flags & NDR_SCALARS) {
15079 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15080 switch (level) {
15081 case 1: {
15082 NDR_CHECK(ndr_pull_align(ndr, 4));
15083 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15084 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15085 break; }
15087 default: {
15088 NDR_CHECK(ndr_pull_align(ndr, 4));
15089 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15090 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15091 break; }
15095 if (ndr_flags & NDR_BUFFERS) {
15096 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15097 switch (level) {
15098 case 1:
15099 break;
15101 default:
15102 break;
15106 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15107 return NDR_ERR_SUCCESS;
15110 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
15112 int level;
15113 level = ndr_print_get_switch_value(ndr, r);
15114 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
15115 switch (level) {
15116 case 1:
15117 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15118 break;
15120 default:
15121 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15122 break;
15127 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15129 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
15132 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
15134 if (ndr_flags & NDR_SCALARS) {
15135 NDR_CHECK(ndr_push_align(ndr, 5));
15136 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
15137 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
15138 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
15139 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15141 if (ndr_flags & NDR_BUFFERS) {
15142 if (r->document_name) {
15143 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15144 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15145 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15146 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15148 if (r->output_file) {
15149 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15150 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15151 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15152 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15154 if (r->datatype) {
15155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15156 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15157 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15158 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15161 return NDR_ERR_SUCCESS;
15164 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
15166 uint32_t _ptr_document_name;
15167 TALLOC_CTX *_mem_save_document_name_0;
15168 uint32_t _ptr_output_file;
15169 TALLOC_CTX *_mem_save_output_file_0;
15170 uint32_t _ptr_datatype;
15171 TALLOC_CTX *_mem_save_datatype_0;
15172 if (ndr_flags & NDR_SCALARS) {
15173 NDR_CHECK(ndr_pull_align(ndr, 5));
15174 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
15175 if (_ptr_document_name) {
15176 NDR_PULL_ALLOC(ndr, r->document_name);
15177 } else {
15178 r->document_name = NULL;
15180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
15181 if (_ptr_output_file) {
15182 NDR_PULL_ALLOC(ndr, r->output_file);
15183 } else {
15184 r->output_file = NULL;
15186 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
15187 if (_ptr_datatype) {
15188 NDR_PULL_ALLOC(ndr, r->datatype);
15189 } else {
15190 r->datatype = NULL;
15192 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15194 if (ndr_flags & NDR_BUFFERS) {
15195 if (r->document_name) {
15196 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15197 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
15198 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
15199 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
15200 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
15201 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));
15203 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
15204 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
15205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
15207 if (r->output_file) {
15208 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15209 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
15210 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
15211 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
15212 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
15213 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));
15215 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
15216 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
15217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
15219 if (r->datatype) {
15220 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15221 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
15222 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
15223 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
15224 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
15225 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));
15227 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
15228 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
15229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
15232 return NDR_ERR_SUCCESS;
15235 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
15237 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
15238 ndr->depth++;
15239 ndr_print_ptr(ndr, "document_name", r->document_name);
15240 ndr->depth++;
15241 if (r->document_name) {
15242 ndr_print_string(ndr, "document_name", r->document_name);
15244 ndr->depth--;
15245 ndr_print_ptr(ndr, "output_file", r->output_file);
15246 ndr->depth++;
15247 if (r->output_file) {
15248 ndr_print_string(ndr, "output_file", r->output_file);
15250 ndr->depth--;
15251 ndr_print_ptr(ndr, "datatype", r->datatype);
15252 ndr->depth++;
15253 if (r->datatype) {
15254 ndr_print_string(ndr, "datatype", r->datatype);
15256 ndr->depth--;
15257 ndr->depth--;
15260 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
15262 if (ndr_flags & NDR_SCALARS) {
15263 int level = ndr_push_get_switch_value(ndr, r);
15264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15265 NDR_CHECK(ndr_push_union_align(ndr, 5));
15266 switch (level) {
15267 case 1: {
15268 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15269 break; }
15271 case 2: {
15272 break; }
15274 case 3: {
15275 break; }
15277 default: {
15278 break; }
15282 if (ndr_flags & NDR_BUFFERS) {
15283 int level = ndr_push_get_switch_value(ndr, r);
15284 switch (level) {
15285 case 1:
15286 if (r->info1) {
15287 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15289 break;
15291 case 2:
15292 break;
15294 case 3:
15295 break;
15297 default:
15298 break;
15302 return NDR_ERR_SUCCESS;
15305 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
15307 int level;
15308 uint32_t _level;
15309 TALLOC_CTX *_mem_save_info1_0;
15310 level = ndr_pull_get_switch_value(ndr, r);
15311 if (ndr_flags & NDR_SCALARS) {
15312 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15313 if (_level != level) {
15314 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
15316 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15317 switch (level) {
15318 case 1: {
15319 uint32_t _ptr_info1;
15320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15321 if (_ptr_info1) {
15322 NDR_PULL_ALLOC(ndr, r->info1);
15323 } else {
15324 r->info1 = NULL;
15326 break; }
15328 case 2: {
15329 break; }
15331 case 3: {
15332 break; }
15334 default: {
15335 break; }
15339 if (ndr_flags & NDR_BUFFERS) {
15340 switch (level) {
15341 case 1:
15342 if (r->info1) {
15343 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15344 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15345 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15348 break;
15350 case 2:
15351 break;
15353 case 3:
15354 break;
15356 default:
15357 break;
15361 return NDR_ERR_SUCCESS;
15364 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
15366 int level;
15367 level = ndr_print_get_switch_value(ndr, r);
15368 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
15369 switch (level) {
15370 case 1:
15371 ndr_print_ptr(ndr, "info1", r->info1);
15372 ndr->depth++;
15373 if (r->info1) {
15374 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
15376 ndr->depth--;
15377 break;
15379 case 2:
15380 break;
15382 case 3:
15383 break;
15385 default:
15386 break;
15391 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
15393 if (ndr_flags & NDR_SCALARS) {
15394 NDR_CHECK(ndr_push_align(ndr, 4));
15395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
15396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15401 uint32_t _flags_save_string = ndr->flags;
15402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15404 struct ndr_push *_ndr_extra_string;
15405 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15406 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15407 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15409 ndr->flags = _flags_save_string;
15411 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15413 if (ndr_flags & NDR_BUFFERS) {
15415 return NDR_ERR_SUCCESS;
15418 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
15420 if (ndr_flags & NDR_SCALARS) {
15421 NDR_CHECK(ndr_pull_align(ndr, 4));
15422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15428 uint32_t _flags_save_string = ndr->flags;
15429 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15431 struct ndr_pull *_ndr_extra_string;
15432 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15433 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15434 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15436 ndr->flags = _flags_save_string;
15438 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15440 if (ndr_flags & NDR_BUFFERS) {
15442 return NDR_ERR_SUCCESS;
15445 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
15447 ndr_print_struct(ndr, name, "spoolss_OSVersion");
15448 ndr->depth++;
15449 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);
15450 ndr_print_uint32(ndr, "major", r->major);
15451 ndr_print_uint32(ndr, "minor", r->minor);
15452 ndr_print_uint32(ndr, "build", r->build);
15453 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15454 ndr_print_string(ndr, "extra_string", r->extra_string);
15455 ndr->depth--;
15458 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
15460 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
15463 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
15465 if (ndr_flags & NDR_SCALARS) {
15466 NDR_CHECK(ndr_push_align(ndr, 4));
15467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
15468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15473 uint32_t _flags_save_string = ndr->flags;
15474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15476 struct ndr_push *_ndr_extra_string;
15477 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15478 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15479 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15481 ndr->flags = _flags_save_string;
15483 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
15484 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
15485 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
15486 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
15487 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
15488 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15490 if (ndr_flags & NDR_BUFFERS) {
15492 return NDR_ERR_SUCCESS;
15495 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
15497 if (ndr_flags & NDR_SCALARS) {
15498 NDR_CHECK(ndr_pull_align(ndr, 4));
15499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15500 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15501 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15502 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15503 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15505 uint32_t _flags_save_string = ndr->flags;
15506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15508 struct ndr_pull *_ndr_extra_string;
15509 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15510 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15511 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15513 ndr->flags = _flags_save_string;
15515 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
15516 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
15517 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
15518 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
15519 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
15520 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15522 if (ndr_flags & NDR_BUFFERS) {
15524 return NDR_ERR_SUCCESS;
15527 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
15529 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
15530 ndr->depth++;
15531 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);
15532 ndr_print_uint32(ndr, "major", r->major);
15533 ndr_print_uint32(ndr, "minor", r->minor);
15534 ndr_print_uint32(ndr, "build", r->build);
15535 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15536 ndr_print_string(ndr, "extra_string", r->extra_string);
15537 ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
15538 ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
15539 ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
15540 ndr_print_uint8(ndr, "product_type", r->product_type);
15541 ndr_print_uint8(ndr, "reserved", r->reserved);
15542 ndr->depth--;
15545 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
15547 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
15550 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
15552 if (ndr_flags & NDR_SCALARS) {
15553 int level = ndr_push_get_switch_value(ndr, r);
15554 NDR_CHECK(ndr_push_union_align(ndr, 4));
15555 switch (level) {
15556 case REG_NONE: {
15557 break; }
15559 case REG_SZ: {
15561 uint32_t _flags_save_string = ndr->flags;
15562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15563 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
15564 ndr->flags = _flags_save_string;
15566 break; }
15568 case REG_BINARY: {
15570 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15571 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15572 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
15573 ndr->flags = _flags_save_DATA_BLOB;
15575 break; }
15577 case REG_DWORD: {
15578 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
15579 break; }
15581 case REG_MULTI_SZ: {
15583 uint32_t _flags_save_string_array = ndr->flags;
15584 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15585 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
15586 ndr->flags = _flags_save_string_array;
15588 break; }
15590 default: {
15592 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15593 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15594 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
15595 ndr->flags = _flags_save_DATA_BLOB;
15597 break; }
15601 if (ndr_flags & NDR_BUFFERS) {
15602 int level = ndr_push_get_switch_value(ndr, r);
15603 switch (level) {
15604 case REG_NONE:
15605 break;
15607 case REG_SZ:
15608 break;
15610 case REG_BINARY:
15611 break;
15613 case REG_DWORD:
15614 break;
15616 case REG_MULTI_SZ:
15617 break;
15619 default:
15620 break;
15624 return NDR_ERR_SUCCESS;
15627 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
15629 int level;
15630 level = ndr_pull_get_switch_value(ndr, r);
15631 if (ndr_flags & NDR_SCALARS) {
15632 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15633 switch (level) {
15634 case REG_NONE: {
15635 break; }
15637 case REG_SZ: {
15639 uint32_t _flags_save_string = ndr->flags;
15640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15641 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
15642 ndr->flags = _flags_save_string;
15644 break; }
15646 case REG_BINARY: {
15648 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15650 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
15651 ndr->flags = _flags_save_DATA_BLOB;
15653 break; }
15655 case REG_DWORD: {
15656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
15657 break; }
15659 case REG_MULTI_SZ: {
15661 uint32_t _flags_save_string_array = ndr->flags;
15662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15663 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
15664 ndr->flags = _flags_save_string_array;
15666 break; }
15668 default: {
15670 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15672 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
15673 ndr->flags = _flags_save_DATA_BLOB;
15675 break; }
15679 if (ndr_flags & NDR_BUFFERS) {
15680 switch (level) {
15681 case REG_NONE:
15682 break;
15684 case REG_SZ:
15685 break;
15687 case REG_BINARY:
15688 break;
15690 case REG_DWORD:
15691 break;
15693 case REG_MULTI_SZ:
15694 break;
15696 default:
15697 break;
15701 return NDR_ERR_SUCCESS;
15704 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
15706 int level;
15707 level = ndr_print_get_switch_value(ndr, r);
15708 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
15709 switch (level) {
15710 case REG_NONE:
15711 break;
15713 case REG_SZ:
15714 ndr_print_string(ndr, "string", r->string);
15715 break;
15717 case REG_BINARY:
15718 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
15719 break;
15721 case REG_DWORD:
15722 ndr_print_uint32(ndr, "value", r->value);
15723 break;
15725 case REG_MULTI_SZ:
15726 ndr_print_string_array(ndr, "string_array", r->string_array);
15727 break;
15729 default:
15730 ndr_print_DATA_BLOB(ndr, "data", r->data);
15731 break;
15736 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15738 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
15741 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
15743 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
15744 return NDR_ERR_SUCCESS;
15747 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
15749 uint32_t v;
15750 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
15751 *r = v;
15752 return NDR_ERR_SUCCESS;
15755 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
15757 const char *val = NULL;
15759 switch (r) {
15760 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
15761 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
15762 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
15764 ndr_print_enum(ndr, name, "ENUM", val, r);
15767 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
15769 if (ndr_flags & NDR_SCALARS) {
15770 NDR_CHECK(ndr_push_align(ndr, 4));
15771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
15772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
15773 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15775 if (ndr_flags & NDR_BUFFERS) {
15777 return NDR_ERR_SUCCESS;
15780 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
15782 if (ndr_flags & NDR_SCALARS) {
15783 NDR_CHECK(ndr_pull_align(ndr, 4));
15784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
15785 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
15786 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15788 if (ndr_flags & NDR_BUFFERS) {
15790 return NDR_ERR_SUCCESS;
15793 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
15795 ndr_print_struct(ndr, name, "spoolss_FormSize");
15796 ndr->depth++;
15797 ndr_print_uint32(ndr, "width", r->width);
15798 ndr_print_uint32(ndr, "height", r->height);
15799 ndr->depth--;
15802 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
15804 if (ndr_flags & NDR_SCALARS) {
15805 NDR_CHECK(ndr_push_align(ndr, 4));
15806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
15807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
15808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
15809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
15810 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15812 if (ndr_flags & NDR_BUFFERS) {
15814 return NDR_ERR_SUCCESS;
15817 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
15819 if (ndr_flags & NDR_SCALARS) {
15820 NDR_CHECK(ndr_pull_align(ndr, 4));
15821 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
15822 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
15823 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
15824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
15825 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15827 if (ndr_flags & NDR_BUFFERS) {
15829 return NDR_ERR_SUCCESS;
15832 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
15834 ndr_print_struct(ndr, name, "spoolss_FormArea");
15835 ndr->depth++;
15836 ndr_print_uint32(ndr, "left", r->left);
15837 ndr_print_uint32(ndr, "top", r->top);
15838 ndr_print_uint32(ndr, "right", r->right);
15839 ndr_print_uint32(ndr, "bottom", r->bottom);
15840 ndr->depth--;
15843 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
15845 if (ndr_flags & NDR_SCALARS) {
15846 NDR_CHECK(ndr_push_align(ndr, 5));
15847 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15849 uint32_t _flags_save_string = ndr->flags;
15850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15851 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15852 ndr->flags = _flags_save_string;
15854 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15855 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15856 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15858 if (ndr_flags & NDR_BUFFERS) {
15860 uint32_t _flags_save_string = ndr->flags;
15861 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15862 if (r->form_name) {
15863 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15864 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15866 ndr->flags = _flags_save_string;
15869 return NDR_ERR_SUCCESS;
15872 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
15874 uint32_t _ptr_form_name;
15875 TALLOC_CTX *_mem_save_form_name_0;
15876 if (ndr_flags & NDR_SCALARS) {
15877 NDR_CHECK(ndr_pull_align(ndr, 5));
15878 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15880 uint32_t _flags_save_string = ndr->flags;
15881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15883 if (_ptr_form_name) {
15884 NDR_PULL_ALLOC(ndr, r->form_name);
15885 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15886 } else {
15887 r->form_name = NULL;
15889 ndr->flags = _flags_save_string;
15891 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15892 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15893 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15895 if (ndr_flags & NDR_BUFFERS) {
15897 uint32_t _flags_save_string = ndr->flags;
15898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15899 if (r->form_name) {
15900 uint32_t _relative_save_offset;
15901 _relative_save_offset = ndr->offset;
15902 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15903 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15904 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15905 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15907 if (ndr->offset > ndr->relative_highest_offset) {
15908 ndr->relative_highest_offset = ndr->offset;
15910 ndr->offset = _relative_save_offset;
15912 ndr->flags = _flags_save_string;
15915 return NDR_ERR_SUCCESS;
15918 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
15920 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
15921 ndr->depth++;
15922 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15923 ndr_print_ptr(ndr, "form_name", r->form_name);
15924 ndr->depth++;
15925 if (r->form_name) {
15926 ndr_print_string(ndr, "form_name", r->form_name);
15928 ndr->depth--;
15929 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15930 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15931 ndr->depth--;
15934 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15936 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
15939 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15941 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15942 return NDR_ERR_SUCCESS;
15945 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15947 uint32_t v;
15948 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15949 *r = v;
15950 return NDR_ERR_SUCCESS;
15953 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
15955 ndr_print_uint32(ndr, name, r);
15956 ndr->depth++;
15957 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
15958 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
15959 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
15960 ndr->depth--;
15963 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
15965 if (ndr_flags & NDR_SCALARS) {
15966 NDR_CHECK(ndr_push_align(ndr, 5));
15967 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15969 uint32_t _flags_save_string = ndr->flags;
15970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15971 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15972 ndr->flags = _flags_save_string;
15974 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15975 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15977 uint32_t _flags_save_string = ndr->flags;
15978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15979 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
15980 ndr->flags = _flags_save_string;
15982 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15984 uint32_t _flags_save_string = ndr->flags;
15985 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15986 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
15987 ndr->flags = _flags_save_string;
15989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15991 uint32_t _flags_save_string = ndr->flags;
15992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15993 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
15994 ndr->flags = _flags_save_string;
15996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15997 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15999 if (ndr_flags & NDR_BUFFERS) {
16001 uint32_t _flags_save_string = ndr->flags;
16002 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16003 if (r->form_name) {
16004 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
16005 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
16007 ndr->flags = _flags_save_string;
16010 uint32_t _flags_save_string = ndr->flags;
16011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16012 if (r->keyword) {
16013 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
16014 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
16016 ndr->flags = _flags_save_string;
16019 uint32_t _flags_save_string = ndr->flags;
16020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16021 if (r->mui_dll) {
16022 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
16023 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
16025 ndr->flags = _flags_save_string;
16028 uint32_t _flags_save_string = ndr->flags;
16029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16030 if (r->display_name) {
16031 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
16032 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
16034 ndr->flags = _flags_save_string;
16037 return NDR_ERR_SUCCESS;
16040 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
16042 uint32_t _ptr_form_name;
16043 TALLOC_CTX *_mem_save_form_name_0;
16044 uint32_t _ptr_keyword;
16045 TALLOC_CTX *_mem_save_keyword_0;
16046 uint32_t _ptr_mui_dll;
16047 TALLOC_CTX *_mem_save_mui_dll_0;
16048 uint32_t _ptr_display_name;
16049 TALLOC_CTX *_mem_save_display_name_0;
16050 if (ndr_flags & NDR_SCALARS) {
16051 NDR_CHECK(ndr_pull_align(ndr, 5));
16052 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16054 uint32_t _flags_save_string = ndr->flags;
16055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16056 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16057 if (_ptr_form_name) {
16058 NDR_PULL_ALLOC(ndr, r->form_name);
16059 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16060 } else {
16061 r->form_name = NULL;
16063 ndr->flags = _flags_save_string;
16065 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16066 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16068 uint32_t _flags_save_string = ndr->flags;
16069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16070 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16071 if (_ptr_keyword) {
16072 NDR_PULL_ALLOC(ndr, r->keyword);
16073 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
16074 } else {
16075 r->keyword = NULL;
16077 ndr->flags = _flags_save_string;
16079 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16081 uint32_t _flags_save_string = ndr->flags;
16082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16083 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16084 if (_ptr_mui_dll) {
16085 NDR_PULL_ALLOC(ndr, r->mui_dll);
16086 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
16087 } else {
16088 r->mui_dll = NULL;
16090 ndr->flags = _flags_save_string;
16092 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16094 uint32_t _flags_save_string = ndr->flags;
16095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16096 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16097 if (_ptr_display_name) {
16098 NDR_PULL_ALLOC(ndr, r->display_name);
16099 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
16100 } else {
16101 r->display_name = NULL;
16103 ndr->flags = _flags_save_string;
16105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16106 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16108 if (ndr_flags & NDR_BUFFERS) {
16110 uint32_t _flags_save_string = ndr->flags;
16111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16112 if (r->form_name) {
16113 uint32_t _relative_save_offset;
16114 _relative_save_offset = ndr->offset;
16115 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16116 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16117 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16118 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16120 if (ndr->offset > ndr->relative_highest_offset) {
16121 ndr->relative_highest_offset = ndr->offset;
16123 ndr->offset = _relative_save_offset;
16125 ndr->flags = _flags_save_string;
16128 uint32_t _flags_save_string = ndr->flags;
16129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16130 if (r->keyword) {
16131 uint32_t _relative_save_offset;
16132 _relative_save_offset = ndr->offset;
16133 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
16134 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16135 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16136 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
16137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16138 if (ndr->offset > ndr->relative_highest_offset) {
16139 ndr->relative_highest_offset = ndr->offset;
16141 ndr->offset = _relative_save_offset;
16143 ndr->flags = _flags_save_string;
16146 uint32_t _flags_save_string = ndr->flags;
16147 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16148 if (r->mui_dll) {
16149 uint32_t _relative_save_offset;
16150 _relative_save_offset = ndr->offset;
16151 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
16152 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16153 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16154 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
16155 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16156 if (ndr->offset > ndr->relative_highest_offset) {
16157 ndr->relative_highest_offset = ndr->offset;
16159 ndr->offset = _relative_save_offset;
16161 ndr->flags = _flags_save_string;
16164 uint32_t _flags_save_string = ndr->flags;
16165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16166 if (r->display_name) {
16167 uint32_t _relative_save_offset;
16168 _relative_save_offset = ndr->offset;
16169 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
16170 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16171 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16172 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
16173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16174 if (ndr->offset > ndr->relative_highest_offset) {
16175 ndr->relative_highest_offset = ndr->offset;
16177 ndr->offset = _relative_save_offset;
16179 ndr->flags = _flags_save_string;
16182 return NDR_ERR_SUCCESS;
16185 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
16187 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
16188 ndr->depth++;
16189 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16190 ndr_print_ptr(ndr, "form_name", r->form_name);
16191 ndr->depth++;
16192 if (r->form_name) {
16193 ndr_print_string(ndr, "form_name", r->form_name);
16195 ndr->depth--;
16196 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16197 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16198 ndr_print_ptr(ndr, "keyword", r->keyword);
16199 ndr->depth++;
16200 if (r->keyword) {
16201 ndr_print_string(ndr, "keyword", r->keyword);
16203 ndr->depth--;
16204 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16205 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16206 ndr->depth++;
16207 if (r->mui_dll) {
16208 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16210 ndr->depth--;
16211 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16212 ndr_print_ptr(ndr, "display_name", r->display_name);
16213 ndr->depth++;
16214 if (r->display_name) {
16215 ndr_print_string(ndr, "display_name", r->display_name);
16217 ndr->depth--;
16218 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16219 ndr->depth--;
16222 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16224 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
16227 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
16229 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16230 if (ndr_flags & NDR_SCALARS) {
16231 int level = ndr_push_get_switch_value(ndr, r);
16232 NDR_CHECK(ndr_push_union_align(ndr, 5));
16233 switch (level) {
16234 case 1: {
16235 NDR_CHECK(ndr_push_align(ndr, 5));
16236 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16237 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16238 break; }
16240 case 2: {
16241 NDR_CHECK(ndr_push_align(ndr, 5));
16242 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16243 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16244 break; }
16246 default: {
16247 break; }
16251 if (ndr_flags & NDR_BUFFERS) {
16252 int level = ndr_push_get_switch_value(ndr, r);
16253 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16254 switch (level) {
16255 case 1:
16256 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16257 break;
16259 case 2:
16260 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16261 break;
16263 default:
16264 break;
16268 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16269 return NDR_ERR_SUCCESS;
16272 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
16274 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16275 int level;
16276 level = ndr_pull_get_switch_value(ndr, r);
16277 if (ndr_flags & NDR_SCALARS) {
16278 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16279 switch (level) {
16280 case 1: {
16281 NDR_CHECK(ndr_pull_align(ndr, 5));
16282 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16283 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16284 break; }
16286 case 2: {
16287 NDR_CHECK(ndr_pull_align(ndr, 5));
16288 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16289 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16290 break; }
16292 default: {
16293 break; }
16297 if (ndr_flags & NDR_BUFFERS) {
16298 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16299 switch (level) {
16300 case 1:
16301 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16302 break;
16304 case 2:
16305 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16306 break;
16308 default:
16309 break;
16313 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16314 return NDR_ERR_SUCCESS;
16317 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
16319 int level;
16320 level = ndr_print_get_switch_value(ndr, r);
16321 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
16322 switch (level) {
16323 case 1:
16324 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
16325 break;
16327 case 2:
16328 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
16329 break;
16331 default:
16332 break;
16337 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
16339 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
16342 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
16344 if (ndr_flags & NDR_SCALARS) {
16345 NDR_CHECK(ndr_push_align(ndr, 5));
16346 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16347 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16348 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16349 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16350 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16352 if (ndr_flags & NDR_BUFFERS) {
16353 if (r->form_name) {
16354 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16355 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16356 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16357 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16360 return NDR_ERR_SUCCESS;
16363 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
16365 uint32_t _ptr_form_name;
16366 TALLOC_CTX *_mem_save_form_name_0;
16367 if (ndr_flags & NDR_SCALARS) {
16368 NDR_CHECK(ndr_pull_align(ndr, 5));
16369 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16370 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16371 if (_ptr_form_name) {
16372 NDR_PULL_ALLOC(ndr, r->form_name);
16373 } else {
16374 r->form_name = NULL;
16376 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16377 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16378 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16380 if (ndr_flags & NDR_BUFFERS) {
16381 if (r->form_name) {
16382 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16383 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16384 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16385 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16386 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16387 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));
16389 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16390 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16394 return NDR_ERR_SUCCESS;
16397 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
16399 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
16400 ndr->depth++;
16401 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16402 ndr_print_ptr(ndr, "form_name", r->form_name);
16403 ndr->depth++;
16404 if (r->form_name) {
16405 ndr_print_string(ndr, "form_name", r->form_name);
16407 ndr->depth--;
16408 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16409 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16410 ndr->depth--;
16413 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
16415 if (ndr_flags & NDR_SCALARS) {
16416 NDR_CHECK(ndr_push_align(ndr, 5));
16417 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16418 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16419 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16420 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16421 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
16422 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16423 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
16424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16425 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
16426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
16427 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16429 if (ndr_flags & NDR_BUFFERS) {
16430 if (r->form_name) {
16431 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16432 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16433 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16434 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16436 if (r->keyword) {
16437 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16438 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16439 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16440 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
16442 if (r->mui_dll) {
16443 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16444 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16445 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16446 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16448 if (r->display_name) {
16449 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16450 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16451 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16452 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16455 return NDR_ERR_SUCCESS;
16458 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
16460 uint32_t _ptr_form_name;
16461 TALLOC_CTX *_mem_save_form_name_0;
16462 uint32_t _ptr_keyword;
16463 TALLOC_CTX *_mem_save_keyword_0;
16464 uint32_t _ptr_mui_dll;
16465 TALLOC_CTX *_mem_save_mui_dll_0;
16466 uint32_t _ptr_display_name;
16467 TALLOC_CTX *_mem_save_display_name_0;
16468 if (ndr_flags & NDR_SCALARS) {
16469 NDR_CHECK(ndr_pull_align(ndr, 5));
16470 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16471 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16472 if (_ptr_form_name) {
16473 NDR_PULL_ALLOC(ndr, r->form_name);
16474 } else {
16475 r->form_name = NULL;
16477 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16478 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16479 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16480 if (_ptr_keyword) {
16481 NDR_PULL_ALLOC(ndr, r->keyword);
16482 } else {
16483 r->keyword = NULL;
16485 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16487 if (_ptr_mui_dll) {
16488 NDR_PULL_ALLOC(ndr, r->mui_dll);
16489 } else {
16490 r->mui_dll = NULL;
16492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16493 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16494 if (_ptr_display_name) {
16495 NDR_PULL_ALLOC(ndr, r->display_name);
16496 } else {
16497 r->display_name = NULL;
16499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16500 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16502 if (ndr_flags & NDR_BUFFERS) {
16503 if (r->form_name) {
16504 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16505 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16506 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16507 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16508 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16509 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));
16511 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16512 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16515 if (r->keyword) {
16516 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16517 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16518 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
16519 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
16520 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
16521 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));
16523 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
16524 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
16525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16527 if (r->mui_dll) {
16528 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16529 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16530 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
16531 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
16532 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
16533 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));
16535 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
16536 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
16537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16539 if (r->display_name) {
16540 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16541 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16542 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
16543 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
16544 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
16545 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));
16547 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
16548 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
16549 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16552 return NDR_ERR_SUCCESS;
16555 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
16557 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
16558 ndr->depth++;
16559 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16560 ndr_print_ptr(ndr, "form_name", r->form_name);
16561 ndr->depth++;
16562 if (r->form_name) {
16563 ndr_print_string(ndr, "form_name", r->form_name);
16565 ndr->depth--;
16566 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16567 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16568 ndr_print_ptr(ndr, "keyword", r->keyword);
16569 ndr->depth++;
16570 if (r->keyword) {
16571 ndr_print_string(ndr, "keyword", r->keyword);
16573 ndr->depth--;
16574 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16575 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16576 ndr->depth++;
16577 if (r->mui_dll) {
16578 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16580 ndr->depth--;
16581 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16582 ndr_print_ptr(ndr, "display_name", r->display_name);
16583 ndr->depth++;
16584 if (r->display_name) {
16585 ndr_print_string(ndr, "display_name", r->display_name);
16587 ndr->depth--;
16588 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16589 ndr->depth--;
16592 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
16594 if (ndr_flags & NDR_SCALARS) {
16595 int level = ndr_push_get_switch_value(ndr, r);
16596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
16597 NDR_CHECK(ndr_push_union_align(ndr, 5));
16598 switch (level) {
16599 case 1: {
16600 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
16601 break; }
16603 case 2: {
16604 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
16605 break; }
16607 default:
16608 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16611 if (ndr_flags & NDR_BUFFERS) {
16612 int level = ndr_push_get_switch_value(ndr, r);
16613 switch (level) {
16614 case 1:
16615 if (r->info1) {
16616 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16618 break;
16620 case 2:
16621 if (r->info2) {
16622 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16624 break;
16626 default:
16627 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16630 return NDR_ERR_SUCCESS;
16633 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
16635 int level;
16636 uint32_t _level;
16637 TALLOC_CTX *_mem_save_info1_0;
16638 TALLOC_CTX *_mem_save_info2_0;
16639 level = ndr_pull_get_switch_value(ndr, r);
16640 if (ndr_flags & NDR_SCALARS) {
16641 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16642 if (_level != level) {
16643 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
16645 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16646 switch (level) {
16647 case 1: {
16648 uint32_t _ptr_info1;
16649 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16650 if (_ptr_info1) {
16651 NDR_PULL_ALLOC(ndr, r->info1);
16652 } else {
16653 r->info1 = NULL;
16655 break; }
16657 case 2: {
16658 uint32_t _ptr_info2;
16659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
16660 if (_ptr_info2) {
16661 NDR_PULL_ALLOC(ndr, r->info2);
16662 } else {
16663 r->info2 = NULL;
16665 break; }
16667 default:
16668 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16671 if (ndr_flags & NDR_BUFFERS) {
16672 switch (level) {
16673 case 1:
16674 if (r->info1) {
16675 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
16676 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
16677 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
16680 break;
16682 case 2:
16683 if (r->info2) {
16684 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
16685 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
16686 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
16689 break;
16691 default:
16692 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16695 return NDR_ERR_SUCCESS;
16698 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
16700 int level;
16701 level = ndr_print_get_switch_value(ndr, r);
16702 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
16703 switch (level) {
16704 case 1:
16705 ndr_print_ptr(ndr, "info1", r->info1);
16706 ndr->depth++;
16707 if (r->info1) {
16708 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
16710 ndr->depth--;
16711 break;
16713 case 2:
16714 ndr_print_ptr(ndr, "info2", r->info2);
16715 ndr->depth++;
16716 if (r->info2) {
16717 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
16719 ndr->depth--;
16720 break;
16722 default:
16723 ndr_print_bad_level(ndr, name, level);
16727 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
16729 if (ndr_flags & NDR_SCALARS) {
16730 NDR_CHECK(ndr_push_align(ndr, 5));
16732 uint32_t _flags_save_string = ndr->flags;
16733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16734 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16735 ndr->flags = _flags_save_string;
16737 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16739 if (ndr_flags & NDR_BUFFERS) {
16741 uint32_t _flags_save_string = ndr->flags;
16742 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16743 if (r->port_name) {
16744 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16745 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16747 ndr->flags = _flags_save_string;
16750 return NDR_ERR_SUCCESS;
16753 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
16755 uint32_t _ptr_port_name;
16756 TALLOC_CTX *_mem_save_port_name_0;
16757 if (ndr_flags & NDR_SCALARS) {
16758 NDR_CHECK(ndr_pull_align(ndr, 5));
16760 uint32_t _flags_save_string = ndr->flags;
16761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16762 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16763 if (_ptr_port_name) {
16764 NDR_PULL_ALLOC(ndr, r->port_name);
16765 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16766 } else {
16767 r->port_name = NULL;
16769 ndr->flags = _flags_save_string;
16771 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16773 if (ndr_flags & NDR_BUFFERS) {
16775 uint32_t _flags_save_string = ndr->flags;
16776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16777 if (r->port_name) {
16778 uint32_t _relative_save_offset;
16779 _relative_save_offset = ndr->offset;
16780 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16781 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16782 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16783 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16785 if (ndr->offset > ndr->relative_highest_offset) {
16786 ndr->relative_highest_offset = ndr->offset;
16788 ndr->offset = _relative_save_offset;
16790 ndr->flags = _flags_save_string;
16793 return NDR_ERR_SUCCESS;
16796 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
16798 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
16799 ndr->depth++;
16800 ndr_print_ptr(ndr, "port_name", r->port_name);
16801 ndr->depth++;
16802 if (r->port_name) {
16803 ndr_print_string(ndr, "port_name", r->port_name);
16805 ndr->depth--;
16806 ndr->depth--;
16809 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16811 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
16814 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16817 return NDR_ERR_SUCCESS;
16820 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16822 uint32_t v;
16823 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16824 *r = v;
16825 return NDR_ERR_SUCCESS;
16828 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
16830 ndr_print_uint32(ndr, name, r);
16831 ndr->depth++;
16832 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
16833 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
16834 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
16835 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
16836 ndr->depth--;
16839 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
16841 if (ndr_flags & NDR_SCALARS) {
16842 NDR_CHECK(ndr_push_align(ndr, 5));
16844 uint32_t _flags_save_string = ndr->flags;
16845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16846 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16847 ndr->flags = _flags_save_string;
16850 uint32_t _flags_save_string = ndr->flags;
16851 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16852 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16853 ndr->flags = _flags_save_string;
16856 uint32_t _flags_save_string = ndr->flags;
16857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16858 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
16859 ndr->flags = _flags_save_string;
16861 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
16862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
16863 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16865 if (ndr_flags & NDR_BUFFERS) {
16867 uint32_t _flags_save_string = ndr->flags;
16868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16869 if (r->port_name) {
16870 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16871 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16873 ndr->flags = _flags_save_string;
16876 uint32_t _flags_save_string = ndr->flags;
16877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16878 if (r->monitor_name) {
16879 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16880 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16882 ndr->flags = _flags_save_string;
16885 uint32_t _flags_save_string = ndr->flags;
16886 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16887 if (r->description) {
16888 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
16889 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
16891 ndr->flags = _flags_save_string;
16894 return NDR_ERR_SUCCESS;
16897 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
16899 uint32_t _ptr_port_name;
16900 TALLOC_CTX *_mem_save_port_name_0;
16901 uint32_t _ptr_monitor_name;
16902 TALLOC_CTX *_mem_save_monitor_name_0;
16903 uint32_t _ptr_description;
16904 TALLOC_CTX *_mem_save_description_0;
16905 if (ndr_flags & NDR_SCALARS) {
16906 NDR_CHECK(ndr_pull_align(ndr, 5));
16908 uint32_t _flags_save_string = ndr->flags;
16909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16911 if (_ptr_port_name) {
16912 NDR_PULL_ALLOC(ndr, r->port_name);
16913 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16914 } else {
16915 r->port_name = NULL;
16917 ndr->flags = _flags_save_string;
16920 uint32_t _flags_save_string = ndr->flags;
16921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16923 if (_ptr_monitor_name) {
16924 NDR_PULL_ALLOC(ndr, r->monitor_name);
16925 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16926 } else {
16927 r->monitor_name = NULL;
16929 ndr->flags = _flags_save_string;
16932 uint32_t _flags_save_string = ndr->flags;
16933 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16934 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
16935 if (_ptr_description) {
16936 NDR_PULL_ALLOC(ndr, r->description);
16937 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
16938 } else {
16939 r->description = NULL;
16941 ndr->flags = _flags_save_string;
16943 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
16944 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
16945 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16947 if (ndr_flags & NDR_BUFFERS) {
16949 uint32_t _flags_save_string = ndr->flags;
16950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16951 if (r->port_name) {
16952 uint32_t _relative_save_offset;
16953 _relative_save_offset = ndr->offset;
16954 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16955 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16956 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16957 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16959 if (ndr->offset > ndr->relative_highest_offset) {
16960 ndr->relative_highest_offset = ndr->offset;
16962 ndr->offset = _relative_save_offset;
16964 ndr->flags = _flags_save_string;
16967 uint32_t _flags_save_string = ndr->flags;
16968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16969 if (r->monitor_name) {
16970 uint32_t _relative_save_offset;
16971 _relative_save_offset = ndr->offset;
16972 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16973 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16974 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16975 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16977 if (ndr->offset > ndr->relative_highest_offset) {
16978 ndr->relative_highest_offset = ndr->offset;
16980 ndr->offset = _relative_save_offset;
16982 ndr->flags = _flags_save_string;
16985 uint32_t _flags_save_string = ndr->flags;
16986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16987 if (r->description) {
16988 uint32_t _relative_save_offset;
16989 _relative_save_offset = ndr->offset;
16990 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
16991 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
16992 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
16993 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
16994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
16995 if (ndr->offset > ndr->relative_highest_offset) {
16996 ndr->relative_highest_offset = ndr->offset;
16998 ndr->offset = _relative_save_offset;
17000 ndr->flags = _flags_save_string;
17003 return NDR_ERR_SUCCESS;
17006 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
17008 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
17009 ndr->depth++;
17010 ndr_print_ptr(ndr, "port_name", r->port_name);
17011 ndr->depth++;
17012 if (r->port_name) {
17013 ndr_print_string(ndr, "port_name", r->port_name);
17015 ndr->depth--;
17016 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17017 ndr->depth++;
17018 if (r->monitor_name) {
17019 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17021 ndr->depth--;
17022 ndr_print_ptr(ndr, "description", r->description);
17023 ndr->depth++;
17024 if (r->description) {
17025 ndr_print_string(ndr, "description", r->description);
17027 ndr->depth--;
17028 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
17029 ndr_print_uint32(ndr, "reserved", r->reserved);
17030 ndr->depth--;
17033 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17035 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
17038 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
17040 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17041 return NDR_ERR_SUCCESS;
17044 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
17046 uint32_t v;
17047 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17048 *r = v;
17049 return NDR_ERR_SUCCESS;
17052 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
17054 const char *val = NULL;
17056 switch (r) {
17057 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
17058 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
17059 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
17060 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
17061 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
17062 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
17063 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
17064 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
17065 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
17066 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
17067 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
17068 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
17069 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
17071 ndr_print_enum(ndr, name, "ENUM", val, r);
17074 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
17076 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17077 return NDR_ERR_SUCCESS;
17080 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
17082 uint32_t v;
17083 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17084 *r = v;
17085 return NDR_ERR_SUCCESS;
17088 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
17090 const char *val = NULL;
17092 switch (r) {
17093 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
17094 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
17095 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
17097 ndr_print_enum(ndr, name, "ENUM", val, r);
17100 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
17102 if (ndr_flags & NDR_SCALARS) {
17103 NDR_CHECK(ndr_push_align(ndr, 5));
17104 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
17106 uint32_t _flags_save_string = ndr->flags;
17107 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17108 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
17109 ndr->flags = _flags_save_string;
17111 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
17112 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17114 if (ndr_flags & NDR_BUFFERS) {
17116 uint32_t _flags_save_string = ndr->flags;
17117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17118 if (r->status_string) {
17119 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
17120 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
17122 ndr->flags = _flags_save_string;
17125 return NDR_ERR_SUCCESS;
17128 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
17130 uint32_t _ptr_status_string;
17131 TALLOC_CTX *_mem_save_status_string_0;
17132 if (ndr_flags & NDR_SCALARS) {
17133 NDR_CHECK(ndr_pull_align(ndr, 5));
17134 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
17136 uint32_t _flags_save_string = ndr->flags;
17137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17138 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
17139 if (_ptr_status_string) {
17140 NDR_PULL_ALLOC(ndr, r->status_string);
17141 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
17142 } else {
17143 r->status_string = NULL;
17145 ndr->flags = _flags_save_string;
17147 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
17148 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17150 if (ndr_flags & NDR_BUFFERS) {
17152 uint32_t _flags_save_string = ndr->flags;
17153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17154 if (r->status_string) {
17155 uint32_t _relative_save_offset;
17156 _relative_save_offset = ndr->offset;
17157 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
17158 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17159 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
17160 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
17161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
17162 if (ndr->offset > ndr->relative_highest_offset) {
17163 ndr->relative_highest_offset = ndr->offset;
17165 ndr->offset = _relative_save_offset;
17167 ndr->flags = _flags_save_string;
17170 return NDR_ERR_SUCCESS;
17173 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
17175 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
17176 ndr->depth++;
17177 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
17178 ndr_print_ptr(ndr, "status_string", r->status_string);
17179 ndr->depth++;
17180 if (r->status_string) {
17181 ndr_print_string(ndr, "status_string", r->status_string);
17183 ndr->depth--;
17184 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
17185 ndr->depth--;
17188 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
17190 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
17193 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
17195 if (ndr_flags & NDR_SCALARS) {
17196 NDR_CHECK(ndr_push_align(ndr, 5));
17198 uint32_t _flags_save_string = ndr->flags;
17199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17200 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17201 ndr->flags = _flags_save_string;
17203 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
17204 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17206 if (ndr_flags & NDR_BUFFERS) {
17208 uint32_t _flags_save_string = ndr->flags;
17209 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17210 if (r->port_name) {
17211 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
17212 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17214 ndr->flags = _flags_save_string;
17217 return NDR_ERR_SUCCESS;
17220 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
17222 uint32_t _ptr_port_name;
17223 TALLOC_CTX *_mem_save_port_name_0;
17224 if (ndr_flags & NDR_SCALARS) {
17225 NDR_CHECK(ndr_pull_align(ndr, 5));
17227 uint32_t _flags_save_string = ndr->flags;
17228 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17230 if (_ptr_port_name) {
17231 NDR_PULL_ALLOC(ndr, r->port_name);
17232 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17233 } else {
17234 r->port_name = NULL;
17236 ndr->flags = _flags_save_string;
17238 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
17239 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17241 if (ndr_flags & NDR_BUFFERS) {
17243 uint32_t _flags_save_string = ndr->flags;
17244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17245 if (r->port_name) {
17246 uint32_t _relative_save_offset;
17247 _relative_save_offset = ndr->offset;
17248 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17249 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17250 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17251 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17253 if (ndr->offset > ndr->relative_highest_offset) {
17254 ndr->relative_highest_offset = ndr->offset;
17256 ndr->offset = _relative_save_offset;
17258 ndr->flags = _flags_save_string;
17261 return NDR_ERR_SUCCESS;
17264 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
17266 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
17267 ndr->depth++;
17268 ndr_print_ptr(ndr, "port_name", r->port_name);
17269 ndr->depth++;
17270 if (r->port_name) {
17271 ndr_print_string(ndr, "port_name", r->port_name);
17273 ndr->depth--;
17274 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
17275 ndr->depth--;
17278 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
17280 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
17283 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
17285 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17286 if (ndr_flags & NDR_SCALARS) {
17287 int level = ndr_push_get_switch_value(ndr, r);
17288 NDR_CHECK(ndr_push_union_align(ndr, 5));
17289 switch (level) {
17290 case 1: {
17291 NDR_CHECK(ndr_push_align(ndr, 5));
17292 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17293 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17294 break; }
17296 case 2: {
17297 NDR_CHECK(ndr_push_align(ndr, 5));
17298 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17299 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17300 break; }
17302 case 3: {
17303 NDR_CHECK(ndr_push_align(ndr, 5));
17304 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17305 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17306 break; }
17308 case 0xff: {
17309 NDR_CHECK(ndr_push_align(ndr, 5));
17310 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17311 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17312 break; }
17314 default: {
17315 break; }
17319 if (ndr_flags & NDR_BUFFERS) {
17320 int level = ndr_push_get_switch_value(ndr, r);
17321 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17322 switch (level) {
17323 case 1:
17324 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17325 break;
17327 case 2:
17328 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17329 break;
17331 case 3:
17332 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17333 break;
17335 case 0xff:
17336 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17337 break;
17339 default:
17340 break;
17344 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17345 return NDR_ERR_SUCCESS;
17348 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
17350 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17351 int level;
17352 level = ndr_pull_get_switch_value(ndr, r);
17353 if (ndr_flags & NDR_SCALARS) {
17354 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17355 switch (level) {
17356 case 1: {
17357 NDR_CHECK(ndr_pull_align(ndr, 5));
17358 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17359 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17360 break; }
17362 case 2: {
17363 NDR_CHECK(ndr_pull_align(ndr, 5));
17364 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17365 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17366 break; }
17368 case 3: {
17369 NDR_CHECK(ndr_pull_align(ndr, 5));
17370 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17371 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17372 break; }
17374 case 0xff: {
17375 NDR_CHECK(ndr_pull_align(ndr, 5));
17376 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17377 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17378 break; }
17380 default: {
17381 break; }
17385 if (ndr_flags & NDR_BUFFERS) {
17386 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17387 switch (level) {
17388 case 1:
17389 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17390 break;
17392 case 2:
17393 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17394 break;
17396 case 3:
17397 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17398 break;
17400 case 0xff:
17401 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17402 break;
17404 default:
17405 break;
17409 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17410 return NDR_ERR_SUCCESS;
17413 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
17415 int level;
17416 level = ndr_print_get_switch_value(ndr, r);
17417 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
17418 switch (level) {
17419 case 1:
17420 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
17421 break;
17423 case 2:
17424 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
17425 break;
17427 case 3:
17428 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
17429 break;
17431 case 0xff:
17432 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
17433 break;
17435 default:
17436 break;
17441 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
17443 if (ndr_flags & NDR_SCALARS) {
17444 NDR_CHECK(ndr_push_align(ndr, 5));
17446 uint32_t _flags_save_string = ndr->flags;
17447 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17448 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17449 ndr->flags = _flags_save_string;
17451 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17453 if (ndr_flags & NDR_BUFFERS) {
17455 uint32_t _flags_save_string = ndr->flags;
17456 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17457 if (r->monitor_name) {
17458 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17459 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17461 ndr->flags = _flags_save_string;
17464 return NDR_ERR_SUCCESS;
17467 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
17469 uint32_t _ptr_monitor_name;
17470 TALLOC_CTX *_mem_save_monitor_name_0;
17471 if (ndr_flags & NDR_SCALARS) {
17472 NDR_CHECK(ndr_pull_align(ndr, 5));
17474 uint32_t _flags_save_string = ndr->flags;
17475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17476 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17477 if (_ptr_monitor_name) {
17478 NDR_PULL_ALLOC(ndr, r->monitor_name);
17479 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17480 } else {
17481 r->monitor_name = NULL;
17483 ndr->flags = _flags_save_string;
17485 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17487 if (ndr_flags & NDR_BUFFERS) {
17489 uint32_t _flags_save_string = ndr->flags;
17490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17491 if (r->monitor_name) {
17492 uint32_t _relative_save_offset;
17493 _relative_save_offset = ndr->offset;
17494 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17495 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17496 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17497 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17499 if (ndr->offset > ndr->relative_highest_offset) {
17500 ndr->relative_highest_offset = ndr->offset;
17502 ndr->offset = _relative_save_offset;
17504 ndr->flags = _flags_save_string;
17507 return NDR_ERR_SUCCESS;
17510 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
17512 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
17513 ndr->depth++;
17514 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17515 ndr->depth++;
17516 if (r->monitor_name) {
17517 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17519 ndr->depth--;
17520 ndr->depth--;
17523 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17525 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
17528 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
17530 if (ndr_flags & NDR_SCALARS) {
17531 NDR_CHECK(ndr_push_align(ndr, 5));
17533 uint32_t _flags_save_string = ndr->flags;
17534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17535 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17536 ndr->flags = _flags_save_string;
17539 uint32_t _flags_save_string = ndr->flags;
17540 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17541 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
17542 ndr->flags = _flags_save_string;
17545 uint32_t _flags_save_string = ndr->flags;
17546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17547 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
17548 ndr->flags = _flags_save_string;
17550 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17552 if (ndr_flags & NDR_BUFFERS) {
17554 uint32_t _flags_save_string = ndr->flags;
17555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17556 if (r->monitor_name) {
17557 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
17558 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17560 ndr->flags = _flags_save_string;
17563 uint32_t _flags_save_string = ndr->flags;
17564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17565 if (r->environment) {
17566 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
17567 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
17569 ndr->flags = _flags_save_string;
17572 uint32_t _flags_save_string = ndr->flags;
17573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17574 if (r->dll_name) {
17575 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
17576 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
17578 ndr->flags = _flags_save_string;
17581 return NDR_ERR_SUCCESS;
17584 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
17586 uint32_t _ptr_monitor_name;
17587 TALLOC_CTX *_mem_save_monitor_name_0;
17588 uint32_t _ptr_environment;
17589 TALLOC_CTX *_mem_save_environment_0;
17590 uint32_t _ptr_dll_name;
17591 TALLOC_CTX *_mem_save_dll_name_0;
17592 if (ndr_flags & NDR_SCALARS) {
17593 NDR_CHECK(ndr_pull_align(ndr, 5));
17595 uint32_t _flags_save_string = ndr->flags;
17596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17597 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17598 if (_ptr_monitor_name) {
17599 NDR_PULL_ALLOC(ndr, r->monitor_name);
17600 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17601 } else {
17602 r->monitor_name = NULL;
17604 ndr->flags = _flags_save_string;
17607 uint32_t _flags_save_string = ndr->flags;
17608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17609 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17610 if (_ptr_environment) {
17611 NDR_PULL_ALLOC(ndr, r->environment);
17612 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
17613 } else {
17614 r->environment = NULL;
17616 ndr->flags = _flags_save_string;
17619 uint32_t _flags_save_string = ndr->flags;
17620 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17621 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
17622 if (_ptr_dll_name) {
17623 NDR_PULL_ALLOC(ndr, r->dll_name);
17624 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
17625 } else {
17626 r->dll_name = NULL;
17628 ndr->flags = _flags_save_string;
17630 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17632 if (ndr_flags & NDR_BUFFERS) {
17634 uint32_t _flags_save_string = ndr->flags;
17635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17636 if (r->monitor_name) {
17637 uint32_t _relative_save_offset;
17638 _relative_save_offset = ndr->offset;
17639 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17640 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17641 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17642 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17643 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17644 if (ndr->offset > ndr->relative_highest_offset) {
17645 ndr->relative_highest_offset = ndr->offset;
17647 ndr->offset = _relative_save_offset;
17649 ndr->flags = _flags_save_string;
17652 uint32_t _flags_save_string = ndr->flags;
17653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17654 if (r->environment) {
17655 uint32_t _relative_save_offset;
17656 _relative_save_offset = ndr->offset;
17657 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
17658 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
17659 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
17660 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
17661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
17662 if (ndr->offset > ndr->relative_highest_offset) {
17663 ndr->relative_highest_offset = ndr->offset;
17665 ndr->offset = _relative_save_offset;
17667 ndr->flags = _flags_save_string;
17670 uint32_t _flags_save_string = ndr->flags;
17671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17672 if (r->dll_name) {
17673 uint32_t _relative_save_offset;
17674 _relative_save_offset = ndr->offset;
17675 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
17676 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17677 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
17678 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
17679 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
17680 if (ndr->offset > ndr->relative_highest_offset) {
17681 ndr->relative_highest_offset = ndr->offset;
17683 ndr->offset = _relative_save_offset;
17685 ndr->flags = _flags_save_string;
17688 return NDR_ERR_SUCCESS;
17691 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
17693 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
17694 ndr->depth++;
17695 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17696 ndr->depth++;
17697 if (r->monitor_name) {
17698 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17700 ndr->depth--;
17701 ndr_print_ptr(ndr, "environment", r->environment);
17702 ndr->depth++;
17703 if (r->environment) {
17704 ndr_print_string(ndr, "environment", r->environment);
17706 ndr->depth--;
17707 ndr_print_ptr(ndr, "dll_name", r->dll_name);
17708 ndr->depth++;
17709 if (r->dll_name) {
17710 ndr_print_string(ndr, "dll_name", r->dll_name);
17712 ndr->depth--;
17713 ndr->depth--;
17716 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17718 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
17721 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
17723 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17724 if (ndr_flags & NDR_SCALARS) {
17725 int level = ndr_push_get_switch_value(ndr, r);
17726 NDR_CHECK(ndr_push_union_align(ndr, 5));
17727 switch (level) {
17728 case 1: {
17729 NDR_CHECK(ndr_push_align(ndr, 5));
17730 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17731 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17732 break; }
17734 case 2: {
17735 NDR_CHECK(ndr_push_align(ndr, 5));
17736 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17737 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17738 break; }
17740 default: {
17741 break; }
17745 if (ndr_flags & NDR_BUFFERS) {
17746 int level = ndr_push_get_switch_value(ndr, r);
17747 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17748 switch (level) {
17749 case 1:
17750 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17751 break;
17753 case 2:
17754 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17755 break;
17757 default:
17758 break;
17762 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17763 return NDR_ERR_SUCCESS;
17766 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
17768 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17769 int level;
17770 level = ndr_pull_get_switch_value(ndr, r);
17771 if (ndr_flags & NDR_SCALARS) {
17772 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17773 switch (level) {
17774 case 1: {
17775 NDR_CHECK(ndr_pull_align(ndr, 5));
17776 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17777 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17778 break; }
17780 case 2: {
17781 NDR_CHECK(ndr_pull_align(ndr, 5));
17782 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17783 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17784 break; }
17786 default: {
17787 break; }
17791 if (ndr_flags & NDR_BUFFERS) {
17792 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17793 switch (level) {
17794 case 1:
17795 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17796 break;
17798 case 2:
17799 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17800 break;
17802 default:
17803 break;
17807 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17808 return NDR_ERR_SUCCESS;
17811 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
17813 int level;
17814 level = ndr_print_get_switch_value(ndr, r);
17815 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
17816 switch (level) {
17817 case 1:
17818 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
17819 break;
17821 case 2:
17822 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
17823 break;
17825 default:
17826 break;
17831 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
17833 if (ndr_flags & NDR_SCALARS) {
17834 NDR_CHECK(ndr_push_align(ndr, 5));
17836 uint32_t _flags_save_string = ndr->flags;
17837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17838 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
17839 ndr->flags = _flags_save_string;
17841 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17843 if (ndr_flags & NDR_BUFFERS) {
17845 uint32_t _flags_save_string = ndr->flags;
17846 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17847 if (r->name_array) {
17848 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name_array));
17849 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
17851 ndr->flags = _flags_save_string;
17854 return NDR_ERR_SUCCESS;
17857 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
17859 uint32_t _ptr_name_array;
17860 TALLOC_CTX *_mem_save_name_array_0;
17861 if (ndr_flags & NDR_SCALARS) {
17862 NDR_CHECK(ndr_pull_align(ndr, 5));
17864 uint32_t _flags_save_string = ndr->flags;
17865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17866 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
17867 if (_ptr_name_array) {
17868 NDR_PULL_ALLOC(ndr, r->name_array);
17869 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
17870 } else {
17871 r->name_array = NULL;
17873 ndr->flags = _flags_save_string;
17875 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17877 if (ndr_flags & NDR_BUFFERS) {
17879 uint32_t _flags_save_string = ndr->flags;
17880 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17881 if (r->name_array) {
17882 uint32_t _relative_save_offset;
17883 _relative_save_offset = ndr->offset;
17884 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
17885 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
17886 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
17887 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
17888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
17889 if (ndr->offset > ndr->relative_highest_offset) {
17890 ndr->relative_highest_offset = ndr->offset;
17892 ndr->offset = _relative_save_offset;
17894 ndr->flags = _flags_save_string;
17897 return NDR_ERR_SUCCESS;
17900 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
17902 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
17903 ndr->depth++;
17904 ndr_print_ptr(ndr, "name_array", r->name_array);
17905 ndr->depth++;
17906 if (r->name_array) {
17907 ndr_print_string(ndr, "name_array", r->name_array);
17909 ndr->depth--;
17910 ndr->depth--;
17913 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17915 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
17918 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
17920 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17921 if (ndr_flags & NDR_SCALARS) {
17922 int level = ndr_push_get_switch_value(ndr, r);
17923 NDR_CHECK(ndr_push_union_align(ndr, 5));
17924 switch (level) {
17925 case 1: {
17926 NDR_CHECK(ndr_push_align(ndr, 5));
17927 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17928 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17929 break; }
17931 default: {
17932 break; }
17936 if (ndr_flags & NDR_BUFFERS) {
17937 int level = ndr_push_get_switch_value(ndr, r);
17938 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17939 switch (level) {
17940 case 1:
17941 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17942 break;
17944 default:
17945 break;
17949 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17950 return NDR_ERR_SUCCESS;
17953 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
17955 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17956 int level;
17957 level = ndr_pull_get_switch_value(ndr, r);
17958 if (ndr_flags & NDR_SCALARS) {
17959 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17960 switch (level) {
17961 case 1: {
17962 NDR_CHECK(ndr_pull_align(ndr, 5));
17963 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17964 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17965 break; }
17967 default: {
17968 break; }
17972 if (ndr_flags & NDR_BUFFERS) {
17973 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17974 switch (level) {
17975 case 1:
17976 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17977 break;
17979 default:
17980 break;
17984 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17985 return NDR_ERR_SUCCESS;
17988 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
17990 int level;
17991 level = ndr_print_get_switch_value(ndr, r);
17992 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
17993 switch (level) {
17994 case 1:
17995 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
17996 break;
17998 default:
17999 break;
18004 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18007 return NDR_ERR_SUCCESS;
18010 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18012 uint32_t v;
18013 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18014 *r = v;
18015 return NDR_ERR_SUCCESS;
18018 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18020 ndr_print_uint32(ndr, name, r);
18021 ndr->depth++;
18022 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
18023 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
18024 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
18025 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
18026 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
18027 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
18028 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
18029 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
18030 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
18031 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
18032 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
18033 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
18034 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
18035 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
18036 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
18037 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
18038 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
18039 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
18040 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
18041 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
18042 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
18043 ndr->depth--;
18046 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
18048 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18049 return NDR_ERR_SUCCESS;
18052 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
18054 uint16_t v;
18055 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18056 *r = v;
18057 return NDR_ERR_SUCCESS;
18060 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
18062 const char *val = NULL;
18064 switch (r) {
18065 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
18066 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
18067 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
18068 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
18069 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
18070 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
18071 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18072 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
18073 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
18074 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
18075 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
18076 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
18077 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18078 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
18079 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
18080 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
18081 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
18082 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
18083 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
18084 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
18085 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
18086 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
18087 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
18088 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
18090 ndr_print_enum(ndr, name, "ENUM", val, r);
18093 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
18095 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18096 return NDR_ERR_SUCCESS;
18099 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
18101 uint16_t v;
18102 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18103 *r = v;
18104 return NDR_ERR_SUCCESS;
18107 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
18109 const char *val = NULL;
18111 switch (r) {
18112 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
18113 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
18114 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
18115 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
18116 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
18117 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
18118 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
18119 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
18120 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
18121 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18122 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
18123 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
18124 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18125 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
18126 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
18127 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
18128 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
18129 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
18130 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
18131 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
18132 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
18133 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
18134 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
18135 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
18136 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
18137 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
18138 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
18139 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
18141 ndr_print_enum(ndr, name, "ENUM", val, r);
18144 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
18146 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18147 return NDR_ERR_SUCCESS;
18150 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
18152 uint16_t v;
18153 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18154 *r = v;
18155 return NDR_ERR_SUCCESS;
18158 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
18160 const char *val = NULL;
18162 switch (r) {
18163 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
18164 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
18166 ndr_print_enum(ndr, name, "ENUM", val, r);
18169 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
18171 if (ndr_flags & NDR_SCALARS) {
18172 int level = ndr_push_get_switch_value(ndr, r);
18173 NDR_CHECK(ndr_push_union_align(ndr, 2));
18174 switch (level) {
18175 case PRINTER_NOTIFY_TYPE: {
18176 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18177 break; }
18179 case JOB_NOTIFY_TYPE: {
18180 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18181 break; }
18183 default: {
18184 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18185 break; }
18189 if (ndr_flags & NDR_BUFFERS) {
18190 int level = ndr_push_get_switch_value(ndr, r);
18191 switch (level) {
18192 case PRINTER_NOTIFY_TYPE:
18193 break;
18195 case JOB_NOTIFY_TYPE:
18196 break;
18198 default:
18199 break;
18203 return NDR_ERR_SUCCESS;
18206 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
18208 int level;
18209 level = ndr_pull_get_switch_value(ndr, r);
18210 if (ndr_flags & NDR_SCALARS) {
18211 NDR_CHECK(ndr_pull_union_align(ndr, 2));
18212 switch (level) {
18213 case PRINTER_NOTIFY_TYPE: {
18214 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18215 break; }
18217 case JOB_NOTIFY_TYPE: {
18218 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18219 break; }
18221 default: {
18222 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18223 break; }
18227 if (ndr_flags & NDR_BUFFERS) {
18228 switch (level) {
18229 case PRINTER_NOTIFY_TYPE:
18230 break;
18232 case JOB_NOTIFY_TYPE:
18233 break;
18235 default:
18236 break;
18240 return NDR_ERR_SUCCESS;
18243 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
18245 uint32_t cntr_fields_1;
18246 if (ndr_flags & NDR_SCALARS) {
18247 NDR_CHECK(ndr_push_align(ndr, 5));
18248 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18249 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
18250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
18251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
18252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18253 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
18254 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18256 if (ndr_flags & NDR_BUFFERS) {
18257 if (r->fields) {
18258 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18259 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18260 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18261 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18265 return NDR_ERR_SUCCESS;
18268 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
18270 uint32_t _ptr_fields;
18271 uint32_t cntr_fields_1;
18272 TALLOC_CTX *_mem_save_fields_0;
18273 TALLOC_CTX *_mem_save_fields_1;
18274 if (ndr_flags & NDR_SCALARS) {
18275 NDR_CHECK(ndr_pull_align(ndr, 5));
18276 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18277 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
18278 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
18279 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
18280 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18281 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
18282 if (_ptr_fields) {
18283 NDR_PULL_ALLOC(ndr, r->fields);
18284 } else {
18285 r->fields = NULL;
18287 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18289 if (ndr_flags & NDR_BUFFERS) {
18290 if (r->fields) {
18291 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
18292 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18293 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
18294 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
18295 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
18296 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18297 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18298 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18299 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
18302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
18304 if (r->fields) {
18305 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
18308 return NDR_ERR_SUCCESS;
18311 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
18313 uint32_t cntr_fields_1;
18314 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
18315 ndr->depth++;
18316 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18317 ndr_print_uint16(ndr, "u1", r->u1);
18318 ndr_print_uint32(ndr, "u2", r->u2);
18319 ndr_print_uint32(ndr, "u3", r->u3);
18320 ndr_print_uint32(ndr, "count", r->count);
18321 ndr_print_ptr(ndr, "fields", r->fields);
18322 ndr->depth++;
18323 if (r->fields) {
18324 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
18325 ndr->depth++;
18326 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
18327 char *idx_1=NULL;
18328 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
18329 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
18330 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
18331 free(idx_1);
18334 ndr->depth--;
18336 ndr->depth--;
18337 ndr->depth--;
18340 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18343 return NDR_ERR_SUCCESS;
18346 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18348 uint32_t v;
18349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18350 *r = v;
18351 return NDR_ERR_SUCCESS;
18354 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18356 ndr_print_uint32(ndr, name, r);
18357 ndr->depth++;
18358 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
18359 ndr->depth--;
18362 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
18364 uint32_t cntr_types_1;
18365 if (ndr_flags & NDR_SCALARS) {
18366 NDR_CHECK(ndr_push_align(ndr, 5));
18367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18368 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
18369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18370 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
18371 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18373 if (ndr_flags & NDR_BUFFERS) {
18374 if (r->types) {
18375 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18376 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18377 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18379 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18380 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18384 return NDR_ERR_SUCCESS;
18387 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
18389 uint32_t _ptr_types;
18390 uint32_t cntr_types_1;
18391 TALLOC_CTX *_mem_save_types_0;
18392 TALLOC_CTX *_mem_save_types_1;
18393 if (ndr_flags & NDR_SCALARS) {
18394 NDR_CHECK(ndr_pull_align(ndr, 5));
18395 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18396 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
18397 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18398 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
18399 if (_ptr_types) {
18400 NDR_PULL_ALLOC(ndr, r->types);
18401 } else {
18402 r->types = NULL;
18404 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18406 if (ndr_flags & NDR_BUFFERS) {
18407 if (r->types) {
18408 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
18409 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18410 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
18411 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
18412 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
18413 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18414 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18415 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18417 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18418 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
18421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
18423 if (r->types) {
18424 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
18427 return NDR_ERR_SUCCESS;
18430 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
18432 uint32_t cntr_types_1;
18433 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
18434 ndr->depth++;
18435 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18436 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
18437 ndr_print_uint32(ndr, "count", r->count);
18438 ndr_print_ptr(ndr, "types", r->types);
18439 ndr->depth++;
18440 if (r->types) {
18441 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
18442 ndr->depth++;
18443 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
18444 char *idx_1=NULL;
18445 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
18446 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
18447 free(idx_1);
18450 ndr->depth--;
18452 ndr->depth--;
18453 ndr->depth--;
18456 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
18458 if (ndr_flags & NDR_SCALARS) {
18459 NDR_CHECK(ndr_push_align(ndr, 5));
18460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18461 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
18462 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18464 if (ndr_flags & NDR_BUFFERS) {
18465 if (r->string) {
18466 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
18467 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
18470 return NDR_ERR_SUCCESS;
18473 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
18475 uint32_t _ptr_string;
18476 TALLOC_CTX *_mem_save_string_0;
18477 if (ndr_flags & NDR_SCALARS) {
18478 NDR_CHECK(ndr_pull_align(ndr, 5));
18479 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
18481 if (_ptr_string) {
18482 NDR_PULL_ALLOC(ndr, r->string);
18483 } else {
18484 r->string = NULL;
18486 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18488 if (ndr_flags & NDR_BUFFERS) {
18489 if (r->string) {
18490 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
18491 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
18492 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
18493 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
18494 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
18496 if (r->string) {
18497 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
18500 return NDR_ERR_SUCCESS;
18503 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
18505 ndr_print_struct(ndr, name, "spoolss_NotifyString");
18506 ndr->depth++;
18507 ndr_print_uint32(ndr, "size", r->size);
18508 ndr_print_ptr(ndr, "string", r->string);
18509 ndr->depth++;
18510 if (r->string) {
18511 ndr_print_string(ndr, "string", r->string);
18513 ndr->depth--;
18514 ndr->depth--;
18517 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
18519 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
18520 return NDR_ERR_SUCCESS;
18523 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
18525 uint32_t v;
18526 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
18527 *r = v;
18528 return NDR_ERR_SUCCESS;
18531 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
18533 const char *val = NULL;
18535 switch (r) {
18536 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
18537 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
18538 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
18539 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
18540 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
18542 ndr_print_enum(ndr, name, "ENUM", val, r);
18545 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
18547 if (ndr_flags & NDR_SCALARS) {
18548 int level = ndr_push_get_switch_value(ndr, r);
18549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18550 NDR_CHECK(ndr_push_union_align(ndr, 5));
18551 switch (level) {
18552 case 1: {
18553 uint32_t cntr_integer_0;
18554 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
18557 break; }
18559 case 2: {
18560 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18561 break; }
18563 case 3: {
18564 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18565 break; }
18567 case 4: {
18568 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18569 break; }
18571 case 5: {
18572 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18573 break; }
18575 default:
18576 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18579 if (ndr_flags & NDR_BUFFERS) {
18580 int level = ndr_push_get_switch_value(ndr, r);
18581 switch (level) {
18582 case 1:
18583 break;
18585 case 2:
18586 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18587 break;
18589 case 3:
18590 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18591 break;
18593 case 4:
18594 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18595 break;
18597 case 5:
18598 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18599 break;
18601 default:
18602 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18605 return NDR_ERR_SUCCESS;
18608 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
18610 int level;
18611 uint32_t _level;
18612 level = ndr_pull_get_switch_value(ndr, r);
18613 if (ndr_flags & NDR_SCALARS) {
18614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18615 if (_level != level) {
18616 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18618 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18619 switch (level) {
18620 case 1: {
18621 uint32_t cntr_integer_0;
18622 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18623 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
18625 break; }
18627 case 2: {
18628 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18629 break; }
18631 case 3: {
18632 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18633 break; }
18635 case 4: {
18636 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18637 break; }
18639 case 5: {
18640 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18641 break; }
18643 default:
18644 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18647 if (ndr_flags & NDR_BUFFERS) {
18648 switch (level) {
18649 case 1:
18650 break;
18652 case 2:
18653 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18654 break;
18656 case 3:
18657 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18658 break;
18660 case 4:
18661 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18662 break;
18664 case 5:
18665 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18666 break;
18668 default:
18669 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18672 return NDR_ERR_SUCCESS;
18675 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
18677 int level;
18678 uint32_t cntr_integer_0;
18679 level = ndr_print_get_switch_value(ndr, r);
18680 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
18681 switch (level) {
18682 case 1:
18683 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
18684 ndr->depth++;
18685 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
18686 char *idx_0=NULL;
18687 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
18688 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
18689 free(idx_0);
18692 ndr->depth--;
18693 break;
18695 case 2:
18696 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
18697 break;
18699 case 3:
18700 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
18701 break;
18703 case 4:
18704 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
18705 break;
18707 case 5:
18708 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
18709 break;
18711 default:
18712 ndr_print_bad_level(ndr, name, level);
18716 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
18718 if (ndr_flags & NDR_SCALARS) {
18719 NDR_CHECK(ndr_push_align(ndr, 5));
18720 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18721 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
18722 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18723 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
18724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
18725 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
18726 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18727 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18729 if (ndr_flags & NDR_BUFFERS) {
18730 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18732 return NDR_ERR_SUCCESS;
18735 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
18737 if (ndr_flags & NDR_SCALARS) {
18738 NDR_CHECK(ndr_pull_align(ndr, 5));
18739 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18740 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
18741 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18742 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
18743 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
18744 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
18745 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18746 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18748 if (ndr_flags & NDR_BUFFERS) {
18749 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18751 return NDR_ERR_SUCCESS;
18754 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
18756 ndr_print_struct(ndr, name, "spoolss_Notify");
18757 ndr->depth++;
18758 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18759 ndr_print_set_switch_value(ndr, &r->field, r->type);
18760 ndr_print_spoolss_Field(ndr, "field", &r->field);
18761 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
18762 ndr_print_uint32(ndr, "job_id", r->job_id);
18763 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
18764 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
18765 ndr->depth--;
18768 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
18770 uint32_t cntr_notifies_0;
18771 if (ndr_flags & NDR_SCALARS) {
18772 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18773 NDR_CHECK(ndr_push_align(ndr, 5));
18774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18777 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18778 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18780 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18782 if (ndr_flags & NDR_BUFFERS) {
18783 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18784 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18787 return NDR_ERR_SUCCESS;
18790 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
18792 uint32_t cntr_notifies_0;
18793 TALLOC_CTX *_mem_save_notifies_0;
18794 if (ndr_flags & NDR_SCALARS) {
18795 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
18796 NDR_CHECK(ndr_pull_align(ndr, 5));
18797 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18798 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18799 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18800 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
18801 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18802 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18803 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18804 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18806 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18807 if (r->notifies) {
18808 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
18810 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18812 if (ndr_flags & NDR_BUFFERS) {
18813 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18814 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18815 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18816 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18818 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18820 return NDR_ERR_SUCCESS;
18823 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
18825 uint32_t cntr_notifies_0;
18826 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
18827 ndr->depth++;
18828 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18829 ndr_print_uint32(ndr, "flags", r->flags);
18830 ndr_print_uint32(ndr, "count", r->count);
18831 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
18832 ndr->depth++;
18833 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
18834 char *idx_0=NULL;
18835 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
18836 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
18837 free(idx_0);
18840 ndr->depth--;
18841 ndr->depth--;
18844 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
18846 if (ndr_flags & NDR_SCALARS) {
18847 int level = ndr_push_get_switch_value(ndr, r);
18848 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18849 NDR_CHECK(ndr_push_union_align(ndr, 5));
18850 switch (level) {
18851 case 0: {
18852 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
18853 break; }
18855 default:
18856 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18859 if (ndr_flags & NDR_BUFFERS) {
18860 int level = ndr_push_get_switch_value(ndr, r);
18861 switch (level) {
18862 case 0:
18863 if (r->info0) {
18864 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18866 break;
18868 default:
18869 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18872 return NDR_ERR_SUCCESS;
18875 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
18877 int level;
18878 uint32_t _level;
18879 TALLOC_CTX *_mem_save_info0_0;
18880 level = ndr_pull_get_switch_value(ndr, r);
18881 if (ndr_flags & NDR_SCALARS) {
18882 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18883 if (_level != level) {
18884 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18886 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18887 switch (level) {
18888 case 0: {
18889 uint32_t _ptr_info0;
18890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
18891 if (_ptr_info0) {
18892 NDR_PULL_ALLOC(ndr, r->info0);
18893 } else {
18894 r->info0 = NULL;
18896 break; }
18898 default:
18899 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18902 if (ndr_flags & NDR_BUFFERS) {
18903 switch (level) {
18904 case 0:
18905 if (r->info0) {
18906 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
18907 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
18908 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
18911 break;
18913 default:
18914 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18917 return NDR_ERR_SUCCESS;
18920 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
18922 int level;
18923 level = ndr_print_get_switch_value(ndr, r);
18924 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
18925 switch (level) {
18926 case 0:
18927 ndr_print_ptr(ndr, "info0", r->info0);
18928 ndr->depth++;
18929 if (r->info0) {
18930 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
18932 ndr->depth--;
18933 break;
18935 default:
18936 ndr_print_bad_level(ndr, name, level);
18940 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18942 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18943 return NDR_ERR_SUCCESS;
18946 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18948 uint32_t v;
18949 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18950 *r = v;
18951 return NDR_ERR_SUCCESS;
18954 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18956 ndr_print_uint32(ndr, name, r);
18957 ndr->depth++;
18958 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
18959 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
18960 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
18961 ndr->depth--;
18964 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
18966 if (ndr_flags & NDR_SCALARS) {
18967 NDR_CHECK(ndr_push_align(ndr, 5));
18968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18969 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18970 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18971 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18972 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18973 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18974 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18975 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18977 if (ndr_flags & NDR_BUFFERS) {
18978 if (r->client) {
18979 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18980 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18981 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18982 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18984 if (r->user) {
18985 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18986 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18987 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18988 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18991 return NDR_ERR_SUCCESS;
18994 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
18996 uint32_t _ptr_client;
18997 TALLOC_CTX *_mem_save_client_0;
18998 uint32_t _ptr_user;
18999 TALLOC_CTX *_mem_save_user_0;
19000 if (ndr_flags & NDR_SCALARS) {
19001 NDR_CHECK(ndr_pull_align(ndr, 5));
19002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19003 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19004 if (_ptr_client) {
19005 NDR_PULL_ALLOC(ndr, r->client);
19006 } else {
19007 r->client = NULL;
19009 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19010 if (_ptr_user) {
19011 NDR_PULL_ALLOC(ndr, r->user);
19012 } else {
19013 r->user = NULL;
19015 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19016 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19017 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19018 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19019 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19021 if (ndr_flags & NDR_BUFFERS) {
19022 if (r->client) {
19023 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19024 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19025 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19026 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19027 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19028 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));
19030 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19031 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19034 if (r->user) {
19035 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19036 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19037 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19038 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19039 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19040 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));
19042 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19043 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19047 return NDR_ERR_SUCCESS;
19050 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
19052 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
19053 ndr->depth++;
19054 ndr_print_uint32(ndr, "size", r->size);
19055 ndr_print_ptr(ndr, "client", r->client);
19056 ndr->depth++;
19057 if (r->client) {
19058 ndr_print_string(ndr, "client", r->client);
19060 ndr->depth--;
19061 ndr_print_ptr(ndr, "user", r->user);
19062 ndr->depth++;
19063 if (r->user) {
19064 ndr_print_string(ndr, "user", r->user);
19066 ndr->depth--;
19067 ndr_print_uint32(ndr, "build", r->build);
19068 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19069 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19070 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19071 ndr->depth--;
19074 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
19076 if (ndr_flags & NDR_SCALARS) {
19077 NDR_CHECK(ndr_push_align(ndr, 4));
19078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
19079 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19081 if (ndr_flags & NDR_BUFFERS) {
19083 return NDR_ERR_SUCCESS;
19086 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
19088 if (ndr_flags & NDR_SCALARS) {
19089 NDR_CHECK(ndr_pull_align(ndr, 4));
19090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
19091 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19093 if (ndr_flags & NDR_BUFFERS) {
19095 return NDR_ERR_SUCCESS;
19098 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
19100 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
19101 ndr->depth++;
19102 ndr_print_uint32(ndr, "not_used", r->not_used);
19103 ndr->depth--;
19106 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
19108 if (ndr_flags & NDR_SCALARS) {
19109 NDR_CHECK(ndr_push_align(ndr, 5));
19110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
19113 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19114 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19116 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19117 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19118 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19119 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
19120 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19122 if (ndr_flags & NDR_BUFFERS) {
19123 if (r->client) {
19124 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19125 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19126 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19127 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19129 if (r->user) {
19130 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19131 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19132 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19133 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19136 return NDR_ERR_SUCCESS;
19139 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
19141 uint32_t _ptr_client;
19142 TALLOC_CTX *_mem_save_client_0;
19143 uint32_t _ptr_user;
19144 TALLOC_CTX *_mem_save_user_0;
19145 if (ndr_flags & NDR_SCALARS) {
19146 NDR_CHECK(ndr_pull_align(ndr, 5));
19147 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
19150 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19151 if (_ptr_client) {
19152 NDR_PULL_ALLOC(ndr, r->client);
19153 } else {
19154 r->client = NULL;
19156 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19157 if (_ptr_user) {
19158 NDR_PULL_ALLOC(ndr, r->user);
19159 } else {
19160 r->user = NULL;
19162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19163 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19164 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19165 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19166 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
19167 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19169 if (ndr_flags & NDR_BUFFERS) {
19170 if (r->client) {
19171 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19172 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19173 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19174 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19175 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19176 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));
19178 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19179 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19182 if (r->user) {
19183 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19184 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19185 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19186 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19187 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19188 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));
19190 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19191 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19195 return NDR_ERR_SUCCESS;
19198 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
19200 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
19201 ndr->depth++;
19202 ndr_print_uint32(ndr, "size", r->size);
19203 ndr_print_uint32(ndr, "flags", r->flags);
19204 ndr_print_uint32(ndr, "size2", r->size2);
19205 ndr_print_ptr(ndr, "client", r->client);
19206 ndr->depth++;
19207 if (r->client) {
19208 ndr_print_string(ndr, "client", r->client);
19210 ndr->depth--;
19211 ndr_print_ptr(ndr, "user", r->user);
19212 ndr->depth++;
19213 if (r->user) {
19214 ndr_print_string(ndr, "user", r->user);
19216 ndr->depth--;
19217 ndr_print_uint32(ndr, "build", r->build);
19218 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19219 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19220 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19221 ndr_print_udlong(ndr, "reserved", r->reserved);
19222 ndr->depth--;
19225 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
19227 if (ndr_flags & NDR_SCALARS) {
19228 int level = ndr_push_get_switch_value(ndr, r);
19229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19230 NDR_CHECK(ndr_push_union_align(ndr, 5));
19231 switch (level) {
19232 case 1: {
19233 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
19234 break; }
19236 case 2: {
19237 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
19238 break; }
19240 case 3: {
19241 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
19242 break; }
19244 default:
19245 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19248 if (ndr_flags & NDR_BUFFERS) {
19249 int level = ndr_push_get_switch_value(ndr, r);
19250 switch (level) {
19251 case 1:
19252 if (r->level1) {
19253 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19255 break;
19257 case 2:
19258 if (r->level2) {
19259 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19261 break;
19263 case 3:
19264 if (r->level3) {
19265 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19267 break;
19269 default:
19270 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19273 return NDR_ERR_SUCCESS;
19276 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
19278 int level;
19279 uint32_t _level;
19280 TALLOC_CTX *_mem_save_level1_0;
19281 TALLOC_CTX *_mem_save_level2_0;
19282 TALLOC_CTX *_mem_save_level3_0;
19283 level = ndr_pull_get_switch_value(ndr, r);
19284 if (ndr_flags & NDR_SCALARS) {
19285 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19286 if (_level != level) {
19287 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19289 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19290 switch (level) {
19291 case 1: {
19292 uint32_t _ptr_level1;
19293 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
19294 if (_ptr_level1) {
19295 NDR_PULL_ALLOC(ndr, r->level1);
19296 } else {
19297 r->level1 = NULL;
19299 break; }
19301 case 2: {
19302 uint32_t _ptr_level2;
19303 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
19304 if (_ptr_level2) {
19305 NDR_PULL_ALLOC(ndr, r->level2);
19306 } else {
19307 r->level2 = NULL;
19309 break; }
19311 case 3: {
19312 uint32_t _ptr_level3;
19313 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
19314 if (_ptr_level3) {
19315 NDR_PULL_ALLOC(ndr, r->level3);
19316 } else {
19317 r->level3 = NULL;
19319 break; }
19321 default:
19322 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19325 if (ndr_flags & NDR_BUFFERS) {
19326 switch (level) {
19327 case 1:
19328 if (r->level1) {
19329 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
19330 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
19331 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
19334 break;
19336 case 2:
19337 if (r->level2) {
19338 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
19339 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
19340 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19341 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
19343 break;
19345 case 3:
19346 if (r->level3) {
19347 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
19348 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
19349 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
19352 break;
19354 default:
19355 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19358 return NDR_ERR_SUCCESS;
19361 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
19363 int level;
19364 level = ndr_print_get_switch_value(ndr, r);
19365 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
19366 switch (level) {
19367 case 1:
19368 ndr_print_ptr(ndr, "level1", r->level1);
19369 ndr->depth++;
19370 if (r->level1) {
19371 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
19373 ndr->depth--;
19374 break;
19376 case 2:
19377 ndr_print_ptr(ndr, "level2", r->level2);
19378 ndr->depth++;
19379 if (r->level2) {
19380 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
19382 ndr->depth--;
19383 break;
19385 case 3:
19386 ndr_print_ptr(ndr, "level3", r->level3);
19387 ndr->depth++;
19388 if (r->level3) {
19389 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
19391 ndr->depth--;
19392 break;
19394 default:
19395 ndr_print_bad_level(ndr, name, level);
19399 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
19401 if (ndr_flags & NDR_SCALARS) {
19402 NDR_CHECK(ndr_push_align(ndr, 5));
19403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
19404 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
19405 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19406 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19408 if (ndr_flags & NDR_BUFFERS) {
19409 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19411 return NDR_ERR_SUCCESS;
19414 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
19416 if (ndr_flags & NDR_SCALARS) {
19417 NDR_CHECK(ndr_pull_align(ndr, 5));
19418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
19419 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
19420 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19421 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19423 if (ndr_flags & NDR_BUFFERS) {
19424 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19426 return NDR_ERR_SUCCESS;
19429 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
19431 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
19432 ndr->depth++;
19433 ndr_print_uint32(ndr, "level", r->level);
19434 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
19435 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
19436 ndr->depth--;
19439 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19442 return NDR_ERR_SUCCESS;
19445 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19447 uint32_t v;
19448 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19449 *r = v;
19450 return NDR_ERR_SUCCESS;
19453 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
19455 ndr_print_uint32(ndr, name, r);
19456 ndr->depth++;
19457 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
19458 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
19459 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
19460 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
19461 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
19462 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
19463 ndr->depth--;
19466 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
19468 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
19469 if (ndr_flags & NDR_SCALARS) {
19470 NDR_CHECK(ndr_push_align(ndr, 5));
19471 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19473 uint32_t _flags_save_string = ndr->flags;
19474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19475 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
19476 ndr->flags = _flags_save_string;
19478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
19479 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
19480 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
19481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
19482 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19484 if (ndr_flags & NDR_BUFFERS) {
19485 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
19487 uint32_t _flags_save_string = ndr->flags;
19488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19489 if (r->value_name) {
19490 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->value_name));
19491 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
19493 ndr->flags = _flags_save_string;
19495 if (r->data) {
19496 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data));
19498 struct ndr_push *_ndr_data;
19499 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19500 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
19501 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19502 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19506 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
19507 return NDR_ERR_SUCCESS;
19510 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
19512 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
19513 uint32_t _ptr_value_name;
19514 TALLOC_CTX *_mem_save_value_name_0;
19515 uint32_t _ptr_data;
19516 TALLOC_CTX *_mem_save_data_0;
19517 if (ndr_flags & NDR_SCALARS) {
19518 NDR_CHECK(ndr_pull_align(ndr, 5));
19519 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19521 uint32_t _flags_save_string = ndr->flags;
19522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19523 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
19524 if (_ptr_value_name) {
19525 NDR_PULL_ALLOC(ndr, r->value_name);
19526 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
19527 } else {
19528 r->value_name = NULL;
19530 ndr->flags = _flags_save_string;
19532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
19533 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
19534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
19535 if (_ptr_data) {
19536 NDR_PULL_ALLOC(ndr, r->data);
19537 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
19538 } else {
19539 r->data = NULL;
19541 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
19542 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19544 if (ndr_flags & NDR_BUFFERS) {
19545 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19547 uint32_t _flags_save_string = ndr->flags;
19548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19549 if (r->value_name) {
19550 uint32_t _relative_save_offset;
19551 _relative_save_offset = ndr->offset;
19552 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
19553 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19554 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
19555 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
19556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
19557 if (ndr->offset > ndr->relative_highest_offset) {
19558 ndr->relative_highest_offset = ndr->offset;
19560 ndr->offset = _relative_save_offset;
19562 ndr->flags = _flags_save_string;
19564 if (r->data) {
19565 uint32_t _relative_save_offset;
19566 _relative_save_offset = ndr->offset;
19567 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
19568 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
19569 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
19571 struct ndr_pull *_ndr_data;
19572 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19573 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
19574 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19575 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
19578 if (ndr->offset > ndr->relative_highest_offset) {
19579 ndr->relative_highest_offset = ndr->offset;
19581 ndr->offset = _relative_save_offset;
19584 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
19585 return NDR_ERR_SUCCESS;
19588 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
19590 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
19591 ndr->depth++;
19592 ndr_print_ptr(ndr, "value_name", r->value_name);
19593 ndr->depth++;
19594 if (r->value_name) {
19595 ndr_print_string(ndr, "value_name", r->value_name);
19597 ndr->depth--;
19598 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
19599 ndr_print_winreg_Type(ndr, "type", r->type);
19600 ndr_print_ptr(ndr, "data", r->data);
19601 ndr->depth++;
19602 if (r->data) {
19603 ndr_print_set_switch_value(ndr, r->data, r->type);
19604 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
19606 ndr->depth--;
19607 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);
19608 ndr->depth--;
19611 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
19613 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
19616 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19619 return NDR_ERR_SUCCESS;
19622 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19624 uint32_t v;
19625 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19626 *r = v;
19627 return NDR_ERR_SUCCESS;
19630 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19632 ndr_print_uint32(ndr, name, r);
19633 ndr->depth++;
19634 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
19635 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
19636 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
19637 ndr->depth--;
19640 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
19642 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
19643 return NDR_ERR_SUCCESS;
19646 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
19648 uint32_t v;
19649 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19650 *r = v;
19651 return NDR_ERR_SUCCESS;
19654 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
19656 const char *val = NULL;
19658 switch (r) {
19659 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
19660 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
19662 ndr_print_enum(ndr, name, "ENUM", val, r);
19665 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
19667 if (ndr_flags & NDR_SCALARS) {
19668 NDR_CHECK(ndr_push_align(ndr, 4));
19669 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
19671 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19674 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19675 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19676 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19677 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19678 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19679 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19680 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19684 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19686 if (ndr_flags & NDR_BUFFERS) {
19688 return NDR_ERR_SUCCESS;
19691 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
19693 if (ndr_flags & NDR_SCALARS) {
19694 NDR_CHECK(ndr_pull_align(ndr, 4));
19695 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19696 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19697 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19698 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19699 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19700 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19701 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19702 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19703 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19704 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19705 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19706 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19707 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19708 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19709 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19710 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19712 if (ndr_flags & NDR_BUFFERS) {
19714 return NDR_ERR_SUCCESS;
19717 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
19719 ndr_print_struct(ndr, name, "spoolss_PortData1");
19720 ndr->depth++;
19721 ndr_print_string(ndr, "portname", r->portname);
19722 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
19723 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19724 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19725 ndr_print_uint32(ndr, "reserved", r->reserved);
19726 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19727 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19728 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19729 ndr_print_string(ndr, "queue", r->queue);
19730 ndr_print_string(ndr, "ip_address", r->ip_address);
19731 ndr_print_string(ndr, "hardware_address", r->hardware_address);
19732 ndr_print_string(ndr, "device_type", r->device_type);
19733 ndr_print_uint32(ndr, "port_number", r->port_number);
19734 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19735 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19736 ndr->depth--;
19739 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
19741 if (ndr_flags & NDR_SCALARS) {
19742 NDR_CHECK(ndr_push_align(ndr, 4));
19743 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
19745 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19748 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19749 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19751 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19752 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19755 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
19757 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19759 if (ndr_flags & NDR_BUFFERS) {
19761 return NDR_ERR_SUCCESS;
19764 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
19766 if (ndr_flags & NDR_SCALARS) {
19767 NDR_CHECK(ndr_pull_align(ndr, 4));
19768 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19770 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19773 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19774 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19775 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19776 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19777 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19778 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19779 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19780 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19781 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
19782 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19784 if (ndr_flags & NDR_BUFFERS) {
19786 return NDR_ERR_SUCCESS;
19789 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
19791 ndr_print_struct(ndr, name, "spoolss_PortData2");
19792 ndr->depth++;
19793 ndr_print_string(ndr, "portname", r->portname);
19794 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
19795 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19796 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19797 ndr_print_uint32(ndr, "reserved", r->reserved);
19798 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19799 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19800 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19801 ndr_print_string(ndr, "queue", r->queue);
19802 ndr_print_string(ndr, "device_type", r->device_type);
19803 ndr_print_uint32(ndr, "port_number", r->port_number);
19804 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19805 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19806 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
19807 ndr->depth--;
19810 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
19812 if (ndr_flags & NDR_SCALARS) {
19813 NDR_CHECK(ndr_push_align(ndr, 4));
19815 uint32_t _flags_save_string = ndr->flags;
19816 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19817 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
19818 ndr->flags = _flags_save_string;
19820 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19822 if (ndr_flags & NDR_BUFFERS) {
19824 return NDR_ERR_SUCCESS;
19827 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
19829 if (ndr_flags & NDR_SCALARS) {
19830 NDR_CHECK(ndr_pull_align(ndr, 4));
19832 uint32_t _flags_save_string = ndr->flags;
19833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19834 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
19835 ndr->flags = _flags_save_string;
19837 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19839 if (ndr_flags & NDR_BUFFERS) {
19841 return NDR_ERR_SUCCESS;
19844 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
19846 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
19847 ndr->depth++;
19848 ndr_print_string(ndr, "dll_name", r->dll_name);
19849 ndr->depth--;
19852 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19855 return NDR_ERR_SUCCESS;
19858 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19860 uint32_t v;
19861 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19862 *r = v;
19863 return NDR_ERR_SUCCESS;
19866 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19868 ndr_print_uint32(ndr, name, r);
19869 ndr->depth++;
19870 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
19871 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
19872 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
19873 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
19874 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
19875 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
19876 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
19877 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
19878 ndr->depth--;
19881 static enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, int ndr_flags, const struct spoolss_CorePrinterDriver *r)
19883 if (ndr_flags & NDR_SCALARS) {
19884 NDR_CHECK(ndr_push_align(ndr, 8));
19885 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
19886 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
19887 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
19888 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 520, sizeof(uint8_t), CH_UTF8));
19889 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
19891 if (ndr_flags & NDR_BUFFERS) {
19893 return NDR_ERR_SUCCESS;
19896 static enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, int ndr_flags, struct spoolss_CorePrinterDriver *r)
19898 if (ndr_flags & NDR_SCALARS) {
19899 NDR_CHECK(ndr_pull_align(ndr, 8));
19900 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
19901 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
19902 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
19903 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 520, sizeof(uint8_t), CH_UTF8));
19904 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
19906 if (ndr_flags & NDR_BUFFERS) {
19908 return NDR_ERR_SUCCESS;
19911 _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
19913 ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
19914 ndr->depth++;
19915 ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
19916 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
19917 ndr_print_hyper(ndr, "driver_version", r->driver_version);
19918 ndr_print_string(ndr, "formname", r->formname);
19919 ndr->depth--;
19922 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
19924 if (flags & NDR_IN) {
19925 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
19926 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19927 if (r->in.server) {
19928 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19929 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19930 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19931 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19934 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19935 if (r->in.buffer) {
19936 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19938 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19940 if (flags & NDR_OUT) {
19941 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19942 if (r->out.info) {
19943 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19945 if (r->out.needed == NULL) {
19946 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19949 if (r->out.count == NULL) {
19950 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19952 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19953 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19955 return NDR_ERR_SUCCESS;
19958 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
19960 uint32_t _ptr_server;
19961 uint32_t _ptr_buffer;
19962 uint32_t _ptr_info;
19963 TALLOC_CTX *_mem_save_server_0;
19964 TALLOC_CTX *_mem_save_buffer_0;
19965 TALLOC_CTX *_mem_save_info_0;
19966 TALLOC_CTX *_mem_save_needed_0;
19967 TALLOC_CTX *_mem_save_count_0;
19968 if (flags & NDR_IN) {
19969 ZERO_STRUCT(r->out);
19971 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
19972 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19973 if (_ptr_server) {
19974 NDR_PULL_ALLOC(ndr, r->in.server);
19975 } else {
19976 r->in.server = NULL;
19978 if (r->in.server) {
19979 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19980 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19981 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19982 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19983 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19984 return 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));
19986 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19987 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19990 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19991 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19992 if (_ptr_buffer) {
19993 NDR_PULL_ALLOC(ndr, r->in.buffer);
19994 } else {
19995 r->in.buffer = NULL;
19997 if (r->in.buffer) {
19998 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19999 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20000 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20001 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20004 NDR_PULL_ALLOC(ndr, r->out.needed);
20005 ZERO_STRUCTP(r->out.needed);
20006 NDR_PULL_ALLOC(ndr, r->out.count);
20007 ZERO_STRUCTP(r->out.count);
20009 if (flags & NDR_OUT) {
20010 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20011 if (_ptr_info) {
20012 NDR_PULL_ALLOC(ndr, r->out.info);
20013 } else {
20014 r->out.info = NULL;
20016 if (r->out.info) {
20017 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20018 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20019 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20022 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20023 NDR_PULL_ALLOC(ndr, r->out.needed);
20025 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20026 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20027 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20029 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20030 NDR_PULL_ALLOC(ndr, r->out.count);
20032 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20033 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20034 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20036 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20038 return NDR_ERR_SUCCESS;
20041 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
20043 uint32_t cntr_info_0;
20044 if (flags & NDR_IN) {
20045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20048 if (flags & NDR_OUT) {
20049 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20050 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20051 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20053 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20054 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20057 return NDR_ERR_SUCCESS;
20060 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
20062 uint32_t cntr_info_0;
20063 TALLOC_CTX *_mem_save_info_0;
20064 if (flags & NDR_IN) {
20065 ZERO_STRUCT(r->out);
20067 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20068 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20070 if (flags & NDR_OUT) {
20071 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20072 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20073 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20074 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20075 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20076 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20078 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20079 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20083 return NDR_ERR_SUCCESS;
20086 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
20088 uint32_t cntr_info_2;
20089 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
20090 ndr->depth++;
20091 if (flags & NDR_SET_VALUES) {
20092 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20094 if (flags & NDR_IN) {
20095 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
20096 ndr->depth++;
20097 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
20098 ndr_print_ptr(ndr, "server", r->in.server);
20099 ndr->depth++;
20100 if (r->in.server) {
20101 ndr_print_string(ndr, "server", r->in.server);
20103 ndr->depth--;
20104 ndr_print_uint32(ndr, "level", r->in.level);
20105 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20106 ndr->depth++;
20107 if (r->in.buffer) {
20108 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20110 ndr->depth--;
20111 ndr_print_uint32(ndr, "offered", r->in.offered);
20112 ndr->depth--;
20114 if (flags & NDR_OUT) {
20115 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
20116 ndr->depth++;
20117 ndr_print_ptr(ndr, "count", r->out.count);
20118 ndr->depth++;
20119 ndr_print_uint32(ndr, "count", *r->out.count);
20120 ndr->depth--;
20121 ndr_print_ptr(ndr, "info", r->out.info);
20122 ndr->depth++;
20123 ndr_print_ptr(ndr, "info", *r->out.info);
20124 ndr->depth++;
20125 if (*r->out.info) {
20126 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20127 ndr->depth++;
20128 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20129 char *idx_2=NULL;
20130 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20131 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20132 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20133 free(idx_2);
20136 ndr->depth--;
20138 ndr->depth--;
20139 ndr->depth--;
20140 ndr_print_ptr(ndr, "needed", r->out.needed);
20141 ndr->depth++;
20142 ndr_print_uint32(ndr, "needed", *r->out.needed);
20143 ndr->depth--;
20144 ndr_print_WERROR(ndr, "result", r->out.result);
20145 ndr->depth--;
20147 ndr->depth--;
20150 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
20152 if (flags & NDR_IN) {
20153 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
20154 if (r->in.printername) {
20155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20156 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20157 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20158 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20160 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
20161 if (r->in.datatype) {
20162 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20163 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20164 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20165 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20167 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20168 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
20170 if (flags & NDR_OUT) {
20171 if (r->out.handle == NULL) {
20172 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20174 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20175 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20177 return NDR_ERR_SUCCESS;
20180 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
20182 uint32_t _ptr_printername;
20183 uint32_t _ptr_datatype;
20184 TALLOC_CTX *_mem_save_printername_0;
20185 TALLOC_CTX *_mem_save_datatype_0;
20186 TALLOC_CTX *_mem_save_handle_0;
20187 if (flags & NDR_IN) {
20188 ZERO_STRUCT(r->out);
20190 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
20191 if (_ptr_printername) {
20192 NDR_PULL_ALLOC(ndr, r->in.printername);
20193 } else {
20194 r->in.printername = NULL;
20196 if (r->in.printername) {
20197 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20198 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
20199 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
20200 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
20201 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
20202 return 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));
20204 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
20205 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
20206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
20208 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
20209 if (_ptr_datatype) {
20210 NDR_PULL_ALLOC(ndr, r->in.datatype);
20211 } else {
20212 r->in.datatype = NULL;
20214 if (r->in.datatype) {
20215 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
20216 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
20217 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
20218 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
20219 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
20220 return 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));
20222 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
20223 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
20224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
20226 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20227 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
20228 NDR_PULL_ALLOC(ndr, r->out.handle);
20229 ZERO_STRUCTP(r->out.handle);
20231 if (flags & NDR_OUT) {
20232 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20233 NDR_PULL_ALLOC(ndr, r->out.handle);
20235 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20236 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20237 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20239 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20241 return NDR_ERR_SUCCESS;
20244 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
20246 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
20247 ndr->depth++;
20248 if (flags & NDR_SET_VALUES) {
20249 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20251 if (flags & NDR_IN) {
20252 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
20253 ndr->depth++;
20254 ndr_print_ptr(ndr, "printername", r->in.printername);
20255 ndr->depth++;
20256 if (r->in.printername) {
20257 ndr_print_string(ndr, "printername", r->in.printername);
20259 ndr->depth--;
20260 ndr_print_ptr(ndr, "datatype", r->in.datatype);
20261 ndr->depth++;
20262 if (r->in.datatype) {
20263 ndr_print_string(ndr, "datatype", r->in.datatype);
20265 ndr->depth--;
20266 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
20267 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
20268 ndr->depth--;
20270 if (flags & NDR_OUT) {
20271 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
20272 ndr->depth++;
20273 ndr_print_ptr(ndr, "handle", r->out.handle);
20274 ndr->depth++;
20275 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20276 ndr->depth--;
20277 ndr_print_WERROR(ndr, "result", r->out.result);
20278 ndr->depth--;
20280 ndr->depth--;
20283 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
20285 if (flags & NDR_IN) {
20286 if (r->in.handle == NULL) {
20287 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20289 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20291 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
20292 if (r->in.ctr) {
20293 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20295 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
20297 if (flags & NDR_OUT) {
20298 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20300 return NDR_ERR_SUCCESS;
20303 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
20305 uint32_t _ptr_ctr;
20306 TALLOC_CTX *_mem_save_handle_0;
20307 TALLOC_CTX *_mem_save_ctr_0;
20308 if (flags & NDR_IN) {
20309 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20310 NDR_PULL_ALLOC(ndr, r->in.handle);
20312 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20313 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20314 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20316 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
20318 if (_ptr_ctr) {
20319 NDR_PULL_ALLOC(ndr, r->in.ctr);
20320 } else {
20321 r->in.ctr = NULL;
20323 if (r->in.ctr) {
20324 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20325 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
20326 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
20329 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
20331 if (flags & NDR_OUT) {
20332 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20334 return NDR_ERR_SUCCESS;
20337 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
20339 ndr_print_struct(ndr, name, "spoolss_SetJob");
20340 ndr->depth++;
20341 if (flags & NDR_SET_VALUES) {
20342 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20344 if (flags & NDR_IN) {
20345 ndr_print_struct(ndr, "in", "spoolss_SetJob");
20346 ndr->depth++;
20347 ndr_print_ptr(ndr, "handle", r->in.handle);
20348 ndr->depth++;
20349 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20350 ndr->depth--;
20351 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20352 ndr_print_ptr(ndr, "ctr", r->in.ctr);
20353 ndr->depth++;
20354 if (r->in.ctr) {
20355 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
20357 ndr->depth--;
20358 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
20359 ndr->depth--;
20361 if (flags & NDR_OUT) {
20362 ndr_print_struct(ndr, "out", "spoolss_SetJob");
20363 ndr->depth++;
20364 ndr_print_WERROR(ndr, "result", r->out.result);
20365 ndr->depth--;
20367 ndr->depth--;
20370 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
20372 if (flags & NDR_IN) {
20373 if (r->in.handle == NULL) {
20374 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20376 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20379 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20380 if (r->in.buffer) {
20381 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20385 if (flags & NDR_OUT) {
20386 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20387 if (r->out.info) {
20389 struct ndr_push *_ndr_info;
20390 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20391 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20392 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20393 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20396 if (r->out.needed == NULL) {
20397 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20400 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20402 return NDR_ERR_SUCCESS;
20405 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
20407 uint32_t _ptr_buffer;
20408 uint32_t _ptr_info;
20409 TALLOC_CTX *_mem_save_handle_0;
20410 TALLOC_CTX *_mem_save_buffer_0;
20411 TALLOC_CTX *_mem_save_info_0;
20412 TALLOC_CTX *_mem_save_needed_0;
20413 if (flags & NDR_IN) {
20414 ZERO_STRUCT(r->out);
20416 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20417 NDR_PULL_ALLOC(ndr, r->in.handle);
20419 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20420 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20421 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20422 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20425 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20426 if (_ptr_buffer) {
20427 NDR_PULL_ALLOC(ndr, r->in.buffer);
20428 } else {
20429 r->in.buffer = NULL;
20431 if (r->in.buffer) {
20432 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20433 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20434 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20438 NDR_PULL_ALLOC(ndr, r->out.needed);
20439 ZERO_STRUCTP(r->out.needed);
20441 if (flags & NDR_OUT) {
20442 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20443 if (_ptr_info) {
20444 NDR_PULL_ALLOC(ndr, r->out.info);
20445 } else {
20446 r->out.info = NULL;
20448 if (r->out.info) {
20449 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20450 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20452 struct ndr_pull *_ndr_info;
20453 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20454 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20455 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20456 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20460 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20461 NDR_PULL_ALLOC(ndr, r->out.needed);
20463 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20464 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20465 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20467 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20469 return NDR_ERR_SUCCESS;
20472 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
20474 ndr_print_struct(ndr, name, "spoolss_GetJob");
20475 ndr->depth++;
20476 if (flags & NDR_SET_VALUES) {
20477 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20479 if (flags & NDR_IN) {
20480 ndr_print_struct(ndr, "in", "spoolss_GetJob");
20481 ndr->depth++;
20482 ndr_print_ptr(ndr, "handle", r->in.handle);
20483 ndr->depth++;
20484 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20485 ndr->depth--;
20486 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20487 ndr_print_uint32(ndr, "level", r->in.level);
20488 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20489 ndr->depth++;
20490 if (r->in.buffer) {
20491 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20493 ndr->depth--;
20494 ndr_print_uint32(ndr, "offered", r->in.offered);
20495 ndr->depth--;
20497 if (flags & NDR_OUT) {
20498 ndr_print_struct(ndr, "out", "spoolss_GetJob");
20499 ndr->depth++;
20500 ndr_print_ptr(ndr, "info", r->out.info);
20501 ndr->depth++;
20502 if (r->out.info) {
20503 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20504 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
20506 ndr->depth--;
20507 ndr_print_ptr(ndr, "needed", r->out.needed);
20508 ndr->depth++;
20509 ndr_print_uint32(ndr, "needed", *r->out.needed);
20510 ndr->depth--;
20511 ndr_print_WERROR(ndr, "result", r->out.result);
20512 ndr->depth--;
20514 ndr->depth--;
20517 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
20519 if (flags & NDR_IN) {
20520 if (r->in.handle == NULL) {
20521 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20523 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
20525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
20526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20527 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20528 if (r->in.buffer) {
20529 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20533 if (flags & NDR_OUT) {
20534 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20535 if (r->out.info) {
20536 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20538 if (r->out.needed == NULL) {
20539 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20542 if (r->out.count == NULL) {
20543 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20546 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20548 return NDR_ERR_SUCCESS;
20551 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
20553 uint32_t _ptr_buffer;
20554 uint32_t _ptr_info;
20555 TALLOC_CTX *_mem_save_handle_0;
20556 TALLOC_CTX *_mem_save_buffer_0;
20557 TALLOC_CTX *_mem_save_info_0;
20558 TALLOC_CTX *_mem_save_needed_0;
20559 TALLOC_CTX *_mem_save_count_0;
20560 if (flags & NDR_IN) {
20561 ZERO_STRUCT(r->out);
20563 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20564 NDR_PULL_ALLOC(ndr, r->in.handle);
20566 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20567 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20568 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20570 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
20571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
20572 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20573 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20574 if (_ptr_buffer) {
20575 NDR_PULL_ALLOC(ndr, r->in.buffer);
20576 } else {
20577 r->in.buffer = NULL;
20579 if (r->in.buffer) {
20580 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20581 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20582 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20585 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20586 NDR_PULL_ALLOC(ndr, r->out.needed);
20587 ZERO_STRUCTP(r->out.needed);
20588 NDR_PULL_ALLOC(ndr, r->out.count);
20589 ZERO_STRUCTP(r->out.count);
20591 if (flags & NDR_OUT) {
20592 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20593 if (_ptr_info) {
20594 NDR_PULL_ALLOC(ndr, r->out.info);
20595 } else {
20596 r->out.info = NULL;
20598 if (r->out.info) {
20599 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20600 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20601 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20604 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20605 NDR_PULL_ALLOC(ndr, r->out.needed);
20607 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20608 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20611 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20612 NDR_PULL_ALLOC(ndr, r->out.count);
20614 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20615 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20616 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20618 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20620 return NDR_ERR_SUCCESS;
20623 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
20625 uint32_t cntr_info_0;
20626 if (flags & NDR_IN) {
20627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20630 if (flags & NDR_OUT) {
20631 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20632 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20633 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20635 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20636 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20639 return NDR_ERR_SUCCESS;
20642 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
20644 uint32_t cntr_info_0;
20645 TALLOC_CTX *_mem_save_info_0;
20646 if (flags & NDR_IN) {
20647 ZERO_STRUCT(r->out);
20649 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20652 if (flags & NDR_OUT) {
20653 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20654 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20655 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20656 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20657 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20658 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20660 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20661 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20665 return NDR_ERR_SUCCESS;
20668 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
20670 uint32_t cntr_info_2;
20671 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
20672 ndr->depth++;
20673 if (flags & NDR_SET_VALUES) {
20674 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20676 if (flags & NDR_IN) {
20677 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
20678 ndr->depth++;
20679 ndr_print_ptr(ndr, "handle", r->in.handle);
20680 ndr->depth++;
20681 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20682 ndr->depth--;
20683 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
20684 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
20685 ndr_print_uint32(ndr, "level", r->in.level);
20686 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20687 ndr->depth++;
20688 if (r->in.buffer) {
20689 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20691 ndr->depth--;
20692 ndr_print_uint32(ndr, "offered", r->in.offered);
20693 ndr->depth--;
20695 if (flags & NDR_OUT) {
20696 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
20697 ndr->depth++;
20698 ndr_print_ptr(ndr, "count", r->out.count);
20699 ndr->depth++;
20700 ndr_print_uint32(ndr, "count", *r->out.count);
20701 ndr->depth--;
20702 ndr_print_ptr(ndr, "info", r->out.info);
20703 ndr->depth++;
20704 ndr_print_ptr(ndr, "info", *r->out.info);
20705 ndr->depth++;
20706 if (*r->out.info) {
20707 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20708 ndr->depth++;
20709 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20710 char *idx_2=NULL;
20711 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20712 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20713 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20714 free(idx_2);
20717 ndr->depth--;
20719 ndr->depth--;
20720 ndr->depth--;
20721 ndr_print_ptr(ndr, "needed", r->out.needed);
20722 ndr->depth++;
20723 ndr_print_uint32(ndr, "needed", *r->out.needed);
20724 ndr->depth--;
20725 ndr_print_WERROR(ndr, "result", r->out.result);
20726 ndr->depth--;
20728 ndr->depth--;
20731 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
20733 if (flags & NDR_IN) {
20734 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20735 if (r->in.server) {
20736 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20737 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20738 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20739 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20741 if (r->in.info_ctr == NULL) {
20742 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20744 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20745 if (r->in.devmode_ctr == NULL) {
20746 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20748 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20749 if (r->in.secdesc_ctr == NULL) {
20750 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20752 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20754 if (flags & NDR_OUT) {
20755 if (r->out.handle == NULL) {
20756 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20758 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20759 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20761 return NDR_ERR_SUCCESS;
20764 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
20766 uint32_t _ptr_server;
20767 TALLOC_CTX *_mem_save_server_0;
20768 TALLOC_CTX *_mem_save_info_ctr_0;
20769 TALLOC_CTX *_mem_save_devmode_ctr_0;
20770 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20771 TALLOC_CTX *_mem_save_handle_0;
20772 if (flags & NDR_IN) {
20773 ZERO_STRUCT(r->out);
20775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20776 if (_ptr_server) {
20777 NDR_PULL_ALLOC(ndr, r->in.server);
20778 } else {
20779 r->in.server = NULL;
20781 if (r->in.server) {
20782 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20783 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20784 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20785 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20786 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20787 return 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));
20789 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20790 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20791 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20793 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20794 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20796 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20797 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20798 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20799 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20800 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20801 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20803 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20804 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20805 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20806 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20807 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20808 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20810 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20811 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20812 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20814 NDR_PULL_ALLOC(ndr, r->out.handle);
20815 ZERO_STRUCTP(r->out.handle);
20817 if (flags & NDR_OUT) {
20818 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20819 NDR_PULL_ALLOC(ndr, r->out.handle);
20821 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20822 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20823 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20824 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20825 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20827 return NDR_ERR_SUCCESS;
20830 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
20832 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
20833 ndr->depth++;
20834 if (flags & NDR_SET_VALUES) {
20835 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20837 if (flags & NDR_IN) {
20838 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
20839 ndr->depth++;
20840 ndr_print_ptr(ndr, "server", r->in.server);
20841 ndr->depth++;
20842 if (r->in.server) {
20843 ndr_print_string(ndr, "server", r->in.server);
20845 ndr->depth--;
20846 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20847 ndr->depth++;
20848 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20849 ndr->depth--;
20850 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20851 ndr->depth++;
20852 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20853 ndr->depth--;
20854 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20855 ndr->depth++;
20856 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20857 ndr->depth--;
20858 ndr->depth--;
20860 if (flags & NDR_OUT) {
20861 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
20862 ndr->depth++;
20863 ndr_print_ptr(ndr, "handle", r->out.handle);
20864 ndr->depth++;
20865 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20866 ndr->depth--;
20867 ndr_print_WERROR(ndr, "result", r->out.result);
20868 ndr->depth--;
20870 ndr->depth--;
20873 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
20875 if (flags & NDR_IN) {
20876 if (r->in.handle == NULL) {
20877 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20879 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20881 if (flags & NDR_OUT) {
20882 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20884 return NDR_ERR_SUCCESS;
20887 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
20889 TALLOC_CTX *_mem_save_handle_0;
20890 if (flags & NDR_IN) {
20891 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20892 NDR_PULL_ALLOC(ndr, r->in.handle);
20894 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20895 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20896 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20899 if (flags & NDR_OUT) {
20900 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20902 return NDR_ERR_SUCCESS;
20905 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
20907 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
20908 ndr->depth++;
20909 if (flags & NDR_SET_VALUES) {
20910 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20912 if (flags & NDR_IN) {
20913 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
20914 ndr->depth++;
20915 ndr_print_ptr(ndr, "handle", r->in.handle);
20916 ndr->depth++;
20917 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20918 ndr->depth--;
20919 ndr->depth--;
20921 if (flags & NDR_OUT) {
20922 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
20923 ndr->depth++;
20924 ndr_print_WERROR(ndr, "result", r->out.result);
20925 ndr->depth--;
20927 ndr->depth--;
20930 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
20932 if (flags & NDR_IN) {
20933 if (r->in.handle == NULL) {
20934 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20936 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20937 if (r->in.info_ctr == NULL) {
20938 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20940 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20941 if (r->in.devmode_ctr == NULL) {
20942 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20944 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20945 if (r->in.secdesc_ctr == NULL) {
20946 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20948 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20949 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
20951 if (flags & NDR_OUT) {
20952 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20954 return NDR_ERR_SUCCESS;
20957 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
20959 TALLOC_CTX *_mem_save_handle_0;
20960 TALLOC_CTX *_mem_save_info_ctr_0;
20961 TALLOC_CTX *_mem_save_devmode_ctr_0;
20962 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20963 if (flags & NDR_IN) {
20964 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20965 NDR_PULL_ALLOC(ndr, r->in.handle);
20967 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20968 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20969 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20971 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20972 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20974 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20975 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20976 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20978 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20979 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20981 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20982 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20983 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20984 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20985 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20986 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20988 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20989 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20990 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20992 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
20994 if (flags & NDR_OUT) {
20995 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20997 return NDR_ERR_SUCCESS;
21000 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
21002 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
21003 ndr->depth++;
21004 if (flags & NDR_SET_VALUES) {
21005 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21007 if (flags & NDR_IN) {
21008 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
21009 ndr->depth++;
21010 ndr_print_ptr(ndr, "handle", r->in.handle);
21011 ndr->depth++;
21012 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21013 ndr->depth--;
21014 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21015 ndr->depth++;
21016 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21017 ndr->depth--;
21018 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21019 ndr->depth++;
21020 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21021 ndr->depth--;
21022 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21023 ndr->depth++;
21024 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21025 ndr->depth--;
21026 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
21027 ndr->depth--;
21029 if (flags & NDR_OUT) {
21030 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
21031 ndr->depth++;
21032 ndr_print_WERROR(ndr, "result", r->out.result);
21033 ndr->depth--;
21035 ndr->depth--;
21038 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
21040 if (flags & NDR_IN) {
21041 if (r->in.handle == NULL) {
21042 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21044 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21046 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21047 if (r->in.buffer) {
21048 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21052 if (flags & NDR_OUT) {
21053 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21054 if (r->out.info) {
21056 struct ndr_push *_ndr_info;
21057 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21058 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21059 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21060 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21063 if (r->out.needed == NULL) {
21064 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21067 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21069 return NDR_ERR_SUCCESS;
21072 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
21074 uint32_t _ptr_buffer;
21075 uint32_t _ptr_info;
21076 TALLOC_CTX *_mem_save_handle_0;
21077 TALLOC_CTX *_mem_save_buffer_0;
21078 TALLOC_CTX *_mem_save_info_0;
21079 TALLOC_CTX *_mem_save_needed_0;
21080 if (flags & NDR_IN) {
21081 ZERO_STRUCT(r->out);
21083 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21084 NDR_PULL_ALLOC(ndr, r->in.handle);
21086 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21087 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21088 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21089 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21092 if (_ptr_buffer) {
21093 NDR_PULL_ALLOC(ndr, r->in.buffer);
21094 } else {
21095 r->in.buffer = NULL;
21097 if (r->in.buffer) {
21098 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21099 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21100 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21101 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21103 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21104 NDR_PULL_ALLOC(ndr, r->out.needed);
21105 ZERO_STRUCTP(r->out.needed);
21107 if (flags & NDR_OUT) {
21108 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21109 if (_ptr_info) {
21110 NDR_PULL_ALLOC(ndr, r->out.info);
21111 } else {
21112 r->out.info = NULL;
21114 if (r->out.info) {
21115 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21116 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21118 struct ndr_pull *_ndr_info;
21119 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21120 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21121 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21122 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21124 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21126 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21127 NDR_PULL_ALLOC(ndr, r->out.needed);
21129 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21130 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21131 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21133 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21135 return NDR_ERR_SUCCESS;
21138 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
21140 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
21141 ndr->depth++;
21142 if (flags & NDR_SET_VALUES) {
21143 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21145 if (flags & NDR_IN) {
21146 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
21147 ndr->depth++;
21148 ndr_print_ptr(ndr, "handle", r->in.handle);
21149 ndr->depth++;
21150 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21151 ndr->depth--;
21152 ndr_print_uint32(ndr, "level", r->in.level);
21153 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21154 ndr->depth++;
21155 if (r->in.buffer) {
21156 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21158 ndr->depth--;
21159 ndr_print_uint32(ndr, "offered", r->in.offered);
21160 ndr->depth--;
21162 if (flags & NDR_OUT) {
21163 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
21164 ndr->depth++;
21165 ndr_print_ptr(ndr, "info", r->out.info);
21166 ndr->depth++;
21167 if (r->out.info) {
21168 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21169 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
21171 ndr->depth--;
21172 ndr_print_ptr(ndr, "needed", r->out.needed);
21173 ndr->depth++;
21174 ndr_print_uint32(ndr, "needed", *r->out.needed);
21175 ndr->depth--;
21176 ndr_print_WERROR(ndr, "result", r->out.result);
21177 ndr->depth--;
21179 ndr->depth--;
21182 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
21184 if (flags & NDR_IN) {
21185 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21186 if (r->in.servername) {
21187 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21188 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21189 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21190 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21192 if (r->in.info_ctr == NULL) {
21193 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21195 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21197 if (flags & NDR_OUT) {
21198 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21200 return NDR_ERR_SUCCESS;
21203 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
21205 uint32_t _ptr_servername;
21206 TALLOC_CTX *_mem_save_servername_0;
21207 TALLOC_CTX *_mem_save_info_ctr_0;
21208 if (flags & NDR_IN) {
21209 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
21210 if (_ptr_servername) {
21211 NDR_PULL_ALLOC(ndr, r->in.servername);
21212 } else {
21213 r->in.servername = NULL;
21215 if (r->in.servername) {
21216 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21217 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21218 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21219 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21220 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
21221 return 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));
21223 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
21224 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
21225 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21227 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21228 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21230 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21231 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21232 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21233 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21235 if (flags & NDR_OUT) {
21236 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21238 return NDR_ERR_SUCCESS;
21241 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
21243 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
21244 ndr->depth++;
21245 if (flags & NDR_SET_VALUES) {
21246 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21248 if (flags & NDR_IN) {
21249 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
21250 ndr->depth++;
21251 ndr_print_ptr(ndr, "servername", r->in.servername);
21252 ndr->depth++;
21253 if (r->in.servername) {
21254 ndr_print_string(ndr, "servername", r->in.servername);
21256 ndr->depth--;
21257 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21258 ndr->depth++;
21259 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21260 ndr->depth--;
21261 ndr->depth--;
21263 if (flags & NDR_OUT) {
21264 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
21265 ndr->depth++;
21266 ndr_print_WERROR(ndr, "result", r->out.result);
21267 ndr->depth--;
21269 ndr->depth--;
21272 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
21274 if (flags & NDR_IN) {
21275 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21276 if (r->in.server) {
21277 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21278 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21279 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21280 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21282 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21283 if (r->in.environment) {
21284 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21285 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21286 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21287 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21290 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21291 if (r->in.buffer) {
21292 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21296 if (flags & NDR_OUT) {
21297 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21298 if (r->out.info) {
21299 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21301 if (r->out.needed == NULL) {
21302 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21305 if (r->out.count == NULL) {
21306 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21309 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21311 return NDR_ERR_SUCCESS;
21314 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
21316 uint32_t _ptr_server;
21317 uint32_t _ptr_environment;
21318 uint32_t _ptr_buffer;
21319 uint32_t _ptr_info;
21320 TALLOC_CTX *_mem_save_server_0;
21321 TALLOC_CTX *_mem_save_environment_0;
21322 TALLOC_CTX *_mem_save_buffer_0;
21323 TALLOC_CTX *_mem_save_info_0;
21324 TALLOC_CTX *_mem_save_needed_0;
21325 TALLOC_CTX *_mem_save_count_0;
21326 if (flags & NDR_IN) {
21327 ZERO_STRUCT(r->out);
21329 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21330 if (_ptr_server) {
21331 NDR_PULL_ALLOC(ndr, r->in.server);
21332 } else {
21333 r->in.server = NULL;
21335 if (r->in.server) {
21336 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21337 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21338 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21339 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21340 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21341 return 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));
21343 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21344 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21347 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21348 if (_ptr_environment) {
21349 NDR_PULL_ALLOC(ndr, r->in.environment);
21350 } else {
21351 r->in.environment = NULL;
21353 if (r->in.environment) {
21354 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21355 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21356 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21357 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21358 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21359 return 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));
21361 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21362 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21365 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21366 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21367 if (_ptr_buffer) {
21368 NDR_PULL_ALLOC(ndr, r->in.buffer);
21369 } else {
21370 r->in.buffer = NULL;
21372 if (r->in.buffer) {
21373 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21374 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21375 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21379 NDR_PULL_ALLOC(ndr, r->out.needed);
21380 ZERO_STRUCTP(r->out.needed);
21381 NDR_PULL_ALLOC(ndr, r->out.count);
21382 ZERO_STRUCTP(r->out.count);
21384 if (flags & NDR_OUT) {
21385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21386 if (_ptr_info) {
21387 NDR_PULL_ALLOC(ndr, r->out.info);
21388 } else {
21389 r->out.info = NULL;
21391 if (r->out.info) {
21392 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21393 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21394 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21395 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21397 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21398 NDR_PULL_ALLOC(ndr, r->out.needed);
21400 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21401 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21402 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21404 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21405 NDR_PULL_ALLOC(ndr, r->out.count);
21407 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21408 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21411 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21413 return NDR_ERR_SUCCESS;
21416 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
21418 uint32_t cntr_info_0;
21419 if (flags & NDR_IN) {
21420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21423 if (flags & NDR_OUT) {
21424 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21425 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21426 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21428 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21429 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21432 return NDR_ERR_SUCCESS;
21435 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
21437 uint32_t cntr_info_0;
21438 TALLOC_CTX *_mem_save_info_0;
21439 if (flags & NDR_IN) {
21440 ZERO_STRUCT(r->out);
21442 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21443 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21445 if (flags & NDR_OUT) {
21446 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21447 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21448 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21449 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21450 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21451 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21453 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21454 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21458 return NDR_ERR_SUCCESS;
21461 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
21463 uint32_t cntr_info_2;
21464 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
21465 ndr->depth++;
21466 if (flags & NDR_SET_VALUES) {
21467 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21469 if (flags & NDR_IN) {
21470 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
21471 ndr->depth++;
21472 ndr_print_ptr(ndr, "server", r->in.server);
21473 ndr->depth++;
21474 if (r->in.server) {
21475 ndr_print_string(ndr, "server", r->in.server);
21477 ndr->depth--;
21478 ndr_print_ptr(ndr, "environment", r->in.environment);
21479 ndr->depth++;
21480 if (r->in.environment) {
21481 ndr_print_string(ndr, "environment", r->in.environment);
21483 ndr->depth--;
21484 ndr_print_uint32(ndr, "level", r->in.level);
21485 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21486 ndr->depth++;
21487 if (r->in.buffer) {
21488 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21490 ndr->depth--;
21491 ndr_print_uint32(ndr, "offered", r->in.offered);
21492 ndr->depth--;
21494 if (flags & NDR_OUT) {
21495 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
21496 ndr->depth++;
21497 ndr_print_ptr(ndr, "count", r->out.count);
21498 ndr->depth++;
21499 ndr_print_uint32(ndr, "count", *r->out.count);
21500 ndr->depth--;
21501 ndr_print_ptr(ndr, "info", r->out.info);
21502 ndr->depth++;
21503 ndr_print_ptr(ndr, "info", *r->out.info);
21504 ndr->depth++;
21505 if (*r->out.info) {
21506 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21507 ndr->depth++;
21508 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21509 char *idx_2=NULL;
21510 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21511 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21512 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21513 free(idx_2);
21516 ndr->depth--;
21518 ndr->depth--;
21519 ndr->depth--;
21520 ndr_print_ptr(ndr, "needed", r->out.needed);
21521 ndr->depth++;
21522 ndr_print_uint32(ndr, "needed", *r->out.needed);
21523 ndr->depth--;
21524 ndr_print_WERROR(ndr, "result", r->out.result);
21525 ndr->depth--;
21527 ndr->depth--;
21530 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
21532 if (flags & NDR_IN) {
21533 if (r->in.handle == NULL) {
21534 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21536 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21537 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
21538 if (r->in.architecture) {
21539 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21540 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21541 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21542 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21545 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21546 if (r->in.buffer) {
21547 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21551 if (flags & NDR_OUT) {
21552 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21553 if (r->out.info) {
21555 struct ndr_push *_ndr_info;
21556 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21557 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21558 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21559 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21562 if (r->out.needed == NULL) {
21563 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21566 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21568 return NDR_ERR_SUCCESS;
21571 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
21573 uint32_t _ptr_architecture;
21574 uint32_t _ptr_buffer;
21575 uint32_t _ptr_info;
21576 TALLOC_CTX *_mem_save_handle_0;
21577 TALLOC_CTX *_mem_save_architecture_0;
21578 TALLOC_CTX *_mem_save_buffer_0;
21579 TALLOC_CTX *_mem_save_info_0;
21580 TALLOC_CTX *_mem_save_needed_0;
21581 if (flags & NDR_IN) {
21582 ZERO_STRUCT(r->out);
21584 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21585 NDR_PULL_ALLOC(ndr, r->in.handle);
21587 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21588 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21589 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21591 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
21592 if (_ptr_architecture) {
21593 NDR_PULL_ALLOC(ndr, r->in.architecture);
21594 } else {
21595 r->in.architecture = NULL;
21597 if (r->in.architecture) {
21598 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
21599 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
21600 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21601 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21602 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21603 return 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));
21605 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21606 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
21609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21610 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21611 if (_ptr_buffer) {
21612 NDR_PULL_ALLOC(ndr, r->in.buffer);
21613 } else {
21614 r->in.buffer = NULL;
21616 if (r->in.buffer) {
21617 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21618 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21619 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21620 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21622 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21623 NDR_PULL_ALLOC(ndr, r->out.needed);
21624 ZERO_STRUCTP(r->out.needed);
21626 if (flags & NDR_OUT) {
21627 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21628 if (_ptr_info) {
21629 NDR_PULL_ALLOC(ndr, r->out.info);
21630 } else {
21631 r->out.info = NULL;
21633 if (r->out.info) {
21634 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21635 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21637 struct ndr_pull *_ndr_info;
21638 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21639 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21640 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21641 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21643 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21645 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21646 NDR_PULL_ALLOC(ndr, r->out.needed);
21648 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21649 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21652 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21654 return NDR_ERR_SUCCESS;
21657 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
21659 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
21660 ndr->depth++;
21661 if (flags & NDR_SET_VALUES) {
21662 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21664 if (flags & NDR_IN) {
21665 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
21666 ndr->depth++;
21667 ndr_print_ptr(ndr, "handle", r->in.handle);
21668 ndr->depth++;
21669 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21670 ndr->depth--;
21671 ndr_print_ptr(ndr, "architecture", r->in.architecture);
21672 ndr->depth++;
21673 if (r->in.architecture) {
21674 ndr_print_string(ndr, "architecture", r->in.architecture);
21676 ndr->depth--;
21677 ndr_print_uint32(ndr, "level", r->in.level);
21678 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21679 ndr->depth++;
21680 if (r->in.buffer) {
21681 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21683 ndr->depth--;
21684 ndr_print_uint32(ndr, "offered", r->in.offered);
21685 ndr->depth--;
21687 if (flags & NDR_OUT) {
21688 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
21689 ndr->depth++;
21690 ndr_print_ptr(ndr, "info", r->out.info);
21691 ndr->depth++;
21692 if (r->out.info) {
21693 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21694 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
21696 ndr->depth--;
21697 ndr_print_ptr(ndr, "needed", r->out.needed);
21698 ndr->depth++;
21699 ndr_print_uint32(ndr, "needed", *r->out.needed);
21700 ndr->depth--;
21701 ndr_print_WERROR(ndr, "result", r->out.result);
21702 ndr->depth--;
21704 ndr->depth--;
21707 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21709 if (flags & NDR_IN) {
21710 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21711 if (r->in.server) {
21712 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21713 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21714 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21715 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21717 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21718 if (r->in.environment) {
21719 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21720 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21722 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21725 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21726 if (r->in.buffer) {
21727 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21731 if (flags & NDR_OUT) {
21732 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21733 if (r->out.info) {
21735 struct ndr_push *_ndr_info;
21736 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21737 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21738 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21739 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21742 if (r->out.needed == NULL) {
21743 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21746 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21748 return NDR_ERR_SUCCESS;
21751 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
21753 uint32_t _ptr_server;
21754 uint32_t _ptr_environment;
21755 uint32_t _ptr_buffer;
21756 uint32_t _ptr_info;
21757 TALLOC_CTX *_mem_save_server_0;
21758 TALLOC_CTX *_mem_save_environment_0;
21759 TALLOC_CTX *_mem_save_buffer_0;
21760 TALLOC_CTX *_mem_save_info_0;
21761 TALLOC_CTX *_mem_save_needed_0;
21762 if (flags & NDR_IN) {
21763 ZERO_STRUCT(r->out);
21765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21766 if (_ptr_server) {
21767 NDR_PULL_ALLOC(ndr, r->in.server);
21768 } else {
21769 r->in.server = NULL;
21771 if (r->in.server) {
21772 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21773 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21774 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21775 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21776 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21777 return 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));
21779 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21780 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21781 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21784 if (_ptr_environment) {
21785 NDR_PULL_ALLOC(ndr, r->in.environment);
21786 } else {
21787 r->in.environment = NULL;
21789 if (r->in.environment) {
21790 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21791 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21792 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21793 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21794 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21795 return 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));
21797 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21798 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21799 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21802 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21803 if (_ptr_buffer) {
21804 NDR_PULL_ALLOC(ndr, r->in.buffer);
21805 } else {
21806 r->in.buffer = NULL;
21808 if (r->in.buffer) {
21809 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21810 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21811 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21814 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21815 NDR_PULL_ALLOC(ndr, r->out.needed);
21816 ZERO_STRUCTP(r->out.needed);
21818 if (flags & NDR_OUT) {
21819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21820 if (_ptr_info) {
21821 NDR_PULL_ALLOC(ndr, r->out.info);
21822 } else {
21823 r->out.info = NULL;
21825 if (r->out.info) {
21826 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21827 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21829 struct ndr_pull *_ndr_info;
21830 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21831 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21832 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21833 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21837 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21838 NDR_PULL_ALLOC(ndr, r->out.needed);
21840 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21841 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21844 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21846 return NDR_ERR_SUCCESS;
21849 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21851 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
21852 ndr->depth++;
21853 if (flags & NDR_SET_VALUES) {
21854 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21856 if (flags & NDR_IN) {
21857 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
21858 ndr->depth++;
21859 ndr_print_ptr(ndr, "server", r->in.server);
21860 ndr->depth++;
21861 if (r->in.server) {
21862 ndr_print_string(ndr, "server", r->in.server);
21864 ndr->depth--;
21865 ndr_print_ptr(ndr, "environment", r->in.environment);
21866 ndr->depth++;
21867 if (r->in.environment) {
21868 ndr_print_string(ndr, "environment", r->in.environment);
21870 ndr->depth--;
21871 ndr_print_uint32(ndr, "level", r->in.level);
21872 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21873 ndr->depth++;
21874 if (r->in.buffer) {
21875 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21877 ndr->depth--;
21878 ndr_print_uint32(ndr, "offered", r->in.offered);
21879 ndr->depth--;
21881 if (flags & NDR_OUT) {
21882 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
21883 ndr->depth++;
21884 ndr_print_ptr(ndr, "info", r->out.info);
21885 ndr->depth++;
21886 if (r->out.info) {
21887 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21888 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
21890 ndr->depth--;
21891 ndr_print_ptr(ndr, "needed", r->out.needed);
21892 ndr->depth++;
21893 ndr_print_uint32(ndr, "needed", *r->out.needed);
21894 ndr->depth--;
21895 ndr_print_WERROR(ndr, "result", r->out.result);
21896 ndr->depth--;
21898 ndr->depth--;
21901 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
21903 if (flags & NDR_IN) {
21904 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21905 if (r->in.server) {
21906 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21907 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21908 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21909 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21911 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21912 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21913 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21914 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21915 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21916 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21917 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21918 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21920 if (flags & NDR_OUT) {
21921 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21923 return NDR_ERR_SUCCESS;
21926 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
21928 uint32_t _ptr_server;
21929 TALLOC_CTX *_mem_save_server_0;
21930 if (flags & NDR_IN) {
21931 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21932 if (_ptr_server) {
21933 NDR_PULL_ALLOC(ndr, r->in.server);
21934 } else {
21935 r->in.server = NULL;
21937 if (r->in.server) {
21938 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21939 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21940 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21941 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21942 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21943 return 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));
21945 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21946 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21949 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21950 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21951 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21952 return 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));
21954 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21955 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21956 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
21957 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
21958 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
21959 return 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));
21961 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
21962 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
21964 if (flags & NDR_OUT) {
21965 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21967 return NDR_ERR_SUCCESS;
21970 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
21972 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
21973 ndr->depth++;
21974 if (flags & NDR_SET_VALUES) {
21975 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21977 if (flags & NDR_IN) {
21978 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
21979 ndr->depth++;
21980 ndr_print_ptr(ndr, "server", r->in.server);
21981 ndr->depth++;
21982 if (r->in.server) {
21983 ndr_print_string(ndr, "server", r->in.server);
21985 ndr->depth--;
21986 ndr_print_string(ndr, "architecture", r->in.architecture);
21987 ndr_print_string(ndr, "driver", r->in.driver);
21988 ndr->depth--;
21990 if (flags & NDR_OUT) {
21991 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
21992 ndr->depth++;
21993 ndr_print_WERROR(ndr, "result", r->out.result);
21994 ndr->depth--;
21996 ndr->depth--;
21999 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
22001 if (flags & NDR_IN) {
22002 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22003 if (r->in.server) {
22004 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22005 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22006 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22007 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22009 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22010 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22011 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22012 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22013 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22014 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22015 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22016 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));
22017 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22018 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22019 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22020 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));
22022 if (flags & NDR_OUT) {
22023 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22025 return NDR_ERR_SUCCESS;
22028 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
22030 uint32_t _ptr_server;
22031 TALLOC_CTX *_mem_save_server_0;
22032 if (flags & NDR_IN) {
22033 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22034 if (_ptr_server) {
22035 NDR_PULL_ALLOC(ndr, r->in.server);
22036 } else {
22037 r->in.server = NULL;
22039 if (r->in.server) {
22040 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22041 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22042 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22043 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22044 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22045 return 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));
22047 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22048 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22051 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22052 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22053 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22054 return 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));
22056 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22057 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22058 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
22059 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
22060 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
22061 return 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));
22063 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
22064 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));
22065 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
22066 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
22067 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
22068 return 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));
22070 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
22071 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));
22073 if (flags & NDR_OUT) {
22074 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22076 return NDR_ERR_SUCCESS;
22079 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
22081 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
22082 ndr->depth++;
22083 if (flags & NDR_SET_VALUES) {
22084 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22086 if (flags & NDR_IN) {
22087 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
22088 ndr->depth++;
22089 ndr_print_ptr(ndr, "server", r->in.server);
22090 ndr->depth++;
22091 if (r->in.server) {
22092 ndr_print_string(ndr, "server", r->in.server);
22094 ndr->depth--;
22095 ndr_print_string(ndr, "architecture", r->in.architecture);
22096 ndr_print_string(ndr, "path_name", r->in.path_name);
22097 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
22098 ndr->depth--;
22100 if (flags & NDR_OUT) {
22101 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
22102 ndr->depth++;
22103 ndr_print_WERROR(ndr, "result", r->out.result);
22104 ndr->depth--;
22106 ndr->depth--;
22109 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
22111 if (flags & NDR_IN) {
22112 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22113 if (r->in.servername) {
22114 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22115 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22116 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22117 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22119 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22120 if (r->in.environment) {
22121 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22122 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22123 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22124 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22127 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22128 if (r->in.buffer) {
22129 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22133 if (flags & NDR_OUT) {
22134 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22135 if (r->out.info) {
22136 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22138 if (r->out.needed == NULL) {
22139 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22142 if (r->out.count == NULL) {
22143 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22146 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22148 return NDR_ERR_SUCCESS;
22151 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
22153 uint32_t _ptr_servername;
22154 uint32_t _ptr_environment;
22155 uint32_t _ptr_buffer;
22156 uint32_t _ptr_info;
22157 TALLOC_CTX *_mem_save_servername_0;
22158 TALLOC_CTX *_mem_save_environment_0;
22159 TALLOC_CTX *_mem_save_buffer_0;
22160 TALLOC_CTX *_mem_save_info_0;
22161 TALLOC_CTX *_mem_save_needed_0;
22162 TALLOC_CTX *_mem_save_count_0;
22163 if (flags & NDR_IN) {
22164 ZERO_STRUCT(r->out);
22166 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22167 if (_ptr_servername) {
22168 NDR_PULL_ALLOC(ndr, r->in.servername);
22169 } else {
22170 r->in.servername = NULL;
22172 if (r->in.servername) {
22173 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22174 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22175 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22176 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22177 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22178 return 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));
22180 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22181 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22184 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22185 if (_ptr_environment) {
22186 NDR_PULL_ALLOC(ndr, r->in.environment);
22187 } else {
22188 r->in.environment = NULL;
22190 if (r->in.environment) {
22191 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22192 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22193 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22194 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22195 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22196 return 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));
22198 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22199 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22202 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22203 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22204 if (_ptr_buffer) {
22205 NDR_PULL_ALLOC(ndr, r->in.buffer);
22206 } else {
22207 r->in.buffer = NULL;
22209 if (r->in.buffer) {
22210 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22211 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22212 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22215 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22216 NDR_PULL_ALLOC(ndr, r->out.needed);
22217 ZERO_STRUCTP(r->out.needed);
22218 NDR_PULL_ALLOC(ndr, r->out.count);
22219 ZERO_STRUCTP(r->out.count);
22221 if (flags & NDR_OUT) {
22222 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22223 if (_ptr_info) {
22224 NDR_PULL_ALLOC(ndr, r->out.info);
22225 } else {
22226 r->out.info = NULL;
22228 if (r->out.info) {
22229 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22230 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22231 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22232 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22234 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22235 NDR_PULL_ALLOC(ndr, r->out.needed);
22237 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22238 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22239 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22240 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22241 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22242 NDR_PULL_ALLOC(ndr, r->out.count);
22244 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22245 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22246 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22248 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22250 return NDR_ERR_SUCCESS;
22253 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
22255 uint32_t cntr_info_0;
22256 if (flags & NDR_IN) {
22257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22260 if (flags & NDR_OUT) {
22261 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22262 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22263 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22265 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22266 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22269 return NDR_ERR_SUCCESS;
22272 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
22274 uint32_t cntr_info_0;
22275 TALLOC_CTX *_mem_save_info_0;
22276 if (flags & NDR_IN) {
22277 ZERO_STRUCT(r->out);
22279 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22280 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22282 if (flags & NDR_OUT) {
22283 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22284 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22285 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22286 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22287 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22288 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22290 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22291 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22293 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22295 return NDR_ERR_SUCCESS;
22298 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
22300 uint32_t cntr_info_2;
22301 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
22302 ndr->depth++;
22303 if (flags & NDR_SET_VALUES) {
22304 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22306 if (flags & NDR_IN) {
22307 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
22308 ndr->depth++;
22309 ndr_print_ptr(ndr, "servername", r->in.servername);
22310 ndr->depth++;
22311 if (r->in.servername) {
22312 ndr_print_string(ndr, "servername", r->in.servername);
22314 ndr->depth--;
22315 ndr_print_ptr(ndr, "environment", r->in.environment);
22316 ndr->depth++;
22317 if (r->in.environment) {
22318 ndr_print_string(ndr, "environment", r->in.environment);
22320 ndr->depth--;
22321 ndr_print_uint32(ndr, "level", r->in.level);
22322 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22323 ndr->depth++;
22324 if (r->in.buffer) {
22325 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22327 ndr->depth--;
22328 ndr_print_uint32(ndr, "offered", r->in.offered);
22329 ndr->depth--;
22331 if (flags & NDR_OUT) {
22332 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
22333 ndr->depth++;
22334 ndr_print_ptr(ndr, "count", r->out.count);
22335 ndr->depth++;
22336 ndr_print_uint32(ndr, "count", *r->out.count);
22337 ndr->depth--;
22338 ndr_print_ptr(ndr, "info", r->out.info);
22339 ndr->depth++;
22340 ndr_print_ptr(ndr, "info", *r->out.info);
22341 ndr->depth++;
22342 if (*r->out.info) {
22343 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22344 ndr->depth++;
22345 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22346 char *idx_2=NULL;
22347 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22348 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22349 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22350 free(idx_2);
22353 ndr->depth--;
22355 ndr->depth--;
22356 ndr->depth--;
22357 ndr_print_ptr(ndr, "needed", r->out.needed);
22358 ndr->depth++;
22359 ndr_print_uint32(ndr, "needed", *r->out.needed);
22360 ndr->depth--;
22361 ndr_print_WERROR(ndr, "result", r->out.result);
22362 ndr->depth--;
22364 ndr->depth--;
22367 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22369 if (flags & NDR_IN) {
22370 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22371 if (r->in.server) {
22372 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22373 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22374 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22375 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22377 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22378 if (r->in.environment) {
22379 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22380 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22381 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22382 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22385 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22386 if (r->in.buffer) {
22387 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22391 if (flags & NDR_OUT) {
22392 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22393 if (r->out.info) {
22395 struct ndr_push *_ndr_info;
22396 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22397 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22398 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22399 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22402 if (r->out.needed == NULL) {
22403 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22406 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22408 return NDR_ERR_SUCCESS;
22411 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
22413 uint32_t _ptr_server;
22414 uint32_t _ptr_environment;
22415 uint32_t _ptr_buffer;
22416 uint32_t _ptr_info;
22417 TALLOC_CTX *_mem_save_server_0;
22418 TALLOC_CTX *_mem_save_environment_0;
22419 TALLOC_CTX *_mem_save_buffer_0;
22420 TALLOC_CTX *_mem_save_info_0;
22421 TALLOC_CTX *_mem_save_needed_0;
22422 if (flags & NDR_IN) {
22423 ZERO_STRUCT(r->out);
22425 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22426 if (_ptr_server) {
22427 NDR_PULL_ALLOC(ndr, r->in.server);
22428 } else {
22429 r->in.server = NULL;
22431 if (r->in.server) {
22432 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22433 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22434 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22435 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22436 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22437 return 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));
22439 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22440 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22443 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22444 if (_ptr_environment) {
22445 NDR_PULL_ALLOC(ndr, r->in.environment);
22446 } else {
22447 r->in.environment = NULL;
22449 if (r->in.environment) {
22450 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22451 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22452 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22453 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22454 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22455 return 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));
22457 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22458 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22459 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22461 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22462 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22463 if (_ptr_buffer) {
22464 NDR_PULL_ALLOC(ndr, r->in.buffer);
22465 } else {
22466 r->in.buffer = NULL;
22468 if (r->in.buffer) {
22469 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22470 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22471 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22474 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22475 NDR_PULL_ALLOC(ndr, r->out.needed);
22476 ZERO_STRUCTP(r->out.needed);
22478 if (flags & NDR_OUT) {
22479 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22480 if (_ptr_info) {
22481 NDR_PULL_ALLOC(ndr, r->out.info);
22482 } else {
22483 r->out.info = NULL;
22485 if (r->out.info) {
22486 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22487 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22489 struct ndr_pull *_ndr_info;
22490 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22491 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22492 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22493 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22495 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22497 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22498 NDR_PULL_ALLOC(ndr, r->out.needed);
22500 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22501 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22502 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22504 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22506 return NDR_ERR_SUCCESS;
22509 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22511 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
22512 ndr->depth++;
22513 if (flags & NDR_SET_VALUES) {
22514 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22516 if (flags & NDR_IN) {
22517 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
22518 ndr->depth++;
22519 ndr_print_ptr(ndr, "server", r->in.server);
22520 ndr->depth++;
22521 if (r->in.server) {
22522 ndr_print_string(ndr, "server", r->in.server);
22524 ndr->depth--;
22525 ndr_print_ptr(ndr, "environment", r->in.environment);
22526 ndr->depth++;
22527 if (r->in.environment) {
22528 ndr_print_string(ndr, "environment", r->in.environment);
22530 ndr->depth--;
22531 ndr_print_uint32(ndr, "level", r->in.level);
22532 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22533 ndr->depth++;
22534 if (r->in.buffer) {
22535 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22537 ndr->depth--;
22538 ndr_print_uint32(ndr, "offered", r->in.offered);
22539 ndr->depth--;
22541 if (flags & NDR_OUT) {
22542 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
22543 ndr->depth++;
22544 ndr_print_ptr(ndr, "info", r->out.info);
22545 ndr->depth++;
22546 if (r->out.info) {
22547 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22548 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
22550 ndr->depth--;
22551 ndr_print_ptr(ndr, "needed", r->out.needed);
22552 ndr->depth++;
22553 ndr_print_uint32(ndr, "needed", *r->out.needed);
22554 ndr->depth--;
22555 ndr_print_WERROR(ndr, "result", r->out.result);
22556 ndr->depth--;
22558 ndr->depth--;
22561 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
22563 if (flags & NDR_IN) {
22564 if (r->in.handle == NULL) {
22565 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22567 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22568 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22569 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22570 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22572 if (flags & NDR_OUT) {
22573 if (r->out.job_id == NULL) {
22574 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
22577 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22579 return NDR_ERR_SUCCESS;
22582 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
22584 TALLOC_CTX *_mem_save_handle_0;
22585 TALLOC_CTX *_mem_save_job_id_0;
22586 if (flags & NDR_IN) {
22587 ZERO_STRUCT(r->out);
22589 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22590 NDR_PULL_ALLOC(ndr, r->in.handle);
22592 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22593 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22594 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22596 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22597 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22598 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22599 NDR_PULL_ALLOC(ndr, r->out.job_id);
22600 ZERO_STRUCTP(r->out.job_id);
22602 if (flags & NDR_OUT) {
22603 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22604 NDR_PULL_ALLOC(ndr, r->out.job_id);
22606 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
22607 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
22608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
22609 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
22610 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22612 return NDR_ERR_SUCCESS;
22615 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
22617 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
22618 ndr->depth++;
22619 if (flags & NDR_SET_VALUES) {
22620 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22622 if (flags & NDR_IN) {
22623 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
22624 ndr->depth++;
22625 ndr_print_ptr(ndr, "handle", r->in.handle);
22626 ndr->depth++;
22627 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22628 ndr->depth--;
22629 ndr_print_uint32(ndr, "level", r->in.level);
22630 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22631 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
22632 ndr->depth--;
22634 if (flags & NDR_OUT) {
22635 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
22636 ndr->depth++;
22637 ndr_print_ptr(ndr, "job_id", r->out.job_id);
22638 ndr->depth++;
22639 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
22640 ndr->depth--;
22641 ndr_print_WERROR(ndr, "result", r->out.result);
22642 ndr->depth--;
22644 ndr->depth--;
22647 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
22649 if (flags & NDR_IN) {
22650 if (r->in.handle == NULL) {
22651 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22653 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22655 if (flags & NDR_OUT) {
22656 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22658 return NDR_ERR_SUCCESS;
22661 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
22663 TALLOC_CTX *_mem_save_handle_0;
22664 if (flags & NDR_IN) {
22665 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22666 NDR_PULL_ALLOC(ndr, r->in.handle);
22668 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22669 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22670 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22673 if (flags & NDR_OUT) {
22674 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22676 return NDR_ERR_SUCCESS;
22679 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
22681 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
22682 ndr->depth++;
22683 if (flags & NDR_SET_VALUES) {
22684 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22686 if (flags & NDR_IN) {
22687 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
22688 ndr->depth++;
22689 ndr_print_ptr(ndr, "handle", r->in.handle);
22690 ndr->depth++;
22691 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22692 ndr->depth--;
22693 ndr->depth--;
22695 if (flags & NDR_OUT) {
22696 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
22697 ndr->depth++;
22698 ndr_print_WERROR(ndr, "result", r->out.result);
22699 ndr->depth--;
22701 ndr->depth--;
22704 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
22706 if (flags & NDR_IN) {
22707 if (r->in.handle == NULL) {
22708 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22710 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22711 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
22712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
22714 if (flags & NDR_OUT) {
22715 if (r->out.num_written == NULL) {
22716 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
22719 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22721 return NDR_ERR_SUCCESS;
22724 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
22726 TALLOC_CTX *_mem_save_handle_0;
22727 TALLOC_CTX *_mem_save_num_written_0;
22728 if (flags & NDR_IN) {
22729 ZERO_STRUCT(r->out);
22731 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22732 NDR_PULL_ALLOC(ndr, r->in.handle);
22734 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22735 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22736 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22738 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
22739 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
22740 NDR_PULL_ALLOC(ndr, r->out.num_written);
22741 ZERO_STRUCTP(r->out.num_written);
22743 if (flags & NDR_OUT) {
22744 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22745 NDR_PULL_ALLOC(ndr, r->out.num_written);
22747 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
22748 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
22749 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
22750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
22751 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22753 return NDR_ERR_SUCCESS;
22756 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
22758 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
22759 ndr->depth++;
22760 if (flags & NDR_SET_VALUES) {
22761 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22763 if (flags & NDR_IN) {
22764 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
22765 ndr->depth++;
22766 ndr_print_ptr(ndr, "handle", r->in.handle);
22767 ndr->depth++;
22768 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22769 ndr->depth--;
22770 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
22771 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
22772 ndr->depth--;
22774 if (flags & NDR_OUT) {
22775 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
22776 ndr->depth++;
22777 ndr_print_ptr(ndr, "num_written", r->out.num_written);
22778 ndr->depth++;
22779 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
22780 ndr->depth--;
22781 ndr_print_WERROR(ndr, "result", r->out.result);
22782 ndr->depth--;
22784 ndr->depth--;
22787 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
22789 if (flags & NDR_IN) {
22790 if (r->in.handle == NULL) {
22791 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22793 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22795 if (flags & NDR_OUT) {
22796 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22798 return NDR_ERR_SUCCESS;
22801 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
22803 TALLOC_CTX *_mem_save_handle_0;
22804 if (flags & NDR_IN) {
22805 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22806 NDR_PULL_ALLOC(ndr, r->in.handle);
22808 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22809 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22810 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22813 if (flags & NDR_OUT) {
22814 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22816 return NDR_ERR_SUCCESS;
22819 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
22821 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
22822 ndr->depth++;
22823 if (flags & NDR_SET_VALUES) {
22824 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22826 if (flags & NDR_IN) {
22827 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
22828 ndr->depth++;
22829 ndr_print_ptr(ndr, "handle", r->in.handle);
22830 ndr->depth++;
22831 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22832 ndr->depth--;
22833 ndr->depth--;
22835 if (flags & NDR_OUT) {
22836 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
22837 ndr->depth++;
22838 ndr_print_WERROR(ndr, "result", r->out.result);
22839 ndr->depth--;
22841 ndr->depth--;
22844 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
22846 if (flags & NDR_IN) {
22847 if (r->in.handle == NULL) {
22848 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22850 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22852 if (flags & NDR_OUT) {
22853 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22855 return NDR_ERR_SUCCESS;
22858 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
22860 TALLOC_CTX *_mem_save_handle_0;
22861 if (flags & NDR_IN) {
22862 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22863 NDR_PULL_ALLOC(ndr, r->in.handle);
22865 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22866 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22867 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22868 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22870 if (flags & NDR_OUT) {
22871 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22873 return NDR_ERR_SUCCESS;
22876 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
22878 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
22879 ndr->depth++;
22880 if (flags & NDR_SET_VALUES) {
22881 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22883 if (flags & NDR_IN) {
22884 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
22885 ndr->depth++;
22886 ndr_print_ptr(ndr, "handle", r->in.handle);
22887 ndr->depth++;
22888 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22889 ndr->depth--;
22890 ndr->depth--;
22892 if (flags & NDR_OUT) {
22893 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
22894 ndr->depth++;
22895 ndr_print_WERROR(ndr, "result", r->out.result);
22896 ndr->depth--;
22898 ndr->depth--;
22901 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
22903 if (flags & NDR_IN) {
22904 if (r->in.handle == NULL) {
22905 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22907 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
22910 if (flags & NDR_OUT) {
22911 if (r->out.data == NULL) {
22912 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22914 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
22915 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
22916 if (r->out._data_size == NULL) {
22917 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22919 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
22920 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22922 return NDR_ERR_SUCCESS;
22925 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
22927 TALLOC_CTX *_mem_save_handle_0;
22928 TALLOC_CTX *_mem_save__data_size_0;
22929 if (flags & NDR_IN) {
22930 ZERO_STRUCT(r->out);
22932 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22933 NDR_PULL_ALLOC(ndr, r->in.handle);
22935 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22936 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22937 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22938 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
22940 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
22941 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
22942 NDR_PULL_ALLOC(ndr, r->out._data_size);
22943 ZERO_STRUCTP(r->out._data_size);
22945 if (flags & NDR_OUT) {
22946 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
22947 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22948 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
22950 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
22951 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22952 NDR_PULL_ALLOC(ndr, r->out._data_size);
22954 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
22955 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
22956 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
22957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
22958 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22959 if (r->out.data) {
22960 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
22963 return NDR_ERR_SUCCESS;
22966 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
22968 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
22969 ndr->depth++;
22970 if (flags & NDR_SET_VALUES) {
22971 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22973 if (flags & NDR_IN) {
22974 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
22975 ndr->depth++;
22976 ndr_print_ptr(ndr, "handle", r->in.handle);
22977 ndr->depth++;
22978 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22979 ndr->depth--;
22980 ndr_print_uint32(ndr, "data_size", r->in.data_size);
22981 ndr->depth--;
22983 if (flags & NDR_OUT) {
22984 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
22985 ndr->depth++;
22986 ndr_print_ptr(ndr, "data", r->out.data);
22987 ndr->depth++;
22988 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
22989 ndr->depth--;
22990 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
22991 ndr->depth++;
22992 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
22993 ndr->depth--;
22994 ndr_print_WERROR(ndr, "result", r->out.result);
22995 ndr->depth--;
22997 ndr->depth--;
23000 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
23002 if (flags & NDR_IN) {
23003 if (r->in.handle == NULL) {
23004 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23006 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23008 if (flags & NDR_OUT) {
23009 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23011 return NDR_ERR_SUCCESS;
23014 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
23016 TALLOC_CTX *_mem_save_handle_0;
23017 if (flags & NDR_IN) {
23018 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23019 NDR_PULL_ALLOC(ndr, r->in.handle);
23021 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23022 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23023 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23026 if (flags & NDR_OUT) {
23027 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23029 return NDR_ERR_SUCCESS;
23032 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
23034 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
23035 ndr->depth++;
23036 if (flags & NDR_SET_VALUES) {
23037 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23039 if (flags & NDR_IN) {
23040 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
23041 ndr->depth++;
23042 ndr_print_ptr(ndr, "handle", r->in.handle);
23043 ndr->depth++;
23044 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23045 ndr->depth--;
23046 ndr->depth--;
23048 if (flags & NDR_OUT) {
23049 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
23050 ndr->depth++;
23051 ndr_print_WERROR(ndr, "result", r->out.result);
23052 ndr->depth--;
23054 ndr->depth--;
23057 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
23059 if (flags & NDR_IN) {
23060 if (r->in.handle == NULL) {
23061 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23063 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23065 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23066 if (r->in.buffer) {
23067 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23068 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
23070 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23072 if (flags & NDR_OUT) {
23073 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
23074 if (r->out.buffer) {
23075 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23076 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
23078 if (r->out.needed == NULL) {
23079 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23082 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23084 return NDR_ERR_SUCCESS;
23087 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
23089 uint32_t _ptr_buffer;
23090 TALLOC_CTX *_mem_save_handle_0;
23091 TALLOC_CTX *_mem_save_buffer_0;
23092 TALLOC_CTX *_mem_save_needed_0;
23093 if (flags & NDR_IN) {
23094 ZERO_STRUCT(r->out);
23096 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23097 NDR_PULL_ALLOC(ndr, r->in.handle);
23099 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23100 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23101 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23103 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23104 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23105 if (_ptr_buffer) {
23106 NDR_PULL_ALLOC(ndr, r->in.buffer);
23107 } else {
23108 r->in.buffer = NULL;
23110 if (r->in.buffer) {
23111 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23112 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23113 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
23114 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
23115 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
23116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23119 NDR_PULL_ALLOC(ndr, r->out.needed);
23120 ZERO_STRUCTP(r->out.needed);
23121 if (r->in.buffer) {
23122 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
23125 if (flags & NDR_OUT) {
23126 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23127 if (_ptr_buffer) {
23128 NDR_PULL_ALLOC(ndr, r->out.buffer);
23129 } else {
23130 r->out.buffer = NULL;
23132 if (r->out.buffer) {
23133 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23134 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
23135 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
23136 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
23137 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
23138 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23140 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23141 NDR_PULL_ALLOC(ndr, r->out.needed);
23143 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23144 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23145 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23147 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23148 if (r->out.buffer) {
23149 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
23152 return NDR_ERR_SUCCESS;
23155 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
23157 ndr_print_struct(ndr, name, "spoolss_AddJob");
23158 ndr->depth++;
23159 if (flags & NDR_SET_VALUES) {
23160 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23162 if (flags & NDR_IN) {
23163 ndr_print_struct(ndr, "in", "spoolss_AddJob");
23164 ndr->depth++;
23165 ndr_print_ptr(ndr, "handle", r->in.handle);
23166 ndr->depth++;
23167 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23168 ndr->depth--;
23169 ndr_print_uint32(ndr, "level", r->in.level);
23170 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23171 ndr->depth++;
23172 if (r->in.buffer) {
23173 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
23175 ndr->depth--;
23176 ndr_print_uint32(ndr, "offered", r->in.offered);
23177 ndr->depth--;
23179 if (flags & NDR_OUT) {
23180 ndr_print_struct(ndr, "out", "spoolss_AddJob");
23181 ndr->depth++;
23182 ndr_print_ptr(ndr, "buffer", r->out.buffer);
23183 ndr->depth++;
23184 if (r->out.buffer) {
23185 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
23187 ndr->depth--;
23188 ndr_print_ptr(ndr, "needed", r->out.needed);
23189 ndr->depth++;
23190 ndr_print_uint32(ndr, "needed", *r->out.needed);
23191 ndr->depth--;
23192 ndr_print_WERROR(ndr, "result", r->out.result);
23193 ndr->depth--;
23195 ndr->depth--;
23198 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
23200 if (flags & NDR_IN) {
23201 if (r->in.handle == NULL) {
23202 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23204 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
23207 if (flags & NDR_OUT) {
23208 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23210 return NDR_ERR_SUCCESS;
23213 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
23215 TALLOC_CTX *_mem_save_handle_0;
23216 if (flags & NDR_IN) {
23217 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23218 NDR_PULL_ALLOC(ndr, r->in.handle);
23220 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23221 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23222 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23223 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23224 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
23226 if (flags & NDR_OUT) {
23227 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23229 return NDR_ERR_SUCCESS;
23232 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
23234 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
23235 ndr->depth++;
23236 if (flags & NDR_SET_VALUES) {
23237 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23239 if (flags & NDR_IN) {
23240 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
23241 ndr->depth++;
23242 ndr_print_ptr(ndr, "handle", r->in.handle);
23243 ndr->depth++;
23244 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23245 ndr->depth--;
23246 ndr_print_uint32(ndr, "jobid", r->in.jobid);
23247 ndr->depth--;
23249 if (flags & NDR_OUT) {
23250 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
23251 ndr->depth++;
23252 ndr_print_WERROR(ndr, "result", r->out.result);
23253 ndr->depth--;
23255 ndr->depth--;
23258 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
23260 if (flags & NDR_IN) {
23261 if (r->in.handle == NULL) {
23262 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23264 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23265 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23266 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23267 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23268 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));
23269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23271 if (flags & NDR_OUT) {
23272 if (r->out.type == NULL) {
23273 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23275 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
23276 if (r->out.data == NULL) {
23277 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23279 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
23280 if (r->out.needed == NULL) {
23281 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23284 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23286 return NDR_ERR_SUCCESS;
23289 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
23291 TALLOC_CTX *_mem_save_handle_0;
23292 TALLOC_CTX *_mem_save_type_0;
23293 TALLOC_CTX *_mem_save_data_0;
23294 TALLOC_CTX *_mem_save_needed_0;
23295 if (flags & NDR_IN) {
23296 ZERO_STRUCT(r->out);
23298 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23299 NDR_PULL_ALLOC(ndr, r->in.handle);
23301 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23302 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23303 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23304 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23305 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23306 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23307 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23308 return 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));
23310 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23311 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));
23312 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23313 NDR_PULL_ALLOC(ndr, r->out.type);
23314 ZERO_STRUCTP(r->out.type);
23315 NDR_PULL_ALLOC(ndr, r->out.data);
23316 ZERO_STRUCTP(r->out.data);
23317 NDR_PULL_ALLOC(ndr, r->out.needed);
23318 ZERO_STRUCTP(r->out.needed);
23320 if (flags & NDR_OUT) {
23321 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23322 NDR_PULL_ALLOC(ndr, r->out.type);
23324 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23325 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
23326 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
23327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
23328 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23329 NDR_PULL_ALLOC(ndr, r->out.data);
23331 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23332 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23333 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
23334 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23335 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23336 NDR_PULL_ALLOC(ndr, r->out.needed);
23338 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23339 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23340 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23341 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23342 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23344 return NDR_ERR_SUCCESS;
23347 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
23349 if (flags & NDR_IN) {
23350 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23352 if (flags & NDR_OUT) {
23353 if (r->out.data == NULL) {
23354 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23356 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23357 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23359 return NDR_ERR_SUCCESS;
23362 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
23364 TALLOC_CTX *_mem_save_data_0;
23365 if (flags & NDR_IN) {
23366 ZERO_STRUCT(r->out);
23368 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23369 NDR_PULL_ALLOC(ndr, r->out.data);
23370 ZERO_STRUCTP(r->out.data);
23372 if (flags & NDR_OUT) {
23373 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23374 NDR_PULL_ALLOC(ndr, r->out.data);
23376 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23377 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23378 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
23379 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23382 return NDR_ERR_SUCCESS;
23385 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
23387 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
23388 ndr->depth++;
23389 if (flags & NDR_SET_VALUES) {
23390 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23392 if (flags & NDR_IN) {
23393 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
23394 ndr->depth++;
23395 ndr_print_ptr(ndr, "handle", r->in.handle);
23396 ndr->depth++;
23397 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23398 ndr->depth--;
23399 ndr_print_string(ndr, "value_name", r->in.value_name);
23400 ndr_print_uint32(ndr, "offered", r->in.offered);
23401 ndr->depth--;
23403 if (flags & NDR_OUT) {
23404 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
23405 ndr->depth++;
23406 ndr_print_ptr(ndr, "type", r->out.type);
23407 ndr->depth++;
23408 ndr_print_winreg_Type(ndr, "type", *r->out.type);
23409 ndr->depth--;
23410 ndr_print_ptr(ndr, "data", r->out.data);
23411 ndr->depth++;
23412 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
23413 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
23414 ndr->depth--;
23415 ndr_print_ptr(ndr, "needed", r->out.needed);
23416 ndr->depth++;
23417 ndr_print_uint32(ndr, "needed", *r->out.needed);
23418 ndr->depth--;
23419 ndr_print_WERROR(ndr, "result", r->out.result);
23420 ndr->depth--;
23422 ndr->depth--;
23425 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
23427 if (flags & NDR_IN) {
23428 if (r->in.handle == NULL) {
23429 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23431 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23432 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23433 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23434 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23435 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));
23436 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23437 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
23440 if (flags & NDR_OUT) {
23441 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23443 return NDR_ERR_SUCCESS;
23446 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
23448 if (flags & NDR_IN) {
23449 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23451 if (flags & NDR_OUT) {
23452 if (r->out.data == NULL) {
23453 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23455 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23456 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23458 return NDR_ERR_SUCCESS;
23461 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
23463 TALLOC_CTX *_mem_save_handle_0;
23464 if (flags & NDR_IN) {
23465 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23466 NDR_PULL_ALLOC(ndr, r->in.handle);
23468 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23469 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23470 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23472 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23473 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23474 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23475 return 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));
23477 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23478 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));
23479 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23481 struct ndr_pull *_ndr_data;
23482 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
23483 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
23484 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
23485 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
23487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
23489 if (flags & NDR_OUT) {
23490 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23492 return NDR_ERR_SUCCESS;
23495 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
23497 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
23498 ndr->depth++;
23499 if (flags & NDR_SET_VALUES) {
23500 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23502 if (flags & NDR_IN) {
23503 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
23504 ndr->depth++;
23505 ndr_print_ptr(ndr, "handle", r->in.handle);
23506 ndr->depth++;
23507 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23508 ndr->depth--;
23509 ndr_print_string(ndr, "value_name", r->in.value_name);
23510 ndr_print_winreg_Type(ndr, "type", r->in.type);
23511 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
23512 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
23513 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);
23514 ndr->depth--;
23516 if (flags & NDR_OUT) {
23517 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
23518 ndr->depth++;
23519 ndr_print_WERROR(ndr, "result", r->out.result);
23520 ndr->depth--;
23522 ndr->depth--;
23525 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
23527 if (flags & NDR_IN) {
23529 if (flags & NDR_OUT) {
23530 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23532 return NDR_ERR_SUCCESS;
23535 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
23537 if (flags & NDR_IN) {
23539 if (flags & NDR_OUT) {
23540 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23542 return NDR_ERR_SUCCESS;
23545 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
23547 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
23548 ndr->depth++;
23549 if (flags & NDR_SET_VALUES) {
23550 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23552 if (flags & NDR_IN) {
23553 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
23554 ndr->depth++;
23555 ndr->depth--;
23557 if (flags & NDR_OUT) {
23558 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
23559 ndr->depth++;
23560 ndr_print_WERROR(ndr, "result", r->out.result);
23561 ndr->depth--;
23563 ndr->depth--;
23566 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
23568 if (flags & NDR_IN) {
23569 if (r->in.handle == NULL) {
23570 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23572 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23574 if (flags & NDR_OUT) {
23575 if (r->out.handle == NULL) {
23576 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23578 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23579 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23581 return NDR_ERR_SUCCESS;
23584 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
23586 TALLOC_CTX *_mem_save_handle_0;
23587 if (flags & NDR_IN) {
23588 ZERO_STRUCT(r->out);
23590 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23591 NDR_PULL_ALLOC(ndr, r->in.handle);
23593 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23594 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23595 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23597 NDR_PULL_ALLOC(ndr, r->out.handle);
23598 *r->out.handle = *r->in.handle;
23600 if (flags & NDR_OUT) {
23601 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23602 NDR_PULL_ALLOC(ndr, r->out.handle);
23604 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23605 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
23606 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23608 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23610 return NDR_ERR_SUCCESS;
23613 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
23615 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
23616 ndr->depth++;
23617 if (flags & NDR_SET_VALUES) {
23618 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23620 if (flags & NDR_IN) {
23621 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
23622 ndr->depth++;
23623 ndr_print_ptr(ndr, "handle", r->in.handle);
23624 ndr->depth++;
23625 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23626 ndr->depth--;
23627 ndr->depth--;
23629 if (flags & NDR_OUT) {
23630 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
23631 ndr->depth++;
23632 ndr_print_ptr(ndr, "handle", r->out.handle);
23633 ndr->depth++;
23634 ndr_print_policy_handle(ndr, "handle", r->out.handle);
23635 ndr->depth--;
23636 ndr_print_WERROR(ndr, "result", r->out.result);
23637 ndr->depth--;
23639 ndr->depth--;
23642 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
23644 if (flags & NDR_IN) {
23645 if (r->in.handle == NULL) {
23646 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23648 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23650 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23651 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23653 if (flags & NDR_OUT) {
23654 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23656 return NDR_ERR_SUCCESS;
23659 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
23661 TALLOC_CTX *_mem_save_handle_0;
23662 if (flags & NDR_IN) {
23663 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23664 NDR_PULL_ALLOC(ndr, r->in.handle);
23666 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23667 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23668 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23670 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23671 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23672 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23674 if (flags & NDR_OUT) {
23675 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23677 return NDR_ERR_SUCCESS;
23680 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
23682 ndr_print_struct(ndr, name, "spoolss_AddForm");
23683 ndr->depth++;
23684 if (flags & NDR_SET_VALUES) {
23685 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23687 if (flags & NDR_IN) {
23688 ndr_print_struct(ndr, "in", "spoolss_AddForm");
23689 ndr->depth++;
23690 ndr_print_ptr(ndr, "handle", r->in.handle);
23691 ndr->depth++;
23692 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23693 ndr->depth--;
23694 ndr_print_uint32(ndr, "level", r->in.level);
23695 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23696 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23697 ndr->depth--;
23699 if (flags & NDR_OUT) {
23700 ndr_print_struct(ndr, "out", "spoolss_AddForm");
23701 ndr->depth++;
23702 ndr_print_WERROR(ndr, "result", r->out.result);
23703 ndr->depth--;
23705 ndr->depth--;
23708 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
23710 if (flags & NDR_IN) {
23711 if (r->in.handle == NULL) {
23712 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23714 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23715 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23716 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23717 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23718 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));
23720 if (flags & NDR_OUT) {
23721 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23723 return NDR_ERR_SUCCESS;
23726 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
23728 TALLOC_CTX *_mem_save_handle_0;
23729 if (flags & NDR_IN) {
23730 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23731 NDR_PULL_ALLOC(ndr, r->in.handle);
23733 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23734 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23735 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23737 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23738 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23739 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23740 return 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));
23742 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23743 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));
23745 if (flags & NDR_OUT) {
23746 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23748 return NDR_ERR_SUCCESS;
23751 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
23753 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
23754 ndr->depth++;
23755 if (flags & NDR_SET_VALUES) {
23756 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23758 if (flags & NDR_IN) {
23759 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
23760 ndr->depth++;
23761 ndr_print_ptr(ndr, "handle", r->in.handle);
23762 ndr->depth++;
23763 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23764 ndr->depth--;
23765 ndr_print_string(ndr, "form_name", r->in.form_name);
23766 ndr->depth--;
23768 if (flags & NDR_OUT) {
23769 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
23770 ndr->depth++;
23771 ndr_print_WERROR(ndr, "result", r->out.result);
23772 ndr->depth--;
23774 ndr->depth--;
23777 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
23779 if (flags & NDR_IN) {
23780 if (r->in.handle == NULL) {
23781 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23783 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23784 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23785 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23786 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23787 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));
23788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23789 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23790 if (r->in.buffer) {
23791 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23795 if (flags & NDR_OUT) {
23796 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23797 if (r->out.info) {
23799 struct ndr_push *_ndr_info;
23800 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23801 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23802 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23803 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23806 if (r->out.needed == NULL) {
23807 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23810 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23812 return NDR_ERR_SUCCESS;
23815 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
23817 uint32_t _ptr_buffer;
23818 uint32_t _ptr_info;
23819 TALLOC_CTX *_mem_save_handle_0;
23820 TALLOC_CTX *_mem_save_buffer_0;
23821 TALLOC_CTX *_mem_save_info_0;
23822 TALLOC_CTX *_mem_save_needed_0;
23823 if (flags & NDR_IN) {
23824 ZERO_STRUCT(r->out);
23826 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23827 NDR_PULL_ALLOC(ndr, r->in.handle);
23829 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23830 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23831 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23832 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23833 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23834 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23835 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23836 return 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));
23838 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23839 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));
23840 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23841 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23842 if (_ptr_buffer) {
23843 NDR_PULL_ALLOC(ndr, r->in.buffer);
23844 } else {
23845 r->in.buffer = NULL;
23847 if (r->in.buffer) {
23848 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23849 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23850 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23851 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23853 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23854 NDR_PULL_ALLOC(ndr, r->out.needed);
23855 ZERO_STRUCTP(r->out.needed);
23857 if (flags & NDR_OUT) {
23858 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23859 if (_ptr_info) {
23860 NDR_PULL_ALLOC(ndr, r->out.info);
23861 } else {
23862 r->out.info = NULL;
23864 if (r->out.info) {
23865 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23866 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23868 struct ndr_pull *_ndr_info;
23869 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23870 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23871 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23872 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23876 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23877 NDR_PULL_ALLOC(ndr, r->out.needed);
23879 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23880 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23881 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23883 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23885 return NDR_ERR_SUCCESS;
23888 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
23890 ndr_print_struct(ndr, name, "spoolss_GetForm");
23891 ndr->depth++;
23892 if (flags & NDR_SET_VALUES) {
23893 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23895 if (flags & NDR_IN) {
23896 ndr_print_struct(ndr, "in", "spoolss_GetForm");
23897 ndr->depth++;
23898 ndr_print_ptr(ndr, "handle", r->in.handle);
23899 ndr->depth++;
23900 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23901 ndr->depth--;
23902 ndr_print_string(ndr, "form_name", r->in.form_name);
23903 ndr_print_uint32(ndr, "level", r->in.level);
23904 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23905 ndr->depth++;
23906 if (r->in.buffer) {
23907 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23909 ndr->depth--;
23910 ndr_print_uint32(ndr, "offered", r->in.offered);
23911 ndr->depth--;
23913 if (flags & NDR_OUT) {
23914 ndr_print_struct(ndr, "out", "spoolss_GetForm");
23915 ndr->depth++;
23916 ndr_print_ptr(ndr, "info", r->out.info);
23917 ndr->depth++;
23918 if (r->out.info) {
23919 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23920 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
23922 ndr->depth--;
23923 ndr_print_ptr(ndr, "needed", r->out.needed);
23924 ndr->depth++;
23925 ndr_print_uint32(ndr, "needed", *r->out.needed);
23926 ndr->depth--;
23927 ndr_print_WERROR(ndr, "result", r->out.result);
23928 ndr->depth--;
23930 ndr->depth--;
23933 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
23935 if (flags & NDR_IN) {
23936 if (r->in.handle == NULL) {
23937 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23939 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23940 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23941 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23942 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23943 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));
23944 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23945 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23946 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23948 if (flags & NDR_OUT) {
23949 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23951 return NDR_ERR_SUCCESS;
23954 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
23956 TALLOC_CTX *_mem_save_handle_0;
23957 if (flags & NDR_IN) {
23958 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23959 NDR_PULL_ALLOC(ndr, r->in.handle);
23961 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23962 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23963 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23965 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23966 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23967 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23968 return 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));
23970 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23971 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));
23972 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23973 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23974 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23976 if (flags & NDR_OUT) {
23977 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23979 return NDR_ERR_SUCCESS;
23982 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
23984 ndr_print_struct(ndr, name, "spoolss_SetForm");
23985 ndr->depth++;
23986 if (flags & NDR_SET_VALUES) {
23987 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23989 if (flags & NDR_IN) {
23990 ndr_print_struct(ndr, "in", "spoolss_SetForm");
23991 ndr->depth++;
23992 ndr_print_ptr(ndr, "handle", r->in.handle);
23993 ndr->depth++;
23994 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23995 ndr->depth--;
23996 ndr_print_string(ndr, "form_name", r->in.form_name);
23997 ndr_print_uint32(ndr, "level", r->in.level);
23998 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23999 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24000 ndr->depth--;
24002 if (flags & NDR_OUT) {
24003 ndr_print_struct(ndr, "out", "spoolss_SetForm");
24004 ndr->depth++;
24005 ndr_print_WERROR(ndr, "result", r->out.result);
24006 ndr->depth--;
24008 ndr->depth--;
24011 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
24013 if (flags & NDR_IN) {
24014 if (r->in.handle == NULL) {
24015 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24017 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24019 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24020 if (r->in.buffer) {
24021 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24025 if (flags & NDR_OUT) {
24026 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24027 if (r->out.info) {
24028 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24030 if (r->out.needed == NULL) {
24031 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24034 if (r->out.count == NULL) {
24035 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24038 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24040 return NDR_ERR_SUCCESS;
24043 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
24045 uint32_t _ptr_buffer;
24046 uint32_t _ptr_info;
24047 TALLOC_CTX *_mem_save_handle_0;
24048 TALLOC_CTX *_mem_save_buffer_0;
24049 TALLOC_CTX *_mem_save_info_0;
24050 TALLOC_CTX *_mem_save_needed_0;
24051 TALLOC_CTX *_mem_save_count_0;
24052 if (flags & NDR_IN) {
24053 ZERO_STRUCT(r->out);
24055 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24056 NDR_PULL_ALLOC(ndr, r->in.handle);
24058 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24059 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24060 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24063 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24064 if (_ptr_buffer) {
24065 NDR_PULL_ALLOC(ndr, r->in.buffer);
24066 } else {
24067 r->in.buffer = NULL;
24069 if (r->in.buffer) {
24070 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24071 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24072 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24073 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24075 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24076 NDR_PULL_ALLOC(ndr, r->out.needed);
24077 ZERO_STRUCTP(r->out.needed);
24078 NDR_PULL_ALLOC(ndr, r->out.count);
24079 ZERO_STRUCTP(r->out.count);
24081 if (flags & NDR_OUT) {
24082 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24083 if (_ptr_info) {
24084 NDR_PULL_ALLOC(ndr, r->out.info);
24085 } else {
24086 r->out.info = NULL;
24088 if (r->out.info) {
24089 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24090 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24091 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24094 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24095 NDR_PULL_ALLOC(ndr, r->out.needed);
24097 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24098 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24099 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24100 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24101 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24102 NDR_PULL_ALLOC(ndr, r->out.count);
24104 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24105 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24106 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24108 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24110 return NDR_ERR_SUCCESS;
24113 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
24115 uint32_t cntr_info_0;
24116 if (flags & NDR_IN) {
24117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24120 if (flags & NDR_OUT) {
24121 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24122 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24123 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24125 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24126 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24129 return NDR_ERR_SUCCESS;
24132 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
24134 uint32_t cntr_info_0;
24135 TALLOC_CTX *_mem_save_info_0;
24136 if (flags & NDR_IN) {
24137 ZERO_STRUCT(r->out);
24139 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24140 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24142 if (flags & NDR_OUT) {
24143 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24144 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24145 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24146 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24147 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24148 NDR_CHECK(ndr_pull_spoolss_FormInfo(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_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24155 return NDR_ERR_SUCCESS;
24158 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
24160 uint32_t cntr_info_2;
24161 ndr_print_struct(ndr, name, "spoolss_EnumForms");
24162 ndr->depth++;
24163 if (flags & NDR_SET_VALUES) {
24164 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24166 if (flags & NDR_IN) {
24167 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
24168 ndr->depth++;
24169 ndr_print_ptr(ndr, "handle", r->in.handle);
24170 ndr->depth++;
24171 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24172 ndr->depth--;
24173 ndr_print_uint32(ndr, "level", r->in.level);
24174 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24175 ndr->depth++;
24176 if (r->in.buffer) {
24177 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24179 ndr->depth--;
24180 ndr_print_uint32(ndr, "offered", r->in.offered);
24181 ndr->depth--;
24183 if (flags & NDR_OUT) {
24184 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
24185 ndr->depth++;
24186 ndr_print_ptr(ndr, "count", r->out.count);
24187 ndr->depth++;
24188 ndr_print_uint32(ndr, "count", *r->out.count);
24189 ndr->depth--;
24190 ndr_print_ptr(ndr, "info", r->out.info);
24191 ndr->depth++;
24192 ndr_print_ptr(ndr, "info", *r->out.info);
24193 ndr->depth++;
24194 if (*r->out.info) {
24195 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24196 ndr->depth++;
24197 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24198 char *idx_2=NULL;
24199 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24200 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24201 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24202 free(idx_2);
24205 ndr->depth--;
24207 ndr->depth--;
24208 ndr->depth--;
24209 ndr_print_ptr(ndr, "needed", r->out.needed);
24210 ndr->depth++;
24211 ndr_print_uint32(ndr, "needed", *r->out.needed);
24212 ndr->depth--;
24213 ndr_print_WERROR(ndr, "result", r->out.result);
24214 ndr->depth--;
24216 ndr->depth--;
24219 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
24221 if (flags & NDR_IN) {
24222 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24223 if (r->in.servername) {
24224 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24225 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24226 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24227 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24230 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24231 if (r->in.buffer) {
24232 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24234 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24236 if (flags & NDR_OUT) {
24237 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24238 if (r->out.info) {
24239 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24241 if (r->out.needed == NULL) {
24242 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24245 if (r->out.count == NULL) {
24246 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24249 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24251 return NDR_ERR_SUCCESS;
24254 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
24256 uint32_t _ptr_servername;
24257 uint32_t _ptr_buffer;
24258 uint32_t _ptr_info;
24259 TALLOC_CTX *_mem_save_servername_0;
24260 TALLOC_CTX *_mem_save_buffer_0;
24261 TALLOC_CTX *_mem_save_info_0;
24262 TALLOC_CTX *_mem_save_needed_0;
24263 TALLOC_CTX *_mem_save_count_0;
24264 if (flags & NDR_IN) {
24265 ZERO_STRUCT(r->out);
24267 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24268 if (_ptr_servername) {
24269 NDR_PULL_ALLOC(ndr, r->in.servername);
24270 } else {
24271 r->in.servername = NULL;
24273 if (r->in.servername) {
24274 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24275 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24276 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24277 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24278 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24279 return 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));
24281 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24282 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24283 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24285 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24287 if (_ptr_buffer) {
24288 NDR_PULL_ALLOC(ndr, r->in.buffer);
24289 } else {
24290 r->in.buffer = NULL;
24292 if (r->in.buffer) {
24293 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24294 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24295 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24296 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24298 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24299 NDR_PULL_ALLOC(ndr, r->out.needed);
24300 ZERO_STRUCTP(r->out.needed);
24301 NDR_PULL_ALLOC(ndr, r->out.count);
24302 ZERO_STRUCTP(r->out.count);
24304 if (flags & NDR_OUT) {
24305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24306 if (_ptr_info) {
24307 NDR_PULL_ALLOC(ndr, r->out.info);
24308 } else {
24309 r->out.info = NULL;
24311 if (r->out.info) {
24312 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24313 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24314 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24317 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24318 NDR_PULL_ALLOC(ndr, r->out.needed);
24320 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24321 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24322 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24323 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24324 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24325 NDR_PULL_ALLOC(ndr, r->out.count);
24327 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24328 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24331 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24333 return NDR_ERR_SUCCESS;
24336 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
24338 uint32_t cntr_info_0;
24339 if (flags & NDR_IN) {
24340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24343 if (flags & NDR_OUT) {
24344 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24345 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24346 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24348 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24349 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24352 return NDR_ERR_SUCCESS;
24355 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
24357 uint32_t cntr_info_0;
24358 TALLOC_CTX *_mem_save_info_0;
24359 if (flags & NDR_IN) {
24360 ZERO_STRUCT(r->out);
24362 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24365 if (flags & NDR_OUT) {
24366 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24367 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24368 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24369 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24370 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24371 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24373 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24374 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24378 return NDR_ERR_SUCCESS;
24381 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
24383 uint32_t cntr_info_2;
24384 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
24385 ndr->depth++;
24386 if (flags & NDR_SET_VALUES) {
24387 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24389 if (flags & NDR_IN) {
24390 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
24391 ndr->depth++;
24392 ndr_print_ptr(ndr, "servername", r->in.servername);
24393 ndr->depth++;
24394 if (r->in.servername) {
24395 ndr_print_string(ndr, "servername", r->in.servername);
24397 ndr->depth--;
24398 ndr_print_uint32(ndr, "level", r->in.level);
24399 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24400 ndr->depth++;
24401 if (r->in.buffer) {
24402 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24404 ndr->depth--;
24405 ndr_print_uint32(ndr, "offered", r->in.offered);
24406 ndr->depth--;
24408 if (flags & NDR_OUT) {
24409 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
24410 ndr->depth++;
24411 ndr_print_ptr(ndr, "count", r->out.count);
24412 ndr->depth++;
24413 ndr_print_uint32(ndr, "count", *r->out.count);
24414 ndr->depth--;
24415 ndr_print_ptr(ndr, "info", r->out.info);
24416 ndr->depth++;
24417 ndr_print_ptr(ndr, "info", *r->out.info);
24418 ndr->depth++;
24419 if (*r->out.info) {
24420 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24421 ndr->depth++;
24422 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24423 char *idx_2=NULL;
24424 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24425 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24426 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24427 free(idx_2);
24430 ndr->depth--;
24432 ndr->depth--;
24433 ndr->depth--;
24434 ndr_print_ptr(ndr, "needed", r->out.needed);
24435 ndr->depth++;
24436 ndr_print_uint32(ndr, "needed", *r->out.needed);
24437 ndr->depth--;
24438 ndr_print_WERROR(ndr, "result", r->out.result);
24439 ndr->depth--;
24441 ndr->depth--;
24444 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
24446 if (flags & NDR_IN) {
24447 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24448 if (r->in.servername) {
24449 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24450 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24451 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24452 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24455 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24456 if (r->in.buffer) {
24457 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24461 if (flags & NDR_OUT) {
24462 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24463 if (r->out.info) {
24464 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24466 if (r->out.needed == NULL) {
24467 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24470 if (r->out.count == NULL) {
24471 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24473 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24474 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24476 return NDR_ERR_SUCCESS;
24479 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
24481 uint32_t _ptr_servername;
24482 uint32_t _ptr_buffer;
24483 uint32_t _ptr_info;
24484 TALLOC_CTX *_mem_save_servername_0;
24485 TALLOC_CTX *_mem_save_buffer_0;
24486 TALLOC_CTX *_mem_save_info_0;
24487 TALLOC_CTX *_mem_save_needed_0;
24488 TALLOC_CTX *_mem_save_count_0;
24489 if (flags & NDR_IN) {
24490 ZERO_STRUCT(r->out);
24492 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24493 if (_ptr_servername) {
24494 NDR_PULL_ALLOC(ndr, r->in.servername);
24495 } else {
24496 r->in.servername = NULL;
24498 if (r->in.servername) {
24499 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24500 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24501 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24502 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24503 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24504 return 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));
24506 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24507 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24511 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24512 if (_ptr_buffer) {
24513 NDR_PULL_ALLOC(ndr, r->in.buffer);
24514 } else {
24515 r->in.buffer = NULL;
24517 if (r->in.buffer) {
24518 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24519 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24520 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24523 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24524 NDR_PULL_ALLOC(ndr, r->out.needed);
24525 ZERO_STRUCTP(r->out.needed);
24526 NDR_PULL_ALLOC(ndr, r->out.count);
24527 ZERO_STRUCTP(r->out.count);
24529 if (flags & NDR_OUT) {
24530 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24531 if (_ptr_info) {
24532 NDR_PULL_ALLOC(ndr, r->out.info);
24533 } else {
24534 r->out.info = NULL;
24536 if (r->out.info) {
24537 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24538 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24539 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24542 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24543 NDR_PULL_ALLOC(ndr, r->out.needed);
24545 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24546 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24549 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24550 NDR_PULL_ALLOC(ndr, r->out.count);
24552 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24553 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24556 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24558 return NDR_ERR_SUCCESS;
24561 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
24563 uint32_t cntr_info_0;
24564 if (flags & NDR_IN) {
24565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24568 if (flags & NDR_OUT) {
24569 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24570 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24571 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24573 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24574 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24577 return NDR_ERR_SUCCESS;
24580 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
24582 uint32_t cntr_info_0;
24583 TALLOC_CTX *_mem_save_info_0;
24584 if (flags & NDR_IN) {
24585 ZERO_STRUCT(r->out);
24587 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24588 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24590 if (flags & NDR_OUT) {
24591 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24592 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24593 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24594 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24595 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24596 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24598 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24599 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24603 return NDR_ERR_SUCCESS;
24606 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
24608 uint32_t cntr_info_2;
24609 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
24610 ndr->depth++;
24611 if (flags & NDR_SET_VALUES) {
24612 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24614 if (flags & NDR_IN) {
24615 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
24616 ndr->depth++;
24617 ndr_print_ptr(ndr, "servername", r->in.servername);
24618 ndr->depth++;
24619 if (r->in.servername) {
24620 ndr_print_string(ndr, "servername", r->in.servername);
24622 ndr->depth--;
24623 ndr_print_uint32(ndr, "level", r->in.level);
24624 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24625 ndr->depth++;
24626 if (r->in.buffer) {
24627 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24629 ndr->depth--;
24630 ndr_print_uint32(ndr, "offered", r->in.offered);
24631 ndr->depth--;
24633 if (flags & NDR_OUT) {
24634 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
24635 ndr->depth++;
24636 ndr_print_ptr(ndr, "count", r->out.count);
24637 ndr->depth++;
24638 ndr_print_uint32(ndr, "count", *r->out.count);
24639 ndr->depth--;
24640 ndr_print_ptr(ndr, "info", r->out.info);
24641 ndr->depth++;
24642 ndr_print_ptr(ndr, "info", *r->out.info);
24643 ndr->depth++;
24644 if (*r->out.info) {
24645 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24646 ndr->depth++;
24647 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24648 char *idx_2=NULL;
24649 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24650 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24651 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24652 free(idx_2);
24655 ndr->depth--;
24657 ndr->depth--;
24658 ndr->depth--;
24659 ndr_print_ptr(ndr, "needed", r->out.needed);
24660 ndr->depth++;
24661 ndr_print_uint32(ndr, "needed", *r->out.needed);
24662 ndr->depth--;
24663 ndr_print_WERROR(ndr, "result", r->out.result);
24664 ndr->depth--;
24666 ndr->depth--;
24669 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
24671 if (flags & NDR_IN) {
24672 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
24673 if (r->in.server_name) {
24674 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24675 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24676 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24677 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));
24679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
24680 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24681 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24682 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24683 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));
24685 if (flags & NDR_OUT) {
24686 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24688 return NDR_ERR_SUCCESS;
24691 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
24693 uint32_t _ptr_server_name;
24694 TALLOC_CTX *_mem_save_server_name_0;
24695 if (flags & NDR_IN) {
24696 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
24697 if (_ptr_server_name) {
24698 NDR_PULL_ALLOC(ndr, r->in.server_name);
24699 } else {
24700 r->in.server_name = NULL;
24702 if (r->in.server_name) {
24703 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
24704 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
24705 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24706 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24707 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
24708 return 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));
24710 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
24711 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));
24712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
24714 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
24715 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
24716 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
24717 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
24718 return 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));
24720 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
24721 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));
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_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
24731 ndr_print_struct(ndr, name, "spoolss_AddPort");
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_AddPort");
24738 ndr->depth++;
24739 ndr_print_ptr(ndr, "server_name", r->in.server_name);
24740 ndr->depth++;
24741 if (r->in.server_name) {
24742 ndr_print_string(ndr, "server_name", r->in.server_name);
24744 ndr->depth--;
24745 ndr_print_uint32(ndr, "unknown", r->in.unknown);
24746 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
24747 ndr->depth--;
24749 if (flags & NDR_OUT) {
24750 ndr_print_struct(ndr, "out", "spoolss_AddPort");
24751 ndr->depth++;
24752 ndr_print_WERROR(ndr, "result", r->out.result);
24753 ndr->depth--;
24755 ndr->depth--;
24758 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
24760 if (flags & NDR_IN) {
24762 if (flags & NDR_OUT) {
24763 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24765 return NDR_ERR_SUCCESS;
24768 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
24770 if (flags & NDR_IN) {
24772 if (flags & NDR_OUT) {
24773 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24775 return NDR_ERR_SUCCESS;
24778 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
24780 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
24781 ndr->depth++;
24782 if (flags & NDR_SET_VALUES) {
24783 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24785 if (flags & NDR_IN) {
24786 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
24787 ndr->depth++;
24788 ndr->depth--;
24790 if (flags & NDR_OUT) {
24791 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
24792 ndr->depth++;
24793 ndr_print_WERROR(ndr, "result", r->out.result);
24794 ndr->depth--;
24796 ndr->depth--;
24799 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
24801 if (flags & NDR_IN) {
24803 if (flags & NDR_OUT) {
24804 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24806 return NDR_ERR_SUCCESS;
24809 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
24811 if (flags & NDR_IN) {
24813 if (flags & NDR_OUT) {
24814 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24816 return NDR_ERR_SUCCESS;
24819 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
24821 ndr_print_struct(ndr, name, "spoolss_DeletePort");
24822 ndr->depth++;
24823 if (flags & NDR_SET_VALUES) {
24824 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24826 if (flags & NDR_IN) {
24827 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
24828 ndr->depth++;
24829 ndr->depth--;
24831 if (flags & NDR_OUT) {
24832 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
24833 ndr->depth++;
24834 ndr_print_WERROR(ndr, "result", r->out.result);
24835 ndr->depth--;
24837 ndr->depth--;
24840 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
24842 if (flags & NDR_IN) {
24843 if (r->in.handle == NULL) {
24844 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24846 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24847 if (r->in.devmode_ctr == NULL) {
24848 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24850 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24852 if (flags & NDR_OUT) {
24853 if (r->out.gdi_handle == NULL) {
24854 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24856 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24857 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24859 return NDR_ERR_SUCCESS;
24862 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
24864 TALLOC_CTX *_mem_save_handle_0;
24865 TALLOC_CTX *_mem_save_gdi_handle_0;
24866 TALLOC_CTX *_mem_save_devmode_ctr_0;
24867 if (flags & NDR_IN) {
24868 ZERO_STRUCT(r->out);
24870 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24871 NDR_PULL_ALLOC(ndr, r->in.handle);
24873 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24874 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24875 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24877 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24878 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
24880 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24881 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
24882 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24884 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24885 ZERO_STRUCTP(r->out.gdi_handle);
24887 if (flags & NDR_OUT) {
24888 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24889 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
24891 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24892 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
24893 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24894 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
24895 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24897 return NDR_ERR_SUCCESS;
24900 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
24902 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
24903 ndr->depth++;
24904 if (flags & NDR_SET_VALUES) {
24905 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24907 if (flags & NDR_IN) {
24908 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
24909 ndr->depth++;
24910 ndr_print_ptr(ndr, "handle", r->in.handle);
24911 ndr->depth++;
24912 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24913 ndr->depth--;
24914 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
24915 ndr->depth++;
24916 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
24917 ndr->depth--;
24918 ndr->depth--;
24920 if (flags & NDR_OUT) {
24921 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
24922 ndr->depth++;
24923 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
24924 ndr->depth++;
24925 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
24926 ndr->depth--;
24927 ndr_print_WERROR(ndr, "result", r->out.result);
24928 ndr->depth--;
24930 ndr->depth--;
24933 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24935 if (flags & NDR_IN) {
24937 if (flags & NDR_OUT) {
24938 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24940 return NDR_ERR_SUCCESS;
24943 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
24945 if (flags & NDR_IN) {
24947 if (flags & NDR_OUT) {
24948 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24950 return NDR_ERR_SUCCESS;
24953 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24955 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
24956 ndr->depth++;
24957 if (flags & NDR_SET_VALUES) {
24958 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24960 if (flags & NDR_IN) {
24961 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
24962 ndr->depth++;
24963 ndr->depth--;
24965 if (flags & NDR_OUT) {
24966 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
24967 ndr->depth++;
24968 ndr_print_WERROR(ndr, "result", r->out.result);
24969 ndr->depth--;
24971 ndr->depth--;
24974 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
24976 if (flags & NDR_IN) {
24977 if (r->in.gdi_handle == NULL) {
24978 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24980 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
24982 if (flags & NDR_OUT) {
24983 if (r->out.gdi_handle == NULL) {
24984 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24986 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
24987 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24989 return NDR_ERR_SUCCESS;
24992 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
24994 TALLOC_CTX *_mem_save_gdi_handle_0;
24995 if (flags & NDR_IN) {
24996 ZERO_STRUCT(r->out);
24998 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24999 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
25001 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25002 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25003 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25005 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25006 *r->out.gdi_handle = *r->in.gdi_handle;
25008 if (flags & NDR_OUT) {
25009 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25010 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25012 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25013 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25014 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25016 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25018 return NDR_ERR_SUCCESS;
25021 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
25023 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
25024 ndr->depth++;
25025 if (flags & NDR_SET_VALUES) {
25026 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25028 if (flags & NDR_IN) {
25029 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
25030 ndr->depth++;
25031 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
25032 ndr->depth++;
25033 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
25034 ndr->depth--;
25035 ndr->depth--;
25037 if (flags & NDR_OUT) {
25038 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
25039 ndr->depth++;
25040 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25041 ndr->depth++;
25042 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25043 ndr->depth--;
25044 ndr_print_WERROR(ndr, "result", r->out.result);
25045 ndr->depth--;
25047 ndr->depth--;
25050 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
25052 if (flags & NDR_IN) {
25054 if (flags & NDR_OUT) {
25055 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25057 return NDR_ERR_SUCCESS;
25060 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
25062 if (flags & NDR_IN) {
25064 if (flags & NDR_OUT) {
25065 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25067 return NDR_ERR_SUCCESS;
25070 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
25072 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
25073 ndr->depth++;
25074 if (flags & NDR_SET_VALUES) {
25075 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25077 if (flags & NDR_IN) {
25078 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
25079 ndr->depth++;
25080 ndr->depth--;
25082 if (flags & NDR_OUT) {
25083 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
25084 ndr->depth++;
25085 ndr_print_WERROR(ndr, "result", r->out.result);
25086 ndr->depth--;
25088 ndr->depth--;
25091 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
25093 if (flags & NDR_IN) {
25095 if (flags & NDR_OUT) {
25096 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25098 return NDR_ERR_SUCCESS;
25101 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
25103 if (flags & NDR_IN) {
25105 if (flags & NDR_OUT) {
25106 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25108 return NDR_ERR_SUCCESS;
25111 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
25113 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
25114 ndr->depth++;
25115 if (flags & NDR_SET_VALUES) {
25116 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25118 if (flags & NDR_IN) {
25119 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
25120 ndr->depth++;
25121 ndr->depth--;
25123 if (flags & NDR_OUT) {
25124 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
25125 ndr->depth++;
25126 ndr_print_WERROR(ndr, "result", r->out.result);
25127 ndr->depth--;
25129 ndr->depth--;
25132 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
25134 if (flags & NDR_IN) {
25136 if (flags & NDR_OUT) {
25137 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25139 return NDR_ERR_SUCCESS;
25142 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
25144 if (flags & NDR_IN) {
25146 if (flags & NDR_OUT) {
25147 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25149 return NDR_ERR_SUCCESS;
25152 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
25154 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
25155 ndr->depth++;
25156 if (flags & NDR_SET_VALUES) {
25157 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25159 if (flags & NDR_IN) {
25160 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
25161 ndr->depth++;
25162 ndr->depth--;
25164 if (flags & NDR_OUT) {
25165 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
25166 ndr->depth++;
25167 ndr_print_WERROR(ndr, "result", r->out.result);
25168 ndr->depth--;
25170 ndr->depth--;
25173 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
25175 if (flags & NDR_IN) {
25177 if (flags & NDR_OUT) {
25178 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25180 return NDR_ERR_SUCCESS;
25183 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
25185 if (flags & NDR_IN) {
25187 if (flags & NDR_OUT) {
25188 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25190 return NDR_ERR_SUCCESS;
25193 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
25195 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
25196 ndr->depth++;
25197 if (flags & NDR_SET_VALUES) {
25198 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25200 if (flags & NDR_IN) {
25201 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
25202 ndr->depth++;
25203 ndr->depth--;
25205 if (flags & NDR_OUT) {
25206 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
25207 ndr->depth++;
25208 ndr_print_WERROR(ndr, "result", r->out.result);
25209 ndr->depth--;
25211 ndr->depth--;
25214 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
25216 if (flags & NDR_IN) {
25218 if (flags & NDR_OUT) {
25219 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25221 return NDR_ERR_SUCCESS;
25224 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
25226 if (flags & NDR_IN) {
25228 if (flags & NDR_OUT) {
25229 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25231 return NDR_ERR_SUCCESS;
25234 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
25236 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
25237 ndr->depth++;
25238 if (flags & NDR_SET_VALUES) {
25239 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25241 if (flags & NDR_IN) {
25242 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
25243 ndr->depth++;
25244 ndr->depth--;
25246 if (flags & NDR_OUT) {
25247 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
25248 ndr->depth++;
25249 ndr_print_WERROR(ndr, "result", r->out.result);
25250 ndr->depth--;
25252 ndr->depth--;
25255 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
25257 if (flags & NDR_IN) {
25259 if (flags & NDR_OUT) {
25260 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25262 return NDR_ERR_SUCCESS;
25265 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
25267 if (flags & NDR_IN) {
25269 if (flags & NDR_OUT) {
25270 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25272 return NDR_ERR_SUCCESS;
25275 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
25277 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
25278 ndr->depth++;
25279 if (flags & NDR_SET_VALUES) {
25280 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25282 if (flags & NDR_IN) {
25283 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
25284 ndr->depth++;
25285 ndr->depth--;
25287 if (flags & NDR_OUT) {
25288 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
25289 ndr->depth++;
25290 ndr_print_WERROR(ndr, "result", r->out.result);
25291 ndr->depth--;
25293 ndr->depth--;
25296 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
25298 if (flags & NDR_IN) {
25300 if (flags & NDR_OUT) {
25301 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25303 return NDR_ERR_SUCCESS;
25306 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
25308 if (flags & NDR_IN) {
25310 if (flags & NDR_OUT) {
25311 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25313 return NDR_ERR_SUCCESS;
25316 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
25318 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
25319 ndr->depth++;
25320 if (flags & NDR_SET_VALUES) {
25321 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25323 if (flags & NDR_IN) {
25324 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
25325 ndr->depth++;
25326 ndr->depth--;
25328 if (flags & NDR_OUT) {
25329 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
25330 ndr->depth++;
25331 ndr_print_WERROR(ndr, "result", r->out.result);
25332 ndr->depth--;
25334 ndr->depth--;
25337 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
25339 if (flags & NDR_IN) {
25341 if (flags & NDR_OUT) {
25342 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25344 return NDR_ERR_SUCCESS;
25347 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
25349 if (flags & NDR_IN) {
25351 if (flags & NDR_OUT) {
25352 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25354 return NDR_ERR_SUCCESS;
25357 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
25359 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
25360 ndr->depth++;
25361 if (flags & NDR_SET_VALUES) {
25362 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25364 if (flags & NDR_IN) {
25365 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
25366 ndr->depth++;
25367 ndr->depth--;
25369 if (flags & NDR_OUT) {
25370 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
25371 ndr->depth++;
25372 ndr_print_WERROR(ndr, "result", r->out.result);
25373 ndr->depth--;
25375 ndr->depth--;
25378 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
25380 if (flags & NDR_IN) {
25381 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25382 if (r->in.servername) {
25383 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25384 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25385 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25386 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25388 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
25389 if (r->in.print_processor_name) {
25390 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25391 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25392 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25393 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));
25395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25396 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25397 if (r->in.buffer) {
25398 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25402 if (flags & NDR_OUT) {
25403 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25404 if (r->out.info) {
25405 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25407 if (r->out.needed == NULL) {
25408 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25411 if (r->out.count == NULL) {
25412 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25415 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25417 return NDR_ERR_SUCCESS;
25420 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
25422 uint32_t _ptr_servername;
25423 uint32_t _ptr_print_processor_name;
25424 uint32_t _ptr_buffer;
25425 uint32_t _ptr_info;
25426 TALLOC_CTX *_mem_save_servername_0;
25427 TALLOC_CTX *_mem_save_print_processor_name_0;
25428 TALLOC_CTX *_mem_save_buffer_0;
25429 TALLOC_CTX *_mem_save_info_0;
25430 TALLOC_CTX *_mem_save_needed_0;
25431 TALLOC_CTX *_mem_save_count_0;
25432 if (flags & NDR_IN) {
25433 ZERO_STRUCT(r->out);
25435 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25436 if (_ptr_servername) {
25437 NDR_PULL_ALLOC(ndr, r->in.servername);
25438 } else {
25439 r->in.servername = NULL;
25441 if (r->in.servername) {
25442 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25443 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25444 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25445 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25446 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25447 return 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));
25449 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25450 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25453 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
25454 if (_ptr_print_processor_name) {
25455 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
25456 } else {
25457 r->in.print_processor_name = NULL;
25459 if (r->in.print_processor_name) {
25460 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25461 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
25462 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
25463 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
25464 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
25465 return 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));
25467 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
25468 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));
25469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
25471 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25472 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25473 if (_ptr_buffer) {
25474 NDR_PULL_ALLOC(ndr, r->in.buffer);
25475 } else {
25476 r->in.buffer = NULL;
25478 if (r->in.buffer) {
25479 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25480 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25481 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25482 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25484 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25485 NDR_PULL_ALLOC(ndr, r->out.needed);
25486 ZERO_STRUCTP(r->out.needed);
25487 NDR_PULL_ALLOC(ndr, r->out.count);
25488 ZERO_STRUCTP(r->out.count);
25490 if (flags & NDR_OUT) {
25491 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25492 if (_ptr_info) {
25493 NDR_PULL_ALLOC(ndr, r->out.info);
25494 } else {
25495 r->out.info = NULL;
25497 if (r->out.info) {
25498 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25499 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25500 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25503 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25504 NDR_PULL_ALLOC(ndr, r->out.needed);
25506 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25507 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25509 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25510 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25511 NDR_PULL_ALLOC(ndr, r->out.count);
25513 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25514 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25515 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25517 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25519 return NDR_ERR_SUCCESS;
25522 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
25524 uint32_t cntr_info_0;
25525 if (flags & NDR_IN) {
25526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25529 if (flags & NDR_OUT) {
25530 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25531 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25532 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25534 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25535 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25538 return NDR_ERR_SUCCESS;
25541 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
25543 uint32_t cntr_info_0;
25544 TALLOC_CTX *_mem_save_info_0;
25545 if (flags & NDR_IN) {
25546 ZERO_STRUCT(r->out);
25548 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25549 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25551 if (flags & NDR_OUT) {
25552 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25553 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25554 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25555 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25556 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25557 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25559 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25560 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25564 return NDR_ERR_SUCCESS;
25567 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
25569 uint32_t cntr_info_2;
25570 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
25571 ndr->depth++;
25572 if (flags & NDR_SET_VALUES) {
25573 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25575 if (flags & NDR_IN) {
25576 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
25577 ndr->depth++;
25578 ndr_print_ptr(ndr, "servername", r->in.servername);
25579 ndr->depth++;
25580 if (r->in.servername) {
25581 ndr_print_string(ndr, "servername", r->in.servername);
25583 ndr->depth--;
25584 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
25585 ndr->depth++;
25586 if (r->in.print_processor_name) {
25587 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
25589 ndr->depth--;
25590 ndr_print_uint32(ndr, "level", r->in.level);
25591 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25592 ndr->depth++;
25593 if (r->in.buffer) {
25594 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25596 ndr->depth--;
25597 ndr_print_uint32(ndr, "offered", r->in.offered);
25598 ndr->depth--;
25600 if (flags & NDR_OUT) {
25601 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
25602 ndr->depth++;
25603 ndr_print_ptr(ndr, "count", r->out.count);
25604 ndr->depth++;
25605 ndr_print_uint32(ndr, "count", *r->out.count);
25606 ndr->depth--;
25607 ndr_print_ptr(ndr, "info", r->out.info);
25608 ndr->depth++;
25609 ndr_print_ptr(ndr, "info", *r->out.info);
25610 ndr->depth++;
25611 if (*r->out.info) {
25612 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25613 ndr->depth++;
25614 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25615 char *idx_2=NULL;
25616 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25617 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25618 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25619 free(idx_2);
25622 ndr->depth--;
25624 ndr->depth--;
25625 ndr->depth--;
25626 ndr_print_ptr(ndr, "needed", r->out.needed);
25627 ndr->depth++;
25628 ndr_print_uint32(ndr, "needed", *r->out.needed);
25629 ndr->depth--;
25630 ndr_print_WERROR(ndr, "result", r->out.result);
25631 ndr->depth--;
25633 ndr->depth--;
25636 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
25638 if (flags & NDR_IN) {
25639 if (r->in.handle == NULL) {
25640 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25642 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25643 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
25644 if (r->in.data_type) {
25645 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25646 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25647 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25648 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));
25650 if (r->in.devmode_ctr == NULL) {
25651 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25653 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25655 if (flags & NDR_OUT) {
25656 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25658 return NDR_ERR_SUCCESS;
25661 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
25663 uint32_t _ptr_data_type;
25664 TALLOC_CTX *_mem_save_handle_0;
25665 TALLOC_CTX *_mem_save_data_type_0;
25666 TALLOC_CTX *_mem_save_devmode_ctr_0;
25667 if (flags & NDR_IN) {
25668 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25669 NDR_PULL_ALLOC(ndr, r->in.handle);
25671 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25672 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25673 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25675 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
25676 if (_ptr_data_type) {
25677 NDR_PULL_ALLOC(ndr, r->in.data_type);
25678 } else {
25679 r->in.data_type = NULL;
25681 if (r->in.data_type) {
25682 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25683 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
25684 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
25685 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
25686 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
25687 return 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));
25689 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
25690 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));
25691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
25693 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25694 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25696 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25697 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25698 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25701 if (flags & NDR_OUT) {
25702 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25704 return NDR_ERR_SUCCESS;
25707 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
25709 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
25710 ndr->depth++;
25711 if (flags & NDR_SET_VALUES) {
25712 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25714 if (flags & NDR_IN) {
25715 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
25716 ndr->depth++;
25717 ndr_print_ptr(ndr, "handle", r->in.handle);
25718 ndr->depth++;
25719 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25720 ndr->depth--;
25721 ndr_print_ptr(ndr, "data_type", r->in.data_type);
25722 ndr->depth++;
25723 if (r->in.data_type) {
25724 ndr_print_string(ndr, "data_type", r->in.data_type);
25726 ndr->depth--;
25727 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25728 ndr->depth++;
25729 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25730 ndr->depth--;
25731 ndr->depth--;
25733 if (flags & NDR_OUT) {
25734 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
25735 ndr->depth++;
25736 ndr_print_WERROR(ndr, "result", r->out.result);
25737 ndr->depth--;
25739 ndr->depth--;
25742 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
25744 if (flags & NDR_IN) {
25745 if (r->in.handle == NULL) {
25746 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25748 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25749 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
25750 if (r->in.architecture) {
25751 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25752 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25753 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25754 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25757 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25758 if (r->in.buffer) {
25759 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
25763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
25765 if (flags & NDR_OUT) {
25766 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25767 if (r->out.info) {
25769 struct ndr_push *_ndr_info;
25770 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25771 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
25772 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25773 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25776 if (r->out.needed == NULL) {
25777 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25780 if (r->out.server_major_version == NULL) {
25781 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
25784 if (r->out.server_minor_version == NULL) {
25785 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25787 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
25788 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25790 return NDR_ERR_SUCCESS;
25793 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
25795 uint32_t _ptr_architecture;
25796 uint32_t _ptr_buffer;
25797 uint32_t _ptr_info;
25798 TALLOC_CTX *_mem_save_handle_0;
25799 TALLOC_CTX *_mem_save_architecture_0;
25800 TALLOC_CTX *_mem_save_buffer_0;
25801 TALLOC_CTX *_mem_save_info_0;
25802 TALLOC_CTX *_mem_save_needed_0;
25803 TALLOC_CTX *_mem_save_server_major_version_0;
25804 TALLOC_CTX *_mem_save_server_minor_version_0;
25805 if (flags & NDR_IN) {
25806 ZERO_STRUCT(r->out);
25808 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25809 NDR_PULL_ALLOC(ndr, r->in.handle);
25811 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25812 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25813 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25814 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
25816 if (_ptr_architecture) {
25817 NDR_PULL_ALLOC(ndr, r->in.architecture);
25818 } else {
25819 r->in.architecture = NULL;
25821 if (r->in.architecture) {
25822 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
25823 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
25824 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
25825 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
25826 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
25827 return 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));
25829 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
25830 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
25831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
25833 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25834 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25835 if (_ptr_buffer) {
25836 NDR_PULL_ALLOC(ndr, r->in.buffer);
25837 } else {
25838 r->in.buffer = NULL;
25840 if (r->in.buffer) {
25841 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25842 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25843 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25844 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25846 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25847 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
25848 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
25849 NDR_PULL_ALLOC(ndr, r->out.needed);
25850 ZERO_STRUCTP(r->out.needed);
25851 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25852 ZERO_STRUCTP(r->out.server_major_version);
25853 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25854 ZERO_STRUCTP(r->out.server_minor_version);
25856 if (flags & NDR_OUT) {
25857 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25858 if (_ptr_info) {
25859 NDR_PULL_ALLOC(ndr, r->out.info);
25860 } else {
25861 r->out.info = NULL;
25863 if (r->out.info) {
25864 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25865 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25867 struct ndr_pull *_ndr_info;
25868 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25869 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
25870 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25871 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25875 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25876 NDR_PULL_ALLOC(ndr, r->out.needed);
25878 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25879 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25880 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25882 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25883 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25885 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25886 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
25887 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
25888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
25889 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25890 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25892 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25893 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
25894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
25895 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
25896 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25898 return NDR_ERR_SUCCESS;
25901 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
25903 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
25904 ndr->depth++;
25905 if (flags & NDR_SET_VALUES) {
25906 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25908 if (flags & NDR_IN) {
25909 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
25910 ndr->depth++;
25911 ndr_print_ptr(ndr, "handle", r->in.handle);
25912 ndr->depth++;
25913 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25914 ndr->depth--;
25915 ndr_print_ptr(ndr, "architecture", r->in.architecture);
25916 ndr->depth++;
25917 if (r->in.architecture) {
25918 ndr_print_string(ndr, "architecture", r->in.architecture);
25920 ndr->depth--;
25921 ndr_print_uint32(ndr, "level", r->in.level);
25922 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25923 ndr->depth++;
25924 if (r->in.buffer) {
25925 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25927 ndr->depth--;
25928 ndr_print_uint32(ndr, "offered", r->in.offered);
25929 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
25930 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
25931 ndr->depth--;
25933 if (flags & NDR_OUT) {
25934 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
25935 ndr->depth++;
25936 ndr_print_ptr(ndr, "info", r->out.info);
25937 ndr->depth++;
25938 if (r->out.info) {
25939 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
25940 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
25942 ndr->depth--;
25943 ndr_print_ptr(ndr, "needed", r->out.needed);
25944 ndr->depth++;
25945 ndr_print_uint32(ndr, "needed", *r->out.needed);
25946 ndr->depth--;
25947 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
25948 ndr->depth++;
25949 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
25950 ndr->depth--;
25951 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
25952 ndr->depth++;
25953 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
25954 ndr->depth--;
25955 ndr_print_WERROR(ndr, "result", r->out.result);
25956 ndr->depth--;
25958 ndr->depth--;
25961 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25963 if (flags & NDR_IN) {
25965 if (flags & NDR_OUT) {
25966 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25968 return NDR_ERR_SUCCESS;
25971 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
25973 if (flags & NDR_IN) {
25975 if (flags & NDR_OUT) {
25976 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25978 return NDR_ERR_SUCCESS;
25981 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25983 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
25984 ndr->depth++;
25985 if (flags & NDR_SET_VALUES) {
25986 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25988 if (flags & NDR_IN) {
25989 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
25990 ndr->depth++;
25991 ndr->depth--;
25993 if (flags & NDR_OUT) {
25994 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
25995 ndr->depth++;
25996 ndr_print_WERROR(ndr, "result", r->out.result);
25997 ndr->depth--;
25999 ndr->depth--;
26002 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26004 if (flags & NDR_IN) {
26006 if (flags & NDR_OUT) {
26007 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26009 return NDR_ERR_SUCCESS;
26012 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
26014 if (flags & NDR_IN) {
26016 if (flags & NDR_OUT) {
26017 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26019 return NDR_ERR_SUCCESS;
26022 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26024 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
26025 ndr->depth++;
26026 if (flags & NDR_SET_VALUES) {
26027 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26029 if (flags & NDR_IN) {
26030 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
26031 ndr->depth++;
26032 ndr->depth--;
26034 if (flags & NDR_OUT) {
26035 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
26036 ndr->depth++;
26037 ndr_print_WERROR(ndr, "result", r->out.result);
26038 ndr->depth--;
26040 ndr->depth--;
26043 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
26045 if (flags & NDR_IN) {
26046 if (r->in.handle == NULL) {
26047 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26049 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26051 if (flags & NDR_OUT) {
26052 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26054 return NDR_ERR_SUCCESS;
26057 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
26059 TALLOC_CTX *_mem_save_handle_0;
26060 if (flags & NDR_IN) {
26061 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26062 NDR_PULL_ALLOC(ndr, r->in.handle);
26064 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26065 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26066 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26069 if (flags & NDR_OUT) {
26070 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26072 return NDR_ERR_SUCCESS;
26075 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
26077 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
26078 ndr->depth++;
26079 if (flags & NDR_SET_VALUES) {
26080 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26082 if (flags & NDR_IN) {
26083 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
26084 ndr->depth++;
26085 ndr_print_ptr(ndr, "handle", r->in.handle);
26086 ndr->depth++;
26087 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26088 ndr->depth--;
26089 ndr->depth--;
26091 if (flags & NDR_OUT) {
26092 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
26093 ndr->depth++;
26094 ndr_print_WERROR(ndr, "result", r->out.result);
26095 ndr->depth--;
26097 ndr->depth--;
26100 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26102 if (flags & NDR_IN) {
26104 if (flags & NDR_OUT) {
26105 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26107 return NDR_ERR_SUCCESS;
26110 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26112 if (flags & NDR_IN) {
26114 if (flags & NDR_OUT) {
26115 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26117 return NDR_ERR_SUCCESS;
26120 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26122 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26123 ndr->depth++;
26124 if (flags & NDR_SET_VALUES) {
26125 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26127 if (flags & NDR_IN) {
26128 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26129 ndr->depth++;
26130 ndr->depth--;
26132 if (flags & NDR_OUT) {
26133 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26134 ndr->depth++;
26135 ndr_print_WERROR(ndr, "result", r->out.result);
26136 ndr->depth--;
26138 ndr->depth--;
26141 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
26143 if (flags & NDR_IN) {
26144 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26145 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26146 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26147 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));
26148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26149 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
26150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26151 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26152 if (r->in.buffer) {
26153 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26154 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26157 if (flags & NDR_OUT) {
26158 if (r->out.handle == NULL) {
26159 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26161 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26162 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26164 return NDR_ERR_SUCCESS;
26167 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
26169 uint32_t _ptr_buffer;
26170 TALLOC_CTX *_mem_save_buffer_0;
26171 TALLOC_CTX *_mem_save_handle_0;
26172 if (flags & NDR_IN) {
26173 ZERO_STRUCT(r->out);
26175 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
26176 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
26177 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
26178 return 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));
26180 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
26181 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));
26182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26183 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
26184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26185 if (r->in.bufsize > 512) {
26186 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26188 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26189 if (_ptr_buffer) {
26190 NDR_PULL_ALLOC(ndr, r->in.buffer);
26191 } else {
26192 r->in.buffer = NULL;
26194 if (r->in.buffer) {
26195 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26196 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26197 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26198 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26199 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26202 NDR_PULL_ALLOC(ndr, r->out.handle);
26203 ZERO_STRUCTP(r->out.handle);
26204 if (r->in.buffer) {
26205 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26208 if (flags & NDR_OUT) {
26209 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26210 NDR_PULL_ALLOC(ndr, r->out.handle);
26212 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26213 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26214 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26216 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26218 return NDR_ERR_SUCCESS;
26221 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
26223 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
26224 ndr->depth++;
26225 if (flags & NDR_SET_VALUES) {
26226 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26228 if (flags & NDR_IN) {
26229 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
26230 ndr->depth++;
26231 ndr_print_string(ndr, "server_name", r->in.server_name);
26232 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26233 ndr_print_winreg_Type(ndr, "type", r->in.type);
26234 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26235 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26236 ndr->depth++;
26237 if (r->in.buffer) {
26238 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26240 ndr->depth--;
26241 ndr->depth--;
26243 if (flags & NDR_OUT) {
26244 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
26245 ndr->depth++;
26246 ndr_print_ptr(ndr, "handle", r->out.handle);
26247 ndr->depth++;
26248 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26249 ndr->depth--;
26250 ndr_print_WERROR(ndr, "result", r->out.result);
26251 ndr->depth--;
26253 ndr->depth--;
26256 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
26258 if (flags & NDR_IN) {
26259 if (r->in.handle == NULL) {
26260 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26262 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26263 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26265 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26266 if (r->in.buffer) {
26267 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26268 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26271 if (flags & NDR_OUT) {
26272 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26274 return NDR_ERR_SUCCESS;
26277 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
26279 uint32_t _ptr_buffer;
26280 TALLOC_CTX *_mem_save_handle_0;
26281 TALLOC_CTX *_mem_save_buffer_0;
26282 if (flags & NDR_IN) {
26283 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26284 NDR_PULL_ALLOC(ndr, r->in.handle);
26286 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26287 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26288 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26290 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26291 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26292 if (r->in.bufsize > 512) {
26293 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26296 if (_ptr_buffer) {
26297 NDR_PULL_ALLOC(ndr, r->in.buffer);
26298 } else {
26299 r->in.buffer = NULL;
26301 if (r->in.buffer) {
26302 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26303 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26304 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26305 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26306 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26307 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26309 if (r->in.buffer) {
26310 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26313 if (flags & NDR_OUT) {
26314 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26316 return NDR_ERR_SUCCESS;
26319 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
26321 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
26322 ndr->depth++;
26323 if (flags & NDR_SET_VALUES) {
26324 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26326 if (flags & NDR_IN) {
26327 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
26328 ndr->depth++;
26329 ndr_print_ptr(ndr, "handle", r->in.handle);
26330 ndr->depth++;
26331 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26332 ndr->depth--;
26333 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26334 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26335 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26336 ndr->depth++;
26337 if (r->in.buffer) {
26338 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26340 ndr->depth--;
26341 ndr->depth--;
26343 if (flags & NDR_OUT) {
26344 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
26345 ndr->depth++;
26346 ndr_print_WERROR(ndr, "result", r->out.result);
26347 ndr->depth--;
26349 ndr->depth--;
26352 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
26354 if (flags & NDR_IN) {
26355 if (r->in.handle == NULL) {
26356 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26358 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26360 if (flags & NDR_OUT) {
26361 if (r->out.handle == NULL) {
26362 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26364 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26365 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26367 return NDR_ERR_SUCCESS;
26370 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
26372 TALLOC_CTX *_mem_save_handle_0;
26373 if (flags & NDR_IN) {
26374 ZERO_STRUCT(r->out);
26376 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26377 NDR_PULL_ALLOC(ndr, r->in.handle);
26379 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26380 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26381 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26383 NDR_PULL_ALLOC(ndr, r->out.handle);
26384 *r->out.handle = *r->in.handle;
26386 if (flags & NDR_OUT) {
26387 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26388 NDR_PULL_ALLOC(ndr, r->out.handle);
26390 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26391 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26392 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26394 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26396 return NDR_ERR_SUCCESS;
26399 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
26401 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
26402 ndr->depth++;
26403 if (flags & NDR_SET_VALUES) {
26404 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26406 if (flags & NDR_IN) {
26407 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
26408 ndr->depth++;
26409 ndr_print_ptr(ndr, "handle", r->in.handle);
26410 ndr->depth++;
26411 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26412 ndr->depth--;
26413 ndr->depth--;
26415 if (flags & NDR_OUT) {
26416 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
26417 ndr->depth++;
26418 ndr_print_ptr(ndr, "handle", r->out.handle);
26419 ndr->depth++;
26420 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26421 ndr->depth--;
26422 ndr_print_WERROR(ndr, "result", r->out.result);
26423 ndr->depth--;
26425 ndr->depth--;
26428 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
26430 if (flags & NDR_IN) {
26432 if (flags & NDR_OUT) {
26433 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26435 return NDR_ERR_SUCCESS;
26438 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
26440 if (flags & NDR_IN) {
26442 if (flags & NDR_OUT) {
26443 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26445 return NDR_ERR_SUCCESS;
26448 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
26450 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
26451 ndr->depth++;
26452 if (flags & NDR_SET_VALUES) {
26453 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26455 if (flags & NDR_IN) {
26456 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
26457 ndr->depth++;
26458 ndr->depth--;
26460 if (flags & NDR_OUT) {
26461 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
26462 ndr->depth++;
26463 ndr_print_WERROR(ndr, "result", r->out.result);
26464 ndr->depth--;
26466 ndr->depth--;
26469 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26471 if (flags & NDR_IN) {
26473 if (flags & NDR_OUT) {
26474 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26476 return NDR_ERR_SUCCESS;
26479 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26481 if (flags & NDR_IN) {
26483 if (flags & NDR_OUT) {
26484 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26486 return NDR_ERR_SUCCESS;
26489 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26491 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
26492 ndr->depth++;
26493 if (flags & NDR_SET_VALUES) {
26494 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26496 if (flags & NDR_IN) {
26497 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
26498 ndr->depth++;
26499 ndr->depth--;
26501 if (flags & NDR_OUT) {
26502 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
26503 ndr->depth++;
26504 ndr_print_WERROR(ndr, "result", r->out.result);
26505 ndr->depth--;
26507 ndr->depth--;
26510 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
26512 if (flags & NDR_IN) {
26514 if (flags & NDR_OUT) {
26515 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26517 return NDR_ERR_SUCCESS;
26520 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
26522 if (flags & NDR_IN) {
26524 if (flags & NDR_OUT) {
26525 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26527 return NDR_ERR_SUCCESS;
26530 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
26532 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
26533 ndr->depth++;
26534 if (flags & NDR_SET_VALUES) {
26535 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26537 if (flags & NDR_IN) {
26538 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
26539 ndr->depth++;
26540 ndr->depth--;
26542 if (flags & NDR_OUT) {
26543 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
26544 ndr->depth++;
26545 ndr_print_WERROR(ndr, "result", r->out.result);
26546 ndr->depth--;
26548 ndr->depth--;
26551 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
26553 if (flags & NDR_IN) {
26555 if (flags & NDR_OUT) {
26556 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26558 return NDR_ERR_SUCCESS;
26561 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
26563 if (flags & NDR_IN) {
26565 if (flags & NDR_OUT) {
26566 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26568 return NDR_ERR_SUCCESS;
26571 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
26573 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
26574 ndr->depth++;
26575 if (flags & NDR_SET_VALUES) {
26576 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26578 if (flags & NDR_IN) {
26579 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
26580 ndr->depth++;
26581 ndr->depth--;
26583 if (flags & NDR_OUT) {
26584 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
26585 ndr->depth++;
26586 ndr_print_WERROR(ndr, "result", r->out.result);
26587 ndr->depth--;
26589 ndr->depth--;
26592 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26594 if (flags & NDR_IN) {
26595 if (r->in.handle == NULL) {
26596 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26598 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26599 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
26601 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
26602 if (r->in.local_machine) {
26603 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26604 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26605 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26606 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));
26608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26609 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
26610 if (r->in.notify_options) {
26611 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26614 if (flags & NDR_OUT) {
26615 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26617 return NDR_ERR_SUCCESS;
26620 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26622 uint32_t _ptr_local_machine;
26623 uint32_t _ptr_notify_options;
26624 TALLOC_CTX *_mem_save_handle_0;
26625 TALLOC_CTX *_mem_save_local_machine_0;
26626 TALLOC_CTX *_mem_save_notify_options_0;
26627 if (flags & NDR_IN) {
26628 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26629 NDR_PULL_ALLOC(ndr, r->in.handle);
26631 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26632 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26633 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26635 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26636 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
26637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
26638 if (_ptr_local_machine) {
26639 NDR_PULL_ALLOC(ndr, r->in.local_machine);
26640 } else {
26641 r->in.local_machine = NULL;
26643 if (r->in.local_machine) {
26644 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
26645 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
26646 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
26647 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
26648 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
26649 return 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));
26651 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
26652 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));
26653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
26655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26656 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
26657 if (_ptr_notify_options) {
26658 NDR_PULL_ALLOC(ndr, r->in.notify_options);
26659 } else {
26660 r->in.notify_options = NULL;
26662 if (r->in.notify_options) {
26663 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26664 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
26665 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
26669 if (flags & NDR_OUT) {
26670 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26672 return NDR_ERR_SUCCESS;
26675 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26677 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26678 ndr->depth++;
26679 if (flags & NDR_SET_VALUES) {
26680 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26682 if (flags & NDR_IN) {
26683 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26684 ndr->depth++;
26685 ndr_print_ptr(ndr, "handle", r->in.handle);
26686 ndr->depth++;
26687 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26688 ndr->depth--;
26689 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26690 ndr_print_uint32(ndr, "options", r->in.options);
26691 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
26692 ndr->depth++;
26693 if (r->in.local_machine) {
26694 ndr_print_string(ndr, "local_machine", r->in.local_machine);
26696 ndr->depth--;
26697 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26698 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
26699 ndr->depth++;
26700 if (r->in.notify_options) {
26701 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
26703 ndr->depth--;
26704 ndr->depth--;
26706 if (flags & NDR_OUT) {
26707 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26708 ndr->depth++;
26709 ndr_print_WERROR(ndr, "result", r->out.result);
26710 ndr->depth--;
26712 ndr->depth--;
26715 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26717 if (flags & NDR_IN) {
26718 if (r->in.handle == NULL) {
26719 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26721 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
26723 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
26725 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26726 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26728 if (flags & NDR_OUT) {
26729 if (r->out.reply_result == NULL) {
26730 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26732 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
26733 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26735 return NDR_ERR_SUCCESS;
26738 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
26740 TALLOC_CTX *_mem_save_handle_0;
26741 TALLOC_CTX *_mem_save_reply_result_0;
26742 if (flags & NDR_IN) {
26743 ZERO_STRUCT(r->out);
26745 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26746 NDR_PULL_ALLOC(ndr, r->in.handle);
26748 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26749 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26750 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26751 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26752 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
26753 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26754 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
26755 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26756 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26757 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26758 ZERO_STRUCTP(r->out.reply_result);
26760 if (flags & NDR_OUT) {
26761 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26762 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26764 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
26765 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
26766 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
26767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
26768 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26770 return NDR_ERR_SUCCESS;
26773 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26775 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
26776 ndr->depth++;
26777 if (flags & NDR_SET_VALUES) {
26778 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26780 if (flags & NDR_IN) {
26781 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
26782 ndr->depth++;
26783 ndr_print_ptr(ndr, "handle", r->in.handle);
26784 ndr->depth++;
26785 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26786 ndr->depth--;
26787 ndr_print_uint32(ndr, "color", r->in.color);
26788 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26789 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
26790 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
26791 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
26792 ndr->depth--;
26794 if (flags & NDR_OUT) {
26795 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
26796 ndr->depth++;
26797 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
26798 ndr->depth++;
26799 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
26800 ndr->depth--;
26801 ndr_print_WERROR(ndr, "result", r->out.result);
26802 ndr->depth--;
26804 ndr->depth--;
26807 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26809 if (flags & NDR_IN) {
26810 if (r->in.handle == NULL) {
26811 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26813 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
26815 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
26816 if (r->in.options) {
26817 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26820 if (flags & NDR_OUT) {
26821 if (r->out.info == NULL) {
26822 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26824 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
26825 if (*r->out.info) {
26826 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26828 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26830 return NDR_ERR_SUCCESS;
26833 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
26835 uint32_t _ptr_options;
26836 uint32_t _ptr_info;
26837 TALLOC_CTX *_mem_save_handle_0;
26838 TALLOC_CTX *_mem_save_options_0;
26839 TALLOC_CTX *_mem_save_info_0;
26840 TALLOC_CTX *_mem_save_info_1;
26841 if (flags & NDR_IN) {
26842 ZERO_STRUCT(r->out);
26844 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26845 NDR_PULL_ALLOC(ndr, r->in.handle);
26847 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26848 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26849 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26851 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
26852 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
26853 if (_ptr_options) {
26854 NDR_PULL_ALLOC(ndr, r->in.options);
26855 } else {
26856 r->in.options = NULL;
26858 if (r->in.options) {
26859 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26860 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
26861 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
26864 NDR_PULL_ALLOC(ndr, r->out.info);
26865 ZERO_STRUCTP(r->out.info);
26867 if (flags & NDR_OUT) {
26868 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26869 NDR_PULL_ALLOC(ndr, r->out.info);
26871 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26872 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
26873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26874 if (_ptr_info) {
26875 NDR_PULL_ALLOC(ndr, *r->out.info);
26876 } else {
26877 *r->out.info = NULL;
26879 if (*r->out.info) {
26880 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
26881 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
26882 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
26885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
26886 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26888 return NDR_ERR_SUCCESS;
26891 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26893 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
26894 ndr->depth++;
26895 if (flags & NDR_SET_VALUES) {
26896 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26898 if (flags & NDR_IN) {
26899 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
26900 ndr->depth++;
26901 ndr_print_ptr(ndr, "handle", r->in.handle);
26902 ndr->depth++;
26903 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26904 ndr->depth--;
26905 ndr_print_uint32(ndr, "change_low", r->in.change_low);
26906 ndr_print_ptr(ndr, "options", r->in.options);
26907 ndr->depth++;
26908 if (r->in.options) {
26909 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
26911 ndr->depth--;
26912 ndr->depth--;
26914 if (flags & NDR_OUT) {
26915 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
26916 ndr->depth++;
26917 ndr_print_ptr(ndr, "info", r->out.info);
26918 ndr->depth++;
26919 ndr_print_ptr(ndr, "info", *r->out.info);
26920 ndr->depth++;
26921 if (*r->out.info) {
26922 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
26924 ndr->depth--;
26925 ndr->depth--;
26926 ndr_print_WERROR(ndr, "result", r->out.result);
26927 ndr->depth--;
26929 ndr->depth--;
26932 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
26934 if (flags & NDR_IN) {
26936 if (flags & NDR_OUT) {
26937 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26939 return NDR_ERR_SUCCESS;
26942 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
26944 if (flags & NDR_IN) {
26946 if (flags & NDR_OUT) {
26947 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26949 return NDR_ERR_SUCCESS;
26952 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
26954 ndr_print_struct(ndr, name, "spoolss_44");
26955 ndr->depth++;
26956 if (flags & NDR_SET_VALUES) {
26957 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26959 if (flags & NDR_IN) {
26960 ndr_print_struct(ndr, "in", "spoolss_44");
26961 ndr->depth++;
26962 ndr->depth--;
26964 if (flags & NDR_OUT) {
26965 ndr_print_struct(ndr, "out", "spoolss_44");
26966 ndr->depth++;
26967 ndr_print_WERROR(ndr, "result", r->out.result);
26968 ndr->depth--;
26970 ndr->depth--;
26973 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
26975 if (flags & NDR_IN) {
26976 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
26977 if (r->in.printername) {
26978 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26979 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26980 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26981 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26983 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
26984 if (r->in.datatype) {
26985 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26986 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26987 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26988 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26990 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26991 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
26992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26993 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
26994 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
26996 if (flags & NDR_OUT) {
26997 if (r->out.handle == NULL) {
26998 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27000 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27001 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27003 return NDR_ERR_SUCCESS;
27006 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
27008 uint32_t _ptr_printername;
27009 uint32_t _ptr_datatype;
27010 TALLOC_CTX *_mem_save_printername_0;
27011 TALLOC_CTX *_mem_save_datatype_0;
27012 TALLOC_CTX *_mem_save_handle_0;
27013 if (flags & NDR_IN) {
27014 ZERO_STRUCT(r->out);
27016 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
27017 if (_ptr_printername) {
27018 NDR_PULL_ALLOC(ndr, r->in.printername);
27019 } else {
27020 r->in.printername = NULL;
27022 if (r->in.printername) {
27023 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27024 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
27025 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
27026 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
27027 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
27028 return 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));
27030 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
27031 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
27032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
27034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
27035 if (_ptr_datatype) {
27036 NDR_PULL_ALLOC(ndr, r->in.datatype);
27037 } else {
27038 r->in.datatype = NULL;
27040 if (r->in.datatype) {
27041 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
27042 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
27043 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
27044 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
27045 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
27046 return 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));
27048 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
27049 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
27050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
27052 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27053 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
27054 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27055 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27056 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27057 NDR_PULL_ALLOC(ndr, r->out.handle);
27058 ZERO_STRUCTP(r->out.handle);
27060 if (flags & NDR_OUT) {
27061 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27062 NDR_PULL_ALLOC(ndr, r->out.handle);
27064 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27065 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27066 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27068 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27070 return NDR_ERR_SUCCESS;
27073 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
27075 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
27076 ndr->depth++;
27077 if (flags & NDR_SET_VALUES) {
27078 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27080 if (flags & NDR_IN) {
27081 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
27082 ndr->depth++;
27083 ndr_print_ptr(ndr, "printername", r->in.printername);
27084 ndr->depth++;
27085 if (r->in.printername) {
27086 ndr_print_string(ndr, "printername", r->in.printername);
27088 ndr->depth--;
27089 ndr_print_ptr(ndr, "datatype", r->in.datatype);
27090 ndr->depth++;
27091 if (r->in.datatype) {
27092 ndr_print_string(ndr, "datatype", r->in.datatype);
27094 ndr->depth--;
27095 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
27096 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
27097 ndr_print_uint32(ndr, "level", r->in.level);
27098 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
27099 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
27100 ndr->depth--;
27102 if (flags & NDR_OUT) {
27103 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
27104 ndr->depth++;
27105 ndr_print_ptr(ndr, "handle", r->out.handle);
27106 ndr->depth++;
27107 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27108 ndr->depth--;
27109 ndr_print_WERROR(ndr, "result", r->out.result);
27110 ndr->depth--;
27112 ndr->depth--;
27115 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
27117 if (flags & NDR_IN) {
27118 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27119 if (r->in.server) {
27120 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27121 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27122 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27123 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27125 if (r->in.info_ctr == NULL) {
27126 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27128 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27129 if (r->in.devmode_ctr == NULL) {
27130 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27132 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27133 if (r->in.secdesc_ctr == NULL) {
27134 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27136 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27137 if (r->in.userlevel_ctr == NULL) {
27138 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27140 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27142 if (flags & NDR_OUT) {
27143 if (r->out.handle == NULL) {
27144 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27146 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27147 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27149 return NDR_ERR_SUCCESS;
27152 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
27154 uint32_t _ptr_server;
27155 TALLOC_CTX *_mem_save_server_0;
27156 TALLOC_CTX *_mem_save_info_ctr_0;
27157 TALLOC_CTX *_mem_save_devmode_ctr_0;
27158 TALLOC_CTX *_mem_save_secdesc_ctr_0;
27159 TALLOC_CTX *_mem_save_userlevel_ctr_0;
27160 TALLOC_CTX *_mem_save_handle_0;
27161 if (flags & NDR_IN) {
27162 ZERO_STRUCT(r->out);
27164 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27165 if (_ptr_server) {
27166 NDR_PULL_ALLOC(ndr, r->in.server);
27167 } else {
27168 r->in.server = NULL;
27170 if (r->in.server) {
27171 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27172 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27173 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27174 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27175 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
27176 return 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));
27178 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
27179 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
27180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27182 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27183 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27185 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27186 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27187 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27189 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27190 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
27192 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27193 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
27194 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27196 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27197 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
27199 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27200 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
27201 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27202 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27203 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27204 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
27206 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27207 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
27208 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27209 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27210 NDR_PULL_ALLOC(ndr, r->out.handle);
27211 ZERO_STRUCTP(r->out.handle);
27213 if (flags & NDR_OUT) {
27214 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27215 NDR_PULL_ALLOC(ndr, r->out.handle);
27217 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27218 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27219 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27221 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27223 return NDR_ERR_SUCCESS;
27226 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
27228 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
27229 ndr->depth++;
27230 if (flags & NDR_SET_VALUES) {
27231 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27233 if (flags & NDR_IN) {
27234 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
27235 ndr->depth++;
27236 ndr_print_ptr(ndr, "server", r->in.server);
27237 ndr->depth++;
27238 if (r->in.server) {
27239 ndr_print_string(ndr, "server", r->in.server);
27241 ndr->depth--;
27242 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27243 ndr->depth++;
27244 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27245 ndr->depth--;
27246 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
27247 ndr->depth++;
27248 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
27249 ndr->depth--;
27250 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27251 ndr->depth++;
27252 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27253 ndr->depth--;
27254 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27255 ndr->depth++;
27256 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27257 ndr->depth--;
27258 ndr->depth--;
27260 if (flags & NDR_OUT) {
27261 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
27262 ndr->depth++;
27263 ndr_print_ptr(ndr, "handle", r->out.handle);
27264 ndr->depth++;
27265 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27266 ndr->depth--;
27267 ndr_print_WERROR(ndr, "result", r->out.result);
27268 ndr->depth--;
27270 ndr->depth--;
27273 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
27275 if (flags & NDR_IN) {
27277 if (flags & NDR_OUT) {
27278 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27280 return NDR_ERR_SUCCESS;
27283 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
27285 if (flags & NDR_IN) {
27287 if (flags & NDR_OUT) {
27288 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27290 return NDR_ERR_SUCCESS;
27293 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
27295 ndr_print_struct(ndr, name, "spoolss_47");
27296 ndr->depth++;
27297 if (flags & NDR_SET_VALUES) {
27298 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27300 if (flags & NDR_IN) {
27301 ndr_print_struct(ndr, "in", "spoolss_47");
27302 ndr->depth++;
27303 ndr->depth--;
27305 if (flags & NDR_OUT) {
27306 ndr_print_struct(ndr, "out", "spoolss_47");
27307 ndr->depth++;
27308 ndr_print_WERROR(ndr, "result", r->out.result);
27309 ndr->depth--;
27311 ndr->depth--;
27314 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
27316 if (flags & NDR_IN) {
27317 if (r->in.handle == NULL) {
27318 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27320 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
27322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
27323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
27325 if (flags & NDR_OUT) {
27326 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
27327 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
27328 if (r->out.value_needed == NULL) {
27329 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
27332 if (r->out.type == NULL) {
27333 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27335 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27337 uint32_t _flags_save_uint8 = ndr->flags;
27338 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27339 if (r->out.data == NULL) {
27340 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27342 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
27343 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
27344 ndr->flags = _flags_save_uint8;
27346 if (r->out.data_needed == NULL) {
27347 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
27350 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27352 return NDR_ERR_SUCCESS;
27355 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
27357 TALLOC_CTX *_mem_save_handle_0;
27358 TALLOC_CTX *_mem_save_value_needed_0;
27359 TALLOC_CTX *_mem_save_type_0;
27360 TALLOC_CTX *_mem_save_data_needed_0;
27361 if (flags & NDR_IN) {
27362 ZERO_STRUCT(r->out);
27364 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27365 NDR_PULL_ALLOC(ndr, r->in.handle);
27367 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27368 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27369 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27371 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
27372 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
27373 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
27374 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27375 ZERO_STRUCTP(r->out.value_needed);
27376 NDR_PULL_ALLOC(ndr, r->out.type);
27377 ZERO_STRUCTP(r->out.type);
27378 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
27379 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
27380 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27381 ZERO_STRUCTP(r->out.data_needed);
27383 if (flags & NDR_OUT) {
27384 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
27385 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));
27386 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27387 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27389 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27390 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
27391 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
27392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
27393 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27394 NDR_PULL_ALLOC(ndr, r->out.type);
27396 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27397 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27398 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27401 uint32_t _flags_save_uint8 = ndr->flags;
27402 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27403 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
27404 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27405 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
27407 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
27408 ndr->flags = _flags_save_uint8;
27410 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27411 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27413 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27414 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
27415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
27416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
27417 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27418 if (r->out.value_name) {
27419 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
27421 if (r->out.data) {
27422 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
27425 return NDR_ERR_SUCCESS;
27428 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
27430 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
27431 ndr->depth++;
27432 if (flags & NDR_SET_VALUES) {
27433 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27435 if (flags & NDR_IN) {
27436 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
27437 ndr->depth++;
27438 ndr_print_ptr(ndr, "handle", r->in.handle);
27439 ndr->depth++;
27440 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27441 ndr->depth--;
27442 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
27443 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
27444 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
27445 ndr->depth--;
27447 if (flags & NDR_OUT) {
27448 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
27449 ndr->depth++;
27450 ndr_print_string(ndr, "value_name", r->out.value_name);
27451 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
27452 ndr->depth++;
27453 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
27454 ndr->depth--;
27455 ndr_print_ptr(ndr, "type", r->out.type);
27456 ndr->depth++;
27457 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27458 ndr->depth--;
27459 ndr_print_ptr(ndr, "data", r->out.data);
27460 ndr->depth++;
27461 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
27462 ndr->depth--;
27463 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
27464 ndr->depth++;
27465 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
27466 ndr->depth--;
27467 ndr_print_WERROR(ndr, "result", r->out.result);
27468 ndr->depth--;
27470 ndr->depth--;
27473 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
27475 if (flags & NDR_IN) {
27476 if (r->in.handle == NULL) {
27477 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27479 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27480 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27481 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27482 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27483 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));
27485 if (flags & NDR_OUT) {
27486 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27488 return NDR_ERR_SUCCESS;
27491 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
27493 TALLOC_CTX *_mem_save_handle_0;
27494 if (flags & NDR_IN) {
27495 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27496 NDR_PULL_ALLOC(ndr, r->in.handle);
27498 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27499 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27500 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27502 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27503 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27504 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27505 return 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));
27507 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27508 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));
27510 if (flags & NDR_OUT) {
27511 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27513 return NDR_ERR_SUCCESS;
27516 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
27518 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
27519 ndr->depth++;
27520 if (flags & NDR_SET_VALUES) {
27521 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27523 if (flags & NDR_IN) {
27524 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
27525 ndr->depth++;
27526 ndr_print_ptr(ndr, "handle", r->in.handle);
27527 ndr->depth++;
27528 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27529 ndr->depth--;
27530 ndr_print_string(ndr, "value_name", r->in.value_name);
27531 ndr->depth--;
27533 if (flags & NDR_OUT) {
27534 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
27535 ndr->depth++;
27536 ndr_print_WERROR(ndr, "result", r->out.result);
27537 ndr->depth--;
27539 ndr->depth--;
27542 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
27544 if (flags & NDR_IN) {
27546 if (flags & NDR_OUT) {
27547 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27549 return NDR_ERR_SUCCESS;
27552 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
27554 if (flags & NDR_IN) {
27556 if (flags & NDR_OUT) {
27557 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27559 return NDR_ERR_SUCCESS;
27562 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
27564 ndr_print_struct(ndr, name, "spoolss_4a");
27565 ndr->depth++;
27566 if (flags & NDR_SET_VALUES) {
27567 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27569 if (flags & NDR_IN) {
27570 ndr_print_struct(ndr, "in", "spoolss_4a");
27571 ndr->depth++;
27572 ndr->depth--;
27574 if (flags & NDR_OUT) {
27575 ndr_print_struct(ndr, "out", "spoolss_4a");
27576 ndr->depth++;
27577 ndr_print_WERROR(ndr, "result", r->out.result);
27578 ndr->depth--;
27580 ndr->depth--;
27583 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
27585 if (flags & NDR_IN) {
27587 if (flags & NDR_OUT) {
27588 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27590 return NDR_ERR_SUCCESS;
27593 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
27595 if (flags & NDR_IN) {
27597 if (flags & NDR_OUT) {
27598 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27600 return NDR_ERR_SUCCESS;
27603 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
27605 ndr_print_struct(ndr, name, "spoolss_4b");
27606 ndr->depth++;
27607 if (flags & NDR_SET_VALUES) {
27608 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27610 if (flags & NDR_IN) {
27611 ndr_print_struct(ndr, "in", "spoolss_4b");
27612 ndr->depth++;
27613 ndr->depth--;
27615 if (flags & NDR_OUT) {
27616 ndr_print_struct(ndr, "out", "spoolss_4b");
27617 ndr->depth++;
27618 ndr_print_WERROR(ndr, "result", r->out.result);
27619 ndr->depth--;
27621 ndr->depth--;
27624 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
27626 if (flags & NDR_IN) {
27628 if (flags & NDR_OUT) {
27629 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27631 return NDR_ERR_SUCCESS;
27634 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
27636 if (flags & NDR_IN) {
27638 if (flags & NDR_OUT) {
27639 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27641 return NDR_ERR_SUCCESS;
27644 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
27646 ndr_print_struct(ndr, name, "spoolss_4c");
27647 ndr->depth++;
27648 if (flags & NDR_SET_VALUES) {
27649 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27651 if (flags & NDR_IN) {
27652 ndr_print_struct(ndr, "in", "spoolss_4c");
27653 ndr->depth++;
27654 ndr->depth--;
27656 if (flags & NDR_OUT) {
27657 ndr_print_struct(ndr, "out", "spoolss_4c");
27658 ndr->depth++;
27659 ndr_print_WERROR(ndr, "result", r->out.result);
27660 ndr->depth--;
27662 ndr->depth--;
27665 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterDataEx *r)
27667 if (flags & NDR_IN) {
27668 if (r->in.handle == NULL) {
27669 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27671 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27672 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27673 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27674 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27675 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));
27676 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27677 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27678 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27679 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));
27680 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27681 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
27682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
27684 if (flags & NDR_OUT) {
27685 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27687 return NDR_ERR_SUCCESS;
27690 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterDataEx *r)
27692 if (flags & NDR_IN) {
27693 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27695 if (flags & NDR_OUT) {
27696 if (r->out.data == NULL) {
27697 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27699 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
27700 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
27702 return NDR_ERR_SUCCESS;
27705 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
27707 TALLOC_CTX *_mem_save_handle_0;
27708 if (flags & NDR_IN) {
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_array_size(ndr, &r->in.value_name));
27724 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27725 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27726 return 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));
27728 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27729 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));
27730 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27732 struct ndr_pull *_ndr_data;
27733 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
27734 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
27735 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
27736 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
27738 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
27740 if (flags & NDR_OUT) {
27741 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27743 return NDR_ERR_SUCCESS;
27746 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
27748 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
27749 ndr->depth++;
27750 if (flags & NDR_SET_VALUES) {
27751 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27753 if (flags & NDR_IN) {
27754 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
27755 ndr->depth++;
27756 ndr_print_ptr(ndr, "handle", r->in.handle);
27757 ndr->depth++;
27758 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27759 ndr->depth--;
27760 ndr_print_string(ndr, "key_name", r->in.key_name);
27761 ndr_print_string(ndr, "value_name", r->in.value_name);
27762 ndr_print_winreg_Type(ndr, "type", r->in.type);
27763 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
27764 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
27765 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);
27766 ndr->depth--;
27768 if (flags & NDR_OUT) {
27769 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
27770 ndr->depth++;
27771 ndr_print_WERROR(ndr, "result", r->out.result);
27772 ndr->depth--;
27774 ndr->depth--;
27777 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterDataEx *r)
27779 if (flags & NDR_IN) {
27780 if (r->in.handle == NULL) {
27781 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27783 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27784 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27785 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27786 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27787 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));
27788 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27789 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27790 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27791 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));
27792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27794 if (flags & NDR_OUT) {
27795 if (r->out.type == NULL) {
27796 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27798 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27799 if (r->out.data == NULL) {
27800 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27802 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
27803 if (r->out.needed == NULL) {
27804 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27807 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27809 return NDR_ERR_SUCCESS;
27812 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterDataEx *r)
27814 TALLOC_CTX *_mem_save_handle_0;
27815 TALLOC_CTX *_mem_save_type_0;
27816 TALLOC_CTX *_mem_save_data_0;
27817 TALLOC_CTX *_mem_save_needed_0;
27818 if (flags & NDR_IN) {
27819 ZERO_STRUCT(r->out);
27821 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27822 NDR_PULL_ALLOC(ndr, r->in.handle);
27824 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27825 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27826 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27828 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27829 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27830 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27831 return 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));
27833 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27834 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));
27835 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27836 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27837 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27838 return 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));
27840 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27841 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));
27842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27843 NDR_PULL_ALLOC(ndr, r->out.type);
27844 ZERO_STRUCTP(r->out.type);
27845 NDR_PULL_ALLOC(ndr, r->out.data);
27846 ZERO_STRUCTP(r->out.data);
27847 NDR_PULL_ALLOC(ndr, r->out.needed);
27848 ZERO_STRUCTP(r->out.needed);
27850 if (flags & NDR_OUT) {
27851 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27852 NDR_PULL_ALLOC(ndr, r->out.type);
27854 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27855 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27856 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27858 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27859 NDR_PULL_ALLOC(ndr, r->out.data);
27861 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
27862 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
27863 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
27864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
27865 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27866 NDR_PULL_ALLOC(ndr, r->out.needed);
27868 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27869 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27870 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27871 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27872 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27874 return NDR_ERR_SUCCESS;
27877 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterDataEx *r)
27879 if (flags & NDR_IN) {
27880 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27882 if (flags & NDR_OUT) {
27883 if (r->out.data == NULL) {
27884 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27886 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
27887 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
27889 return NDR_ERR_SUCCESS;
27892 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterDataEx *r)
27894 TALLOC_CTX *_mem_save_data_0;
27895 if (flags & NDR_IN) {
27896 ZERO_STRUCT(r->out);
27898 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27899 NDR_PULL_ALLOC(ndr, r->out.data);
27900 ZERO_STRUCTP(r->out.data);
27902 if (flags & NDR_OUT) {
27903 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27904 NDR_PULL_ALLOC(ndr, r->out.data);
27906 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
27907 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
27908 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
27909 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
27910 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
27912 return NDR_ERR_SUCCESS;
27915 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
27917 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
27918 ndr->depth++;
27919 if (flags & NDR_SET_VALUES) {
27920 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27922 if (flags & NDR_IN) {
27923 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
27924 ndr->depth++;
27925 ndr_print_ptr(ndr, "handle", r->in.handle);
27926 ndr->depth++;
27927 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27928 ndr->depth--;
27929 ndr_print_string(ndr, "key_name", r->in.key_name);
27930 ndr_print_string(ndr, "value_name", r->in.value_name);
27931 ndr_print_uint32(ndr, "offered", r->in.offered);
27932 ndr->depth--;
27934 if (flags & NDR_OUT) {
27935 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
27936 ndr->depth++;
27937 ndr_print_ptr(ndr, "type", r->out.type);
27938 ndr->depth++;
27939 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27940 ndr->depth--;
27941 ndr_print_ptr(ndr, "data", r->out.data);
27942 ndr->depth++;
27943 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
27944 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
27945 ndr->depth--;
27946 ndr_print_ptr(ndr, "needed", r->out.needed);
27947 ndr->depth++;
27948 ndr_print_uint32(ndr, "needed", *r->out.needed);
27949 ndr->depth--;
27950 ndr_print_WERROR(ndr, "result", r->out.result);
27951 ndr->depth--;
27953 ndr->depth--;
27956 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
27958 if (flags & NDR_IN) {
27959 if (r->in.handle == NULL) {
27960 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27962 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27963 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27964 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27965 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27966 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));
27967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27969 if (flags & NDR_OUT) {
27970 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
27971 if (r->out.needed == NULL) {
27972 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27975 if (r->out.count == NULL) {
27976 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
27979 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27981 return NDR_ERR_SUCCESS;
27984 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
27986 TALLOC_CTX *_mem_save_handle_0;
27987 TALLOC_CTX *_mem_save_needed_0;
27988 TALLOC_CTX *_mem_save_count_0;
27989 if (flags & NDR_IN) {
27990 ZERO_STRUCT(r->out);
27992 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27993 NDR_PULL_ALLOC(ndr, r->in.handle);
27995 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27996 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27997 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27998 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27999 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28000 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28001 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28002 return 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));
28004 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28005 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));
28006 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28007 NDR_PULL_ALLOC(ndr, r->out.needed);
28008 ZERO_STRUCTP(r->out.needed);
28009 NDR_PULL_ALLOC(ndr, r->out.count);
28010 ZERO_STRUCTP(r->out.count);
28012 if (flags & NDR_OUT) {
28013 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
28014 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28015 NDR_PULL_ALLOC(ndr, r->out.needed);
28017 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28018 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28021 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28022 NDR_PULL_ALLOC(ndr, r->out.count);
28024 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
28025 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
28026 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
28027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
28028 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28030 return NDR_ERR_SUCCESS;
28033 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
28035 uint32_t cntr_info_0;
28036 if (flags & NDR_IN) {
28037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
28039 if (flags & NDR_OUT) {
28040 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28041 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28043 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28044 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28047 return NDR_ERR_SUCCESS;
28050 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
28052 uint32_t cntr_info_0;
28053 TALLOC_CTX *_mem_save_info_0;
28054 if (flags & NDR_IN) {
28055 ZERO_STRUCT(r->out);
28057 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
28059 if (flags & NDR_OUT) {
28060 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
28061 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
28062 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
28063 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28064 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28066 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28067 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28069 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
28071 return NDR_ERR_SUCCESS;
28074 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
28076 uint32_t cntr_info_2;
28077 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
28078 ndr->depth++;
28079 if (flags & NDR_SET_VALUES) {
28080 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28082 if (flags & NDR_IN) {
28083 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
28084 ndr->depth++;
28085 ndr_print_ptr(ndr, "handle", r->in.handle);
28086 ndr->depth++;
28087 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28088 ndr->depth--;
28089 ndr_print_string(ndr, "key_name", r->in.key_name);
28090 ndr_print_uint32(ndr, "offered", r->in.offered);
28091 ndr->depth--;
28093 if (flags & NDR_OUT) {
28094 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
28095 ndr->depth++;
28096 ndr_print_ptr(ndr, "count", r->out.count);
28097 ndr->depth++;
28098 ndr_print_uint32(ndr, "count", *r->out.count);
28099 ndr->depth--;
28100 ndr_print_ptr(ndr, "info", r->out.info);
28101 ndr->depth++;
28102 ndr_print_ptr(ndr, "info", *r->out.info);
28103 ndr->depth++;
28104 if (*r->out.info) {
28105 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
28106 ndr->depth++;
28107 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
28108 char *idx_2=NULL;
28109 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
28110 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
28111 free(idx_2);
28114 ndr->depth--;
28116 ndr->depth--;
28117 ndr->depth--;
28118 ndr_print_ptr(ndr, "needed", r->out.needed);
28119 ndr->depth++;
28120 ndr_print_uint32(ndr, "needed", *r->out.needed);
28121 ndr->depth--;
28122 ndr_print_WERROR(ndr, "result", r->out.result);
28123 ndr->depth--;
28125 ndr->depth--;
28128 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
28130 if (flags & NDR_IN) {
28131 if (r->in.handle == NULL) {
28132 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28134 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28135 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28136 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28138 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));
28139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28141 if (flags & NDR_OUT) {
28142 if (r->out.key_buffer == NULL) {
28143 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28145 NDR_CHECK(ndr_push_spoolss_StringArray2(ndr, NDR_SCALARS, r->out.key_buffer));
28146 if (r->out.needed == NULL) {
28147 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28150 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28152 return NDR_ERR_SUCCESS;
28155 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
28157 TALLOC_CTX *_mem_save_handle_0;
28158 TALLOC_CTX *_mem_save_key_buffer_0;
28159 TALLOC_CTX *_mem_save_needed_0;
28160 if (flags & NDR_IN) {
28161 ZERO_STRUCT(r->out);
28163 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28164 NDR_PULL_ALLOC(ndr, r->in.handle);
28166 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28167 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28168 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28170 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28171 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28172 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28173 return 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));
28175 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28176 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));
28177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28178 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
28179 ZERO_STRUCTP(r->out.key_buffer);
28180 NDR_PULL_ALLOC(ndr, r->out.needed);
28181 ZERO_STRUCTP(r->out.needed);
28183 if (flags & NDR_OUT) {
28184 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28185 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
28187 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
28188 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
28189 NDR_CHECK(ndr_pull_spoolss_StringArray2(ndr, NDR_SCALARS, r->out.key_buffer));
28190 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
28191 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28192 NDR_PULL_ALLOC(ndr, r->out.needed);
28194 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28195 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28196 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28198 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28200 return NDR_ERR_SUCCESS;
28203 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
28205 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
28206 ndr->depth++;
28207 if (flags & NDR_SET_VALUES) {
28208 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28210 if (flags & NDR_IN) {
28211 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
28212 ndr->depth++;
28213 ndr_print_ptr(ndr, "handle", r->in.handle);
28214 ndr->depth++;
28215 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28216 ndr->depth--;
28217 ndr_print_string(ndr, "key_name", r->in.key_name);
28218 ndr_print_uint32(ndr, "offered", r->in.offered);
28219 ndr->depth--;
28221 if (flags & NDR_OUT) {
28222 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
28223 ndr->depth++;
28224 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
28225 ndr->depth++;
28226 ndr_print_spoolss_StringArray2(ndr, "key_buffer", r->out.key_buffer);
28227 ndr->depth--;
28228 ndr_print_ptr(ndr, "needed", r->out.needed);
28229 ndr->depth++;
28230 ndr_print_uint32(ndr, "needed", *r->out.needed);
28231 ndr->depth--;
28232 ndr_print_WERROR(ndr, "result", r->out.result);
28233 ndr->depth--;
28235 ndr->depth--;
28238 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
28240 if (flags & NDR_IN) {
28241 if (r->in.handle == NULL) {
28242 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28244 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28245 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28246 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28247 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28248 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));
28249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28250 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28251 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28252 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));
28254 if (flags & NDR_OUT) {
28255 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28257 return NDR_ERR_SUCCESS;
28260 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
28262 TALLOC_CTX *_mem_save_handle_0;
28263 if (flags & NDR_IN) {
28264 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28265 NDR_PULL_ALLOC(ndr, r->in.handle);
28267 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28268 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28269 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28271 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28272 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28273 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28274 return 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));
28276 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28277 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));
28278 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28279 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28280 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28281 return 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));
28283 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28284 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));
28286 if (flags & NDR_OUT) {
28287 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28289 return NDR_ERR_SUCCESS;
28292 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
28294 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
28295 ndr->depth++;
28296 if (flags & NDR_SET_VALUES) {
28297 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28299 if (flags & NDR_IN) {
28300 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
28301 ndr->depth++;
28302 ndr_print_ptr(ndr, "handle", r->in.handle);
28303 ndr->depth++;
28304 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28305 ndr->depth--;
28306 ndr_print_string(ndr, "key_name", r->in.key_name);
28307 ndr_print_string(ndr, "value_name", r->in.value_name);
28308 ndr->depth--;
28310 if (flags & NDR_OUT) {
28311 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
28312 ndr->depth++;
28313 ndr_print_WERROR(ndr, "result", r->out.result);
28314 ndr->depth--;
28316 ndr->depth--;
28319 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
28321 if (flags & NDR_IN) {
28322 if (r->in.handle == NULL) {
28323 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28325 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28326 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28327 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28328 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28329 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));
28331 if (flags & NDR_OUT) {
28332 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28334 return NDR_ERR_SUCCESS;
28337 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
28339 TALLOC_CTX *_mem_save_handle_0;
28340 if (flags & NDR_IN) {
28341 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28342 NDR_PULL_ALLOC(ndr, r->in.handle);
28344 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28345 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28346 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28347 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28348 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28349 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28350 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28351 return 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));
28353 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28354 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));
28356 if (flags & NDR_OUT) {
28357 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28359 return NDR_ERR_SUCCESS;
28362 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
28364 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
28365 ndr->depth++;
28366 if (flags & NDR_SET_VALUES) {
28367 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28369 if (flags & NDR_IN) {
28370 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
28371 ndr->depth++;
28372 ndr_print_ptr(ndr, "handle", r->in.handle);
28373 ndr->depth++;
28374 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28375 ndr->depth--;
28376 ndr_print_string(ndr, "key_name", r->in.key_name);
28377 ndr->depth--;
28379 if (flags & NDR_OUT) {
28380 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
28381 ndr->depth++;
28382 ndr_print_WERROR(ndr, "result", r->out.result);
28383 ndr->depth--;
28385 ndr->depth--;
28388 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
28390 if (flags & NDR_IN) {
28392 if (flags & NDR_OUT) {
28393 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28395 return NDR_ERR_SUCCESS;
28398 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
28400 if (flags & NDR_IN) {
28402 if (flags & NDR_OUT) {
28403 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28405 return NDR_ERR_SUCCESS;
28408 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
28410 ndr_print_struct(ndr, name, "spoolss_53");
28411 ndr->depth++;
28412 if (flags & NDR_SET_VALUES) {
28413 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28415 if (flags & NDR_IN) {
28416 ndr_print_struct(ndr, "in", "spoolss_53");
28417 ndr->depth++;
28418 ndr->depth--;
28420 if (flags & NDR_OUT) {
28421 ndr_print_struct(ndr, "out", "spoolss_53");
28422 ndr->depth++;
28423 ndr_print_WERROR(ndr, "result", r->out.result);
28424 ndr->depth--;
28426 ndr->depth--;
28429 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28431 if (flags & NDR_IN) {
28432 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
28433 if (r->in.server) {
28434 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28435 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28436 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28437 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28439 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28440 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28441 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28442 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28443 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28444 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28445 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28446 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28447 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
28448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
28450 if (flags & NDR_OUT) {
28451 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28453 return NDR_ERR_SUCCESS;
28456 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
28458 uint32_t _ptr_server;
28459 TALLOC_CTX *_mem_save_server_0;
28460 if (flags & NDR_IN) {
28461 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28462 if (_ptr_server) {
28463 NDR_PULL_ALLOC(ndr, r->in.server);
28464 } else {
28465 r->in.server = NULL;
28467 if (r->in.server) {
28468 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28469 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28470 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28471 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28472 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
28473 return 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));
28475 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
28476 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
28477 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28479 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
28480 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
28481 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
28482 return 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));
28484 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
28485 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
28486 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
28487 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
28488 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
28489 return 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));
28491 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
28492 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
28493 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
28494 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
28496 if (flags & NDR_OUT) {
28497 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28499 return NDR_ERR_SUCCESS;
28502 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28504 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
28505 ndr->depth++;
28506 if (flags & NDR_SET_VALUES) {
28507 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28509 if (flags & NDR_IN) {
28510 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
28511 ndr->depth++;
28512 ndr_print_ptr(ndr, "server", r->in.server);
28513 ndr->depth++;
28514 if (r->in.server) {
28515 ndr_print_string(ndr, "server", r->in.server);
28517 ndr->depth--;
28518 ndr_print_string(ndr, "architecture", r->in.architecture);
28519 ndr_print_string(ndr, "driver", r->in.driver);
28520 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
28521 ndr_print_uint32(ndr, "version", r->in.version);
28522 ndr->depth--;
28524 if (flags & NDR_OUT) {
28525 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
28526 ndr->depth++;
28527 ndr_print_WERROR(ndr, "result", r->out.result);
28528 ndr->depth--;
28530 ndr->depth--;
28533 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
28535 if (flags & NDR_IN) {
28537 if (flags & NDR_OUT) {
28538 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28540 return NDR_ERR_SUCCESS;
28543 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
28545 if (flags & NDR_IN) {
28547 if (flags & NDR_OUT) {
28548 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28550 return NDR_ERR_SUCCESS;
28553 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
28555 ndr_print_struct(ndr, name, "spoolss_55");
28556 ndr->depth++;
28557 if (flags & NDR_SET_VALUES) {
28558 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28560 if (flags & NDR_IN) {
28561 ndr_print_struct(ndr, "in", "spoolss_55");
28562 ndr->depth++;
28563 ndr->depth--;
28565 if (flags & NDR_OUT) {
28566 ndr_print_struct(ndr, "out", "spoolss_55");
28567 ndr->depth++;
28568 ndr_print_WERROR(ndr, "result", r->out.result);
28569 ndr->depth--;
28571 ndr->depth--;
28574 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
28576 if (flags & NDR_IN) {
28578 if (flags & NDR_OUT) {
28579 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28581 return NDR_ERR_SUCCESS;
28584 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
28586 if (flags & NDR_IN) {
28588 if (flags & NDR_OUT) {
28589 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28591 return NDR_ERR_SUCCESS;
28594 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
28596 ndr_print_struct(ndr, name, "spoolss_56");
28597 ndr->depth++;
28598 if (flags & NDR_SET_VALUES) {
28599 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28601 if (flags & NDR_IN) {
28602 ndr_print_struct(ndr, "in", "spoolss_56");
28603 ndr->depth++;
28604 ndr->depth--;
28606 if (flags & NDR_OUT) {
28607 ndr_print_struct(ndr, "out", "spoolss_56");
28608 ndr->depth++;
28609 ndr_print_WERROR(ndr, "result", r->out.result);
28610 ndr->depth--;
28612 ndr->depth--;
28615 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
28617 if (flags & NDR_IN) {
28619 if (flags & NDR_OUT) {
28620 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28622 return NDR_ERR_SUCCESS;
28625 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
28627 if (flags & NDR_IN) {
28629 if (flags & NDR_OUT) {
28630 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28632 return NDR_ERR_SUCCESS;
28635 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
28637 ndr_print_struct(ndr, name, "spoolss_57");
28638 ndr->depth++;
28639 if (flags & NDR_SET_VALUES) {
28640 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28642 if (flags & NDR_IN) {
28643 ndr_print_struct(ndr, "in", "spoolss_57");
28644 ndr->depth++;
28645 ndr->depth--;
28647 if (flags & NDR_OUT) {
28648 ndr_print_struct(ndr, "out", "spoolss_57");
28649 ndr->depth++;
28650 ndr_print_WERROR(ndr, "result", r->out.result);
28651 ndr->depth--;
28653 ndr->depth--;
28656 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
28658 if (flags & NDR_IN) {
28659 if (r->in.handle == NULL) {
28660 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28662 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28663 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28664 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28665 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28666 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));
28667 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
28668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
28669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
28670 if (r->in.status_code == NULL) {
28671 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
28675 if (flags & NDR_OUT) {
28676 if (r->out.out_data == NULL) {
28677 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28679 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
28680 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
28681 if (r->out.needed == NULL) {
28682 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28685 if (r->out.status_code == NULL) {
28686 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28688 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
28689 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28691 return NDR_ERR_SUCCESS;
28694 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
28696 TALLOC_CTX *_mem_save_handle_0;
28697 TALLOC_CTX *_mem_save_needed_0;
28698 TALLOC_CTX *_mem_save_status_code_0;
28699 if (flags & NDR_IN) {
28700 ZERO_STRUCT(r->out);
28702 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28703 NDR_PULL_ALLOC(ndr, r->in.handle);
28705 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28706 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28707 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28709 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
28710 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
28711 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
28712 return 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));
28714 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
28715 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));
28716 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
28717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
28718 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
28719 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28720 NDR_PULL_ALLOC(ndr, r->in.status_code);
28722 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28723 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
28724 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
28725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28726 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
28727 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
28728 NDR_PULL_ALLOC(ndr, r->out.needed);
28729 ZERO_STRUCTP(r->out.needed);
28730 NDR_PULL_ALLOC(ndr, r->out.status_code);
28731 *r->out.status_code = *r->in.status_code;
28733 if (flags & NDR_OUT) {
28734 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
28735 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28736 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
28738 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
28739 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28740 NDR_PULL_ALLOC(ndr, r->out.needed);
28742 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28743 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28744 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28745 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28746 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28747 NDR_PULL_ALLOC(ndr, r->out.status_code);
28749 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28750 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
28751 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
28752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28753 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28754 if (r->out.out_data) {
28755 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
28758 return NDR_ERR_SUCCESS;
28761 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
28763 ndr_print_struct(ndr, name, "spoolss_XcvData");
28764 ndr->depth++;
28765 if (flags & NDR_SET_VALUES) {
28766 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28768 if (flags & NDR_IN) {
28769 ndr_print_struct(ndr, "in", "spoolss_XcvData");
28770 ndr->depth++;
28771 ndr_print_ptr(ndr, "handle", r->in.handle);
28772 ndr->depth++;
28773 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28774 ndr->depth--;
28775 ndr_print_string(ndr, "function_name", r->in.function_name);
28776 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
28777 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
28778 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
28779 ndr_print_ptr(ndr, "status_code", r->in.status_code);
28780 ndr->depth++;
28781 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
28782 ndr->depth--;
28783 ndr->depth--;
28785 if (flags & NDR_OUT) {
28786 ndr_print_struct(ndr, "out", "spoolss_XcvData");
28787 ndr->depth++;
28788 ndr_print_ptr(ndr, "out_data", r->out.out_data);
28789 ndr->depth++;
28790 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
28791 ndr->depth--;
28792 ndr_print_ptr(ndr, "needed", r->out.needed);
28793 ndr->depth++;
28794 ndr_print_uint32(ndr, "needed", *r->out.needed);
28795 ndr->depth--;
28796 ndr_print_ptr(ndr, "status_code", r->out.status_code);
28797 ndr->depth++;
28798 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
28799 ndr->depth--;
28800 ndr_print_WERROR(ndr, "result", r->out.result);
28801 ndr->depth--;
28803 ndr->depth--;
28806 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
28808 if (flags & NDR_IN) {
28809 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
28810 if (r->in.servername) {
28811 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28812 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28813 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28814 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28816 if (r->in.info_ctr == NULL) {
28817 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28819 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28820 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
28822 if (flags & NDR_OUT) {
28823 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28825 return NDR_ERR_SUCCESS;
28828 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
28830 uint32_t _ptr_servername;
28831 TALLOC_CTX *_mem_save_servername_0;
28832 TALLOC_CTX *_mem_save_info_ctr_0;
28833 if (flags & NDR_IN) {
28834 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
28835 if (_ptr_servername) {
28836 NDR_PULL_ALLOC(ndr, r->in.servername);
28837 } else {
28838 r->in.servername = NULL;
28840 if (r->in.servername) {
28841 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
28842 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
28843 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
28844 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
28845 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
28846 return 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));
28848 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
28849 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
28850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
28852 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28853 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28855 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28856 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
28857 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28859 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
28861 if (flags & NDR_OUT) {
28862 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28864 return NDR_ERR_SUCCESS;
28867 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
28869 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
28870 ndr->depth++;
28871 if (flags & NDR_SET_VALUES) {
28872 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28874 if (flags & NDR_IN) {
28875 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
28876 ndr->depth++;
28877 ndr_print_ptr(ndr, "servername", r->in.servername);
28878 ndr->depth++;
28879 if (r->in.servername) {
28880 ndr_print_string(ndr, "servername", r->in.servername);
28882 ndr->depth--;
28883 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
28884 ndr->depth++;
28885 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
28886 ndr->depth--;
28887 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
28888 ndr->depth--;
28890 if (flags & NDR_OUT) {
28891 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
28892 ndr->depth++;
28893 ndr_print_WERROR(ndr, "result", r->out.result);
28894 ndr->depth--;
28896 ndr->depth--;
28899 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
28901 if (flags & NDR_IN) {
28903 if (flags & NDR_OUT) {
28904 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28906 return NDR_ERR_SUCCESS;
28909 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
28911 if (flags & NDR_IN) {
28913 if (flags & NDR_OUT) {
28914 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28916 return NDR_ERR_SUCCESS;
28919 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
28921 ndr_print_struct(ndr, name, "spoolss_5a");
28922 ndr->depth++;
28923 if (flags & NDR_SET_VALUES) {
28924 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28926 if (flags & NDR_IN) {
28927 ndr_print_struct(ndr, "in", "spoolss_5a");
28928 ndr->depth++;
28929 ndr->depth--;
28931 if (flags & NDR_OUT) {
28932 ndr_print_struct(ndr, "out", "spoolss_5a");
28933 ndr->depth++;
28934 ndr_print_WERROR(ndr, "result", r->out.result);
28935 ndr->depth--;
28937 ndr->depth--;
28940 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
28942 if (flags & NDR_IN) {
28944 if (flags & NDR_OUT) {
28945 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28947 return NDR_ERR_SUCCESS;
28950 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
28952 if (flags & NDR_IN) {
28954 if (flags & NDR_OUT) {
28955 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28957 return NDR_ERR_SUCCESS;
28960 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
28962 ndr_print_struct(ndr, name, "spoolss_5b");
28963 ndr->depth++;
28964 if (flags & NDR_SET_VALUES) {
28965 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28967 if (flags & NDR_IN) {
28968 ndr_print_struct(ndr, "in", "spoolss_5b");
28969 ndr->depth++;
28970 ndr->depth--;
28972 if (flags & NDR_OUT) {
28973 ndr_print_struct(ndr, "out", "spoolss_5b");
28974 ndr->depth++;
28975 ndr_print_WERROR(ndr, "result", r->out.result);
28976 ndr->depth--;
28978 ndr->depth--;
28981 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
28983 if (flags & NDR_IN) {
28985 if (flags & NDR_OUT) {
28986 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28988 return NDR_ERR_SUCCESS;
28991 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
28993 if (flags & NDR_IN) {
28995 if (flags & NDR_OUT) {
28996 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28998 return NDR_ERR_SUCCESS;
29001 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
29003 ndr_print_struct(ndr, name, "spoolss_5c");
29004 ndr->depth++;
29005 if (flags & NDR_SET_VALUES) {
29006 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29008 if (flags & NDR_IN) {
29009 ndr_print_struct(ndr, "in", "spoolss_5c");
29010 ndr->depth++;
29011 ndr->depth--;
29013 if (flags & NDR_OUT) {
29014 ndr_print_struct(ndr, "out", "spoolss_5c");
29015 ndr->depth++;
29016 ndr_print_WERROR(ndr, "result", r->out.result);
29017 ndr->depth--;
29019 ndr->depth--;
29022 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
29024 if (flags & NDR_IN) {
29026 if (flags & NDR_OUT) {
29027 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29029 return NDR_ERR_SUCCESS;
29032 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
29034 if (flags & NDR_IN) {
29036 if (flags & NDR_OUT) {
29037 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29039 return NDR_ERR_SUCCESS;
29042 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
29044 ndr_print_struct(ndr, name, "spoolss_5d");
29045 ndr->depth++;
29046 if (flags & NDR_SET_VALUES) {
29047 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29049 if (flags & NDR_IN) {
29050 ndr_print_struct(ndr, "in", "spoolss_5d");
29051 ndr->depth++;
29052 ndr->depth--;
29054 if (flags & NDR_OUT) {
29055 ndr_print_struct(ndr, "out", "spoolss_5d");
29056 ndr->depth++;
29057 ndr_print_WERROR(ndr, "result", r->out.result);
29058 ndr->depth--;
29060 ndr->depth--;
29063 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
29065 if (flags & NDR_IN) {
29067 if (flags & NDR_OUT) {
29068 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29070 return NDR_ERR_SUCCESS;
29073 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
29075 if (flags & NDR_IN) {
29077 if (flags & NDR_OUT) {
29078 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29080 return NDR_ERR_SUCCESS;
29083 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
29085 ndr_print_struct(ndr, name, "spoolss_5e");
29086 ndr->depth++;
29087 if (flags & NDR_SET_VALUES) {
29088 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29090 if (flags & NDR_IN) {
29091 ndr_print_struct(ndr, "in", "spoolss_5e");
29092 ndr->depth++;
29093 ndr->depth--;
29095 if (flags & NDR_OUT) {
29096 ndr_print_struct(ndr, "out", "spoolss_5e");
29097 ndr->depth++;
29098 ndr_print_WERROR(ndr, "result", r->out.result);
29099 ndr->depth--;
29101 ndr->depth--;
29104 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
29106 if (flags & NDR_IN) {
29108 if (flags & NDR_OUT) {
29109 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29111 return NDR_ERR_SUCCESS;
29114 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
29116 if (flags & NDR_IN) {
29118 if (flags & NDR_OUT) {
29119 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29121 return NDR_ERR_SUCCESS;
29124 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
29126 ndr_print_struct(ndr, name, "spoolss_5f");
29127 ndr->depth++;
29128 if (flags & NDR_SET_VALUES) {
29129 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29131 if (flags & NDR_IN) {
29132 ndr_print_struct(ndr, "in", "spoolss_5f");
29133 ndr->depth++;
29134 ndr->depth--;
29136 if (flags & NDR_OUT) {
29137 ndr_print_struct(ndr, "out", "spoolss_5f");
29138 ndr->depth++;
29139 ndr_print_WERROR(ndr, "result", r->out.result);
29140 ndr->depth--;
29142 ndr->depth--;
29145 static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, int flags, const struct spoolss_60 *r)
29147 if (flags & NDR_IN) {
29149 if (flags & NDR_OUT) {
29150 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29152 return NDR_ERR_SUCCESS;
29155 static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, int flags, struct spoolss_60 *r)
29157 if (flags & NDR_IN) {
29159 if (flags & NDR_OUT) {
29160 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29162 return NDR_ERR_SUCCESS;
29165 _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_60 *r)
29167 ndr_print_struct(ndr, name, "spoolss_60");
29168 ndr->depth++;
29169 if (flags & NDR_SET_VALUES) {
29170 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29172 if (flags & NDR_IN) {
29173 ndr_print_struct(ndr, "in", "spoolss_60");
29174 ndr->depth++;
29175 ndr->depth--;
29177 if (flags & NDR_OUT) {
29178 ndr_print_struct(ndr, "out", "spoolss_60");
29179 ndr->depth++;
29180 ndr_print_WERROR(ndr, "result", r->out.result);
29181 ndr->depth--;
29183 ndr->depth--;
29186 static enum ndr_err_code ndr_push_spoolss_61(struct ndr_push *ndr, int flags, const struct spoolss_61 *r)
29188 if (flags & NDR_IN) {
29190 if (flags & NDR_OUT) {
29191 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29193 return NDR_ERR_SUCCESS;
29196 static enum ndr_err_code ndr_pull_spoolss_61(struct ndr_pull *ndr, int flags, struct spoolss_61 *r)
29198 if (flags & NDR_IN) {
29200 if (flags & NDR_OUT) {
29201 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29203 return NDR_ERR_SUCCESS;
29206 _PUBLIC_ void ndr_print_spoolss_61(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_61 *r)
29208 ndr_print_struct(ndr, name, "spoolss_61");
29209 ndr->depth++;
29210 if (flags & NDR_SET_VALUES) {
29211 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29213 if (flags & NDR_IN) {
29214 ndr_print_struct(ndr, "in", "spoolss_61");
29215 ndr->depth++;
29216 ndr->depth--;
29218 if (flags & NDR_OUT) {
29219 ndr_print_struct(ndr, "out", "spoolss_61");
29220 ndr->depth++;
29221 ndr_print_WERROR(ndr, "result", r->out.result);
29222 ndr->depth--;
29224 ndr->depth--;
29227 static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, int flags, const struct spoolss_62 *r)
29229 if (flags & NDR_IN) {
29231 if (flags & NDR_OUT) {
29232 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29234 return NDR_ERR_SUCCESS;
29237 static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, int flags, struct spoolss_62 *r)
29239 if (flags & NDR_IN) {
29241 if (flags & NDR_OUT) {
29242 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29244 return NDR_ERR_SUCCESS;
29247 _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_62 *r)
29249 ndr_print_struct(ndr, name, "spoolss_62");
29250 ndr->depth++;
29251 if (flags & NDR_SET_VALUES) {
29252 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29254 if (flags & NDR_IN) {
29255 ndr_print_struct(ndr, "in", "spoolss_62");
29256 ndr->depth++;
29257 ndr->depth--;
29259 if (flags & NDR_OUT) {
29260 ndr_print_struct(ndr, "out", "spoolss_62");
29261 ndr->depth++;
29262 ndr_print_WERROR(ndr, "result", r->out.result);
29263 ndr->depth--;
29265 ndr->depth--;
29268 static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, int flags, const struct spoolss_63 *r)
29270 if (flags & NDR_IN) {
29272 if (flags & NDR_OUT) {
29273 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29275 return NDR_ERR_SUCCESS;
29278 static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, int flags, struct spoolss_63 *r)
29280 if (flags & NDR_IN) {
29282 if (flags & NDR_OUT) {
29283 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29285 return NDR_ERR_SUCCESS;
29288 _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_63 *r)
29290 ndr_print_struct(ndr, name, "spoolss_63");
29291 ndr->depth++;
29292 if (flags & NDR_SET_VALUES) {
29293 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29295 if (flags & NDR_IN) {
29296 ndr_print_struct(ndr, "in", "spoolss_63");
29297 ndr->depth++;
29298 ndr->depth--;
29300 if (flags & NDR_OUT) {
29301 ndr_print_struct(ndr, "out", "spoolss_63");
29302 ndr->depth++;
29303 ndr_print_WERROR(ndr, "result", r->out.result);
29304 ndr->depth--;
29306 ndr->depth--;
29309 static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, int flags, const struct spoolss_64 *r)
29311 if (flags & NDR_IN) {
29313 if (flags & NDR_OUT) {
29314 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29316 return NDR_ERR_SUCCESS;
29319 static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, int flags, struct spoolss_64 *r)
29321 if (flags & NDR_IN) {
29323 if (flags & NDR_OUT) {
29324 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29326 return NDR_ERR_SUCCESS;
29329 _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_64 *r)
29331 ndr_print_struct(ndr, name, "spoolss_64");
29332 ndr->depth++;
29333 if (flags & NDR_SET_VALUES) {
29334 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29336 if (flags & NDR_IN) {
29337 ndr_print_struct(ndr, "in", "spoolss_64");
29338 ndr->depth++;
29339 ndr->depth--;
29341 if (flags & NDR_OUT) {
29342 ndr_print_struct(ndr, "out", "spoolss_64");
29343 ndr->depth++;
29344 ndr_print_WERROR(ndr, "result", r->out.result);
29345 ndr->depth--;
29347 ndr->depth--;
29350 static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, int flags, const struct spoolss_65 *r)
29352 if (flags & NDR_IN) {
29354 if (flags & NDR_OUT) {
29355 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29357 return NDR_ERR_SUCCESS;
29360 static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, int flags, struct spoolss_65 *r)
29362 if (flags & NDR_IN) {
29364 if (flags & NDR_OUT) {
29365 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29367 return NDR_ERR_SUCCESS;
29370 _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_65 *r)
29372 ndr_print_struct(ndr, name, "spoolss_65");
29373 ndr->depth++;
29374 if (flags & NDR_SET_VALUES) {
29375 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29377 if (flags & NDR_IN) {
29378 ndr_print_struct(ndr, "in", "spoolss_65");
29379 ndr->depth++;
29380 ndr->depth--;
29382 if (flags & NDR_OUT) {
29383 ndr_print_struct(ndr, "out", "spoolss_65");
29384 ndr->depth++;
29385 ndr_print_WERROR(ndr, "result", r->out.result);
29386 ndr->depth--;
29388 ndr->depth--;
29391 static enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29393 uint32_t cntr_core_printer_drivers_1;
29394 if (flags & NDR_IN) {
29395 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29396 if (r->in.servername) {
29397 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29398 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29399 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29400 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29402 if (r->in.architecture == NULL) {
29403 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29405 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29406 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29407 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29408 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
29410 if (r->in.core_driver_dependencies == NULL) {
29411 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29413 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
29414 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.core_driver_dependencies, r->in.core_driver_size, sizeof(uint16_t), CH_UTF16));
29415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29417 if (flags & NDR_OUT) {
29418 if (r->out.core_printer_drivers == NULL) {
29419 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29421 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29422 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29423 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
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_GetCorePrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_GetCorePrinterDrivers *r)
29432 uint32_t _ptr_servername;
29433 uint32_t cntr_core_printer_drivers_1;
29434 TALLOC_CTX *_mem_save_servername_0;
29435 TALLOC_CTX *_mem_save_core_printer_drivers_1;
29436 if (flags & NDR_IN) {
29437 ZERO_STRUCT(r->out);
29439 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29440 if (_ptr_servername) {
29441 NDR_PULL_ALLOC(ndr, r->in.servername);
29442 } else {
29443 r->in.servername = NULL;
29445 if (r->in.servername) {
29446 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29447 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29448 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29449 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29450 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29451 return 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));
29453 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29454 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29457 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29458 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29459 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29460 return 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));
29462 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29463 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29464 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
29465 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
29466 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));
29467 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
29468 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
29469 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
29470 if (r->in.core_driver_dependencies) {
29471 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
29474 if (flags & NDR_OUT) {
29475 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
29476 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29477 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, ndr_get_array_size(ndr, &r->out.core_printer_drivers));
29479 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
29480 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
29481 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29482 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29484 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
29485 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29486 if (r->out.core_printer_drivers) {
29487 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
29490 return NDR_ERR_SUCCESS;
29493 _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29495 uint32_t cntr_core_printer_drivers_1;
29496 ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
29497 ndr->depth++;
29498 if (flags & NDR_SET_VALUES) {
29499 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29501 if (flags & NDR_IN) {
29502 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
29503 ndr->depth++;
29504 ndr_print_ptr(ndr, "servername", r->in.servername);
29505 ndr->depth++;
29506 if (r->in.servername) {
29507 ndr_print_string(ndr, "servername", r->in.servername);
29509 ndr->depth--;
29510 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29511 ndr->depth++;
29512 ndr_print_string(ndr, "architecture", r->in.architecture);
29513 ndr->depth--;
29514 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
29515 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29516 ndr->depth++;
29517 ndr_print_string(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
29518 ndr->depth--;
29519 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
29520 ndr->depth--;
29522 if (flags & NDR_OUT) {
29523 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
29524 ndr->depth++;
29525 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
29526 ndr->depth++;
29527 ndr->print(ndr, "%s: ARRAY(%d)", "core_printer_drivers", (int)r->in.core_printer_driver_count);
29528 ndr->depth++;
29529 for (cntr_core_printer_drivers_1=0;cntr_core_printer_drivers_1<r->in.core_printer_driver_count;cntr_core_printer_drivers_1++) {
29530 char *idx_1=NULL;
29531 if (asprintf(&idx_1, "[%d]", cntr_core_printer_drivers_1) != -1) {
29532 ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
29533 free(idx_1);
29536 ndr->depth--;
29537 ndr->depth--;
29538 ndr_print_WERROR(ndr, "result", r->out.result);
29539 ndr->depth--;
29541 ndr->depth--;
29544 static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, int flags, const struct spoolss_67 *r)
29546 if (flags & NDR_IN) {
29548 if (flags & NDR_OUT) {
29549 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29551 return NDR_ERR_SUCCESS;
29554 static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, int flags, struct spoolss_67 *r)
29556 if (flags & NDR_IN) {
29558 if (flags & NDR_OUT) {
29559 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29561 return NDR_ERR_SUCCESS;
29564 _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_67 *r)
29566 ndr_print_struct(ndr, name, "spoolss_67");
29567 ndr->depth++;
29568 if (flags & NDR_SET_VALUES) {
29569 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29571 if (flags & NDR_IN) {
29572 ndr_print_struct(ndr, "in", "spoolss_67");
29573 ndr->depth++;
29574 ndr->depth--;
29576 if (flags & NDR_OUT) {
29577 ndr_print_struct(ndr, "out", "spoolss_67");
29578 ndr->depth++;
29579 ndr_print_WERROR(ndr, "result", r->out.result);
29580 ndr->depth--;
29582 ndr->depth--;
29585 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29587 if (flags & NDR_IN) {
29588 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29589 if (r->in.servername) {
29590 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29591 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29592 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29593 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29595 if (r->in.architecture == NULL) {
29596 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29598 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29599 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29600 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29601 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29602 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
29603 if (r->in.language) {
29604 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29605 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29606 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
29607 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29609 if (r->in.package_id == NULL) {
29610 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29612 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29613 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29614 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
29615 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));
29616 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
29617 if (r->in.driver_package_cab) {
29618 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29619 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29623 if (flags & NDR_OUT) {
29624 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
29625 if (r->out.driver_package_cab) {
29626 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
29627 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
29629 if (r->out.required == NULL) {
29630 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
29633 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29635 return NDR_ERR_SUCCESS;
29638 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverPackagePath *r)
29640 uint32_t _ptr_servername;
29641 uint32_t _ptr_language;
29642 uint32_t _ptr_driver_package_cab;
29643 TALLOC_CTX *_mem_save_servername_0;
29644 TALLOC_CTX *_mem_save_language_0;
29645 TALLOC_CTX *_mem_save_driver_package_cab_0;
29646 TALLOC_CTX *_mem_save_required_0;
29647 if (flags & NDR_IN) {
29648 ZERO_STRUCT(r->out);
29650 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29651 if (_ptr_servername) {
29652 NDR_PULL_ALLOC(ndr, r->in.servername);
29653 } else {
29654 r->in.servername = NULL;
29656 if (r->in.servername) {
29657 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29658 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29659 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29660 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29661 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29662 return 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));
29664 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29665 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29668 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29669 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29670 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29671 return 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));
29673 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29674 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29675 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
29676 if (_ptr_language) {
29677 NDR_PULL_ALLOC(ndr, r->in.language);
29678 } else {
29679 r->in.language = NULL;
29681 if (r->in.language) {
29682 _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
29683 NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
29684 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
29685 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
29686 if (ndr_get_array_length(ndr, &r->in.language) > ndr_get_array_size(ndr, &r->in.language)) {
29687 return 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));
29689 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t)));
29690 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t), CH_UTF16));
29691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
29693 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
29694 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
29695 if (ndr_get_array_length(ndr, &r->in.package_id) > ndr_get_array_size(ndr, &r->in.package_id)) {
29696 return 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));
29698 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t)));
29699 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));
29700 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29701 if (_ptr_driver_package_cab) {
29702 NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
29703 } else {
29704 r->in.driver_package_cab = NULL;
29706 if (r->in.driver_package_cab) {
29707 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29708 NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
29709 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
29710 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));
29711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29713 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
29714 NDR_PULL_ALLOC(ndr, r->out.required);
29715 ZERO_STRUCTP(r->out.required);
29716 if (r->in.driver_package_cab) {
29717 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
29720 if (flags & NDR_OUT) {
29721 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
29722 if (_ptr_driver_package_cab) {
29723 NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
29724 } else {
29725 r->out.driver_package_cab = NULL;
29727 if (r->out.driver_package_cab) {
29728 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
29729 NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
29730 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
29731 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));
29732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
29734 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29735 NDR_PULL_ALLOC(ndr, r->out.required);
29737 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
29738 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
29739 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
29740 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
29741 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29742 if (r->out.driver_package_cab) {
29743 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
29746 return NDR_ERR_SUCCESS;
29749 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
29751 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
29752 ndr->depth++;
29753 if (flags & NDR_SET_VALUES) {
29754 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29756 if (flags & NDR_IN) {
29757 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
29758 ndr->depth++;
29759 ndr_print_ptr(ndr, "servername", r->in.servername);
29760 ndr->depth++;
29761 if (r->in.servername) {
29762 ndr_print_string(ndr, "servername", r->in.servername);
29764 ndr->depth--;
29765 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29766 ndr->depth++;
29767 ndr_print_string(ndr, "architecture", r->in.architecture);
29768 ndr->depth--;
29769 ndr_print_ptr(ndr, "language", r->in.language);
29770 ndr->depth++;
29771 if (r->in.language) {
29772 ndr_print_string(ndr, "language", r->in.language);
29774 ndr->depth--;
29775 ndr_print_ptr(ndr, "package_id", r->in.package_id);
29776 ndr->depth++;
29777 ndr_print_string(ndr, "package_id", r->in.package_id);
29778 ndr->depth--;
29779 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
29780 ndr->depth++;
29781 if (r->in.driver_package_cab) {
29782 ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
29784 ndr->depth--;
29785 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
29786 ndr->depth--;
29788 if (flags & NDR_OUT) {
29789 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
29790 ndr->depth++;
29791 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
29792 ndr->depth++;
29793 if (r->out.driver_package_cab) {
29794 ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
29796 ndr->depth--;
29797 ndr_print_ptr(ndr, "required", r->out.required);
29798 ndr->depth++;
29799 ndr_print_uint32(ndr, "required", *r->out.required);
29800 ndr->depth--;
29801 ndr_print_WERROR(ndr, "result", r->out.result);
29802 ndr->depth--;
29804 ndr->depth--;
29807 static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, int flags, const struct spoolss_69 *r)
29809 if (flags & NDR_IN) {
29811 if (flags & NDR_OUT) {
29812 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29814 return NDR_ERR_SUCCESS;
29817 static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, int flags, struct spoolss_69 *r)
29819 if (flags & NDR_IN) {
29821 if (flags & NDR_OUT) {
29822 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29824 return NDR_ERR_SUCCESS;
29827 _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_69 *r)
29829 ndr_print_struct(ndr, name, "spoolss_69");
29830 ndr->depth++;
29831 if (flags & NDR_SET_VALUES) {
29832 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29834 if (flags & NDR_IN) {
29835 ndr_print_struct(ndr, "in", "spoolss_69");
29836 ndr->depth++;
29837 ndr->depth--;
29839 if (flags & NDR_OUT) {
29840 ndr_print_struct(ndr, "out", "spoolss_69");
29841 ndr->depth++;
29842 ndr_print_WERROR(ndr, "result", r->out.result);
29843 ndr->depth--;
29845 ndr->depth--;
29848 static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, int flags, const struct spoolss_6a *r)
29850 if (flags & NDR_IN) {
29852 if (flags & NDR_OUT) {
29853 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29855 return NDR_ERR_SUCCESS;
29858 static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, int flags, struct spoolss_6a *r)
29860 if (flags & NDR_IN) {
29862 if (flags & NDR_OUT) {
29863 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29865 return NDR_ERR_SUCCESS;
29868 _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6a *r)
29870 ndr_print_struct(ndr, name, "spoolss_6a");
29871 ndr->depth++;
29872 if (flags & NDR_SET_VALUES) {
29873 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29875 if (flags & NDR_IN) {
29876 ndr_print_struct(ndr, "in", "spoolss_6a");
29877 ndr->depth++;
29878 ndr->depth--;
29880 if (flags & NDR_OUT) {
29881 ndr_print_struct(ndr, "out", "spoolss_6a");
29882 ndr->depth++;
29883 ndr_print_WERROR(ndr, "result", r->out.result);
29884 ndr->depth--;
29886 ndr->depth--;
29889 static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, int flags, const struct spoolss_6b *r)
29891 if (flags & NDR_IN) {
29893 if (flags & NDR_OUT) {
29894 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29896 return NDR_ERR_SUCCESS;
29899 static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, int flags, struct spoolss_6b *r)
29901 if (flags & NDR_IN) {
29903 if (flags & NDR_OUT) {
29904 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29906 return NDR_ERR_SUCCESS;
29909 _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6b *r)
29911 ndr_print_struct(ndr, name, "spoolss_6b");
29912 ndr->depth++;
29913 if (flags & NDR_SET_VALUES) {
29914 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29916 if (flags & NDR_IN) {
29917 ndr_print_struct(ndr, "in", "spoolss_6b");
29918 ndr->depth++;
29919 ndr->depth--;
29921 if (flags & NDR_OUT) {
29922 ndr_print_struct(ndr, "out", "spoolss_6b");
29923 ndr->depth++;
29924 ndr_print_WERROR(ndr, "result", r->out.result);
29925 ndr->depth--;
29927 ndr->depth--;
29930 static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, int flags, const struct spoolss_6c *r)
29932 if (flags & NDR_IN) {
29934 if (flags & NDR_OUT) {
29935 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29937 return NDR_ERR_SUCCESS;
29940 static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, int flags, struct spoolss_6c *r)
29942 if (flags & NDR_IN) {
29944 if (flags & NDR_OUT) {
29945 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29947 return NDR_ERR_SUCCESS;
29950 _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6c *r)
29952 ndr_print_struct(ndr, name, "spoolss_6c");
29953 ndr->depth++;
29954 if (flags & NDR_SET_VALUES) {
29955 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29957 if (flags & NDR_IN) {
29958 ndr_print_struct(ndr, "in", "spoolss_6c");
29959 ndr->depth++;
29960 ndr->depth--;
29962 if (flags & NDR_OUT) {
29963 ndr_print_struct(ndr, "out", "spoolss_6c");
29964 ndr->depth++;
29965 ndr_print_WERROR(ndr, "result", r->out.result);
29966 ndr->depth--;
29968 ndr->depth--;
29971 static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, int flags, const struct spoolss_6d *r)
29973 if (flags & NDR_IN) {
29975 if (flags & NDR_OUT) {
29976 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29978 return NDR_ERR_SUCCESS;
29981 static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, int flags, struct spoolss_6d *r)
29983 if (flags & NDR_IN) {
29985 if (flags & NDR_OUT) {
29986 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29988 return NDR_ERR_SUCCESS;
29991 _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6d *r)
29993 ndr_print_struct(ndr, name, "spoolss_6d");
29994 ndr->depth++;
29995 if (flags & NDR_SET_VALUES) {
29996 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29998 if (flags & NDR_IN) {
29999 ndr_print_struct(ndr, "in", "spoolss_6d");
30000 ndr->depth++;
30001 ndr->depth--;
30003 if (flags & NDR_OUT) {
30004 ndr_print_struct(ndr, "out", "spoolss_6d");
30005 ndr->depth++;
30006 ndr_print_WERROR(ndr, "result", r->out.result);
30007 ndr->depth--;
30009 ndr->depth--;
30012 static const struct ndr_interface_call spoolss_calls[] = {
30014 "spoolss_EnumPrinters",
30015 sizeof(struct spoolss_EnumPrinters),
30016 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
30017 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
30018 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
30019 false,
30022 "spoolss_OpenPrinter",
30023 sizeof(struct spoolss_OpenPrinter),
30024 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
30025 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
30026 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
30027 false,
30030 "spoolss_SetJob",
30031 sizeof(struct spoolss_SetJob),
30032 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
30033 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
30034 (ndr_print_function_t) ndr_print_spoolss_SetJob,
30035 false,
30038 "spoolss_GetJob",
30039 sizeof(struct spoolss_GetJob),
30040 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
30041 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
30042 (ndr_print_function_t) ndr_print_spoolss_GetJob,
30043 false,
30046 "spoolss_EnumJobs",
30047 sizeof(struct spoolss_EnumJobs),
30048 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
30049 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
30050 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
30051 false,
30054 "spoolss_AddPrinter",
30055 sizeof(struct spoolss_AddPrinter),
30056 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
30057 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
30058 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
30059 false,
30062 "spoolss_DeletePrinter",
30063 sizeof(struct spoolss_DeletePrinter),
30064 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
30065 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
30066 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
30067 false,
30070 "spoolss_SetPrinter",
30071 sizeof(struct spoolss_SetPrinter),
30072 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
30073 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
30074 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
30075 false,
30078 "spoolss_GetPrinter",
30079 sizeof(struct spoolss_GetPrinter),
30080 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
30081 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
30082 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
30083 false,
30086 "spoolss_AddPrinterDriver",
30087 sizeof(struct spoolss_AddPrinterDriver),
30088 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
30089 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
30090 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
30091 false,
30094 "spoolss_EnumPrinterDrivers",
30095 sizeof(struct spoolss_EnumPrinterDrivers),
30096 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
30097 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
30098 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
30099 false,
30102 "spoolss_GetPrinterDriver",
30103 sizeof(struct spoolss_GetPrinterDriver),
30104 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
30105 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
30106 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
30107 false,
30110 "spoolss_GetPrinterDriverDirectory",
30111 sizeof(struct spoolss_GetPrinterDriverDirectory),
30112 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
30113 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
30114 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
30115 false,
30118 "spoolss_DeletePrinterDriver",
30119 sizeof(struct spoolss_DeletePrinterDriver),
30120 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
30121 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
30122 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
30123 false,
30126 "spoolss_AddPrintProcessor",
30127 sizeof(struct spoolss_AddPrintProcessor),
30128 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
30129 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
30130 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
30131 false,
30134 "spoolss_EnumPrintProcessors",
30135 sizeof(struct spoolss_EnumPrintProcessors),
30136 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
30137 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
30138 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
30139 false,
30142 "spoolss_GetPrintProcessorDirectory",
30143 sizeof(struct spoolss_GetPrintProcessorDirectory),
30144 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
30145 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
30146 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
30147 false,
30150 "spoolss_StartDocPrinter",
30151 sizeof(struct spoolss_StartDocPrinter),
30152 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
30153 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
30154 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
30155 false,
30158 "spoolss_StartPagePrinter",
30159 sizeof(struct spoolss_StartPagePrinter),
30160 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
30161 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
30162 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
30163 false,
30166 "spoolss_WritePrinter",
30167 sizeof(struct spoolss_WritePrinter),
30168 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
30169 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
30170 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
30171 false,
30174 "spoolss_EndPagePrinter",
30175 sizeof(struct spoolss_EndPagePrinter),
30176 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
30177 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
30178 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
30179 false,
30182 "spoolss_AbortPrinter",
30183 sizeof(struct spoolss_AbortPrinter),
30184 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
30185 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
30186 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
30187 false,
30190 "spoolss_ReadPrinter",
30191 sizeof(struct spoolss_ReadPrinter),
30192 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
30193 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
30194 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
30195 false,
30198 "spoolss_EndDocPrinter",
30199 sizeof(struct spoolss_EndDocPrinter),
30200 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
30201 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
30202 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
30203 false,
30206 "spoolss_AddJob",
30207 sizeof(struct spoolss_AddJob),
30208 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
30209 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
30210 (ndr_print_function_t) ndr_print_spoolss_AddJob,
30211 false,
30214 "spoolss_ScheduleJob",
30215 sizeof(struct spoolss_ScheduleJob),
30216 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
30217 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
30218 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
30219 false,
30222 "spoolss_GetPrinterData",
30223 sizeof(struct spoolss_GetPrinterData),
30224 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
30225 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
30226 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
30227 false,
30230 "spoolss_SetPrinterData",
30231 sizeof(struct spoolss_SetPrinterData),
30232 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
30233 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
30234 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
30235 false,
30238 "spoolss_WaitForPrinterChange",
30239 sizeof(struct spoolss_WaitForPrinterChange),
30240 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
30241 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
30242 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
30243 false,
30246 "spoolss_ClosePrinter",
30247 sizeof(struct spoolss_ClosePrinter),
30248 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
30249 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
30250 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
30251 false,
30254 "spoolss_AddForm",
30255 sizeof(struct spoolss_AddForm),
30256 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
30257 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
30258 (ndr_print_function_t) ndr_print_spoolss_AddForm,
30259 false,
30262 "spoolss_DeleteForm",
30263 sizeof(struct spoolss_DeleteForm),
30264 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
30265 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
30266 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
30267 false,
30270 "spoolss_GetForm",
30271 sizeof(struct spoolss_GetForm),
30272 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
30273 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
30274 (ndr_print_function_t) ndr_print_spoolss_GetForm,
30275 false,
30278 "spoolss_SetForm",
30279 sizeof(struct spoolss_SetForm),
30280 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
30281 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
30282 (ndr_print_function_t) ndr_print_spoolss_SetForm,
30283 false,
30286 "spoolss_EnumForms",
30287 sizeof(struct spoolss_EnumForms),
30288 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
30289 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
30290 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
30291 false,
30294 "spoolss_EnumPorts",
30295 sizeof(struct spoolss_EnumPorts),
30296 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
30297 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
30298 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
30299 false,
30302 "spoolss_EnumMonitors",
30303 sizeof(struct spoolss_EnumMonitors),
30304 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
30305 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
30306 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
30307 false,
30310 "spoolss_AddPort",
30311 sizeof(struct spoolss_AddPort),
30312 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
30313 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
30314 (ndr_print_function_t) ndr_print_spoolss_AddPort,
30315 false,
30318 "spoolss_ConfigurePort",
30319 sizeof(struct spoolss_ConfigurePort),
30320 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
30321 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
30322 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
30323 false,
30326 "spoolss_DeletePort",
30327 sizeof(struct spoolss_DeletePort),
30328 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
30329 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
30330 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
30331 false,
30334 "spoolss_CreatePrinterIC",
30335 sizeof(struct spoolss_CreatePrinterIC),
30336 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
30337 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
30338 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
30339 false,
30342 "spoolss_PlayGDIScriptOnPrinterIC",
30343 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
30344 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
30345 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
30346 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
30347 false,
30350 "spoolss_DeletePrinterIC",
30351 sizeof(struct spoolss_DeletePrinterIC),
30352 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
30353 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
30354 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
30355 false,
30358 "spoolss_AddPrinterConnection",
30359 sizeof(struct spoolss_AddPrinterConnection),
30360 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
30361 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
30362 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
30363 false,
30366 "spoolss_DeletePrinterConnection",
30367 sizeof(struct spoolss_DeletePrinterConnection),
30368 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
30369 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
30370 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
30371 false,
30374 "spoolss_PrinterMessageBox",
30375 sizeof(struct spoolss_PrinterMessageBox),
30376 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
30377 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
30378 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
30379 false,
30382 "spoolss_AddMonitor",
30383 sizeof(struct spoolss_AddMonitor),
30384 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
30385 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
30386 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
30387 false,
30390 "spoolss_DeleteMonitor",
30391 sizeof(struct spoolss_DeleteMonitor),
30392 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
30393 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
30394 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
30395 false,
30398 "spoolss_DeletePrintProcessor",
30399 sizeof(struct spoolss_DeletePrintProcessor),
30400 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
30401 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
30402 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
30403 false,
30406 "spoolss_AddPrintProvidor",
30407 sizeof(struct spoolss_AddPrintProvidor),
30408 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
30409 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
30410 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
30411 false,
30414 "spoolss_DeletePrintProvidor",
30415 sizeof(struct spoolss_DeletePrintProvidor),
30416 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
30417 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
30418 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
30419 false,
30422 "spoolss_EnumPrintProcDataTypes",
30423 sizeof(struct spoolss_EnumPrintProcDataTypes),
30424 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
30425 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
30426 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
30427 false,
30430 "spoolss_ResetPrinter",
30431 sizeof(struct spoolss_ResetPrinter),
30432 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
30433 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
30434 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
30435 false,
30438 "spoolss_GetPrinterDriver2",
30439 sizeof(struct spoolss_GetPrinterDriver2),
30440 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
30441 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
30442 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
30443 false,
30446 "spoolss_FindFirstPrinterChangeNotification",
30447 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
30448 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
30449 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
30450 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
30451 false,
30454 "spoolss_FindNextPrinterChangeNotification",
30455 sizeof(struct spoolss_FindNextPrinterChangeNotification),
30456 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
30457 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
30458 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
30459 false,
30462 "spoolss_FindClosePrinterNotify",
30463 sizeof(struct spoolss_FindClosePrinterNotify),
30464 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
30465 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
30466 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
30467 false,
30470 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
30471 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
30472 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30473 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30474 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30475 false,
30478 "spoolss_ReplyOpenPrinter",
30479 sizeof(struct spoolss_ReplyOpenPrinter),
30480 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
30481 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
30482 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
30483 false,
30486 "spoolss_RouterReplyPrinter",
30487 sizeof(struct spoolss_RouterReplyPrinter),
30488 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
30489 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
30490 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
30491 false,
30494 "spoolss_ReplyClosePrinter",
30495 sizeof(struct spoolss_ReplyClosePrinter),
30496 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
30497 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
30498 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
30499 false,
30502 "spoolss_AddPortEx",
30503 sizeof(struct spoolss_AddPortEx),
30504 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
30505 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
30506 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
30507 false,
30510 "spoolss_RouterFindFirstPrinterChangeNotification",
30511 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
30512 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
30513 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
30514 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
30515 false,
30518 "spoolss_SpoolerInit",
30519 sizeof(struct spoolss_SpoolerInit),
30520 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
30521 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
30522 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
30523 false,
30526 "spoolss_ResetPrinterEx",
30527 sizeof(struct spoolss_ResetPrinterEx),
30528 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
30529 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
30530 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
30531 false,
30534 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
30535 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
30536 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30537 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30538 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
30539 false,
30542 "spoolss_RouterReplyPrinterEx",
30543 sizeof(struct spoolss_RouterReplyPrinterEx),
30544 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
30545 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
30546 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
30547 false,
30550 "spoolss_RouterRefreshPrinterChangeNotify",
30551 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
30552 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
30553 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
30554 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
30555 false,
30558 "spoolss_44",
30559 sizeof(struct spoolss_44),
30560 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
30561 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
30562 (ndr_print_function_t) ndr_print_spoolss_44,
30563 false,
30566 "spoolss_OpenPrinterEx",
30567 sizeof(struct spoolss_OpenPrinterEx),
30568 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
30569 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
30570 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
30571 false,
30574 "spoolss_AddPrinterEx",
30575 sizeof(struct spoolss_AddPrinterEx),
30576 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
30577 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
30578 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
30579 false,
30582 "spoolss_47",
30583 sizeof(struct spoolss_47),
30584 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
30585 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
30586 (ndr_print_function_t) ndr_print_spoolss_47,
30587 false,
30590 "spoolss_EnumPrinterData",
30591 sizeof(struct spoolss_EnumPrinterData),
30592 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
30593 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
30594 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
30595 false,
30598 "spoolss_DeletePrinterData",
30599 sizeof(struct spoolss_DeletePrinterData),
30600 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
30601 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
30602 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
30603 false,
30606 "spoolss_4a",
30607 sizeof(struct spoolss_4a),
30608 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
30609 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
30610 (ndr_print_function_t) ndr_print_spoolss_4a,
30611 false,
30614 "spoolss_4b",
30615 sizeof(struct spoolss_4b),
30616 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
30617 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
30618 (ndr_print_function_t) ndr_print_spoolss_4b,
30619 false,
30622 "spoolss_4c",
30623 sizeof(struct spoolss_4c),
30624 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
30625 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
30626 (ndr_print_function_t) ndr_print_spoolss_4c,
30627 false,
30630 "spoolss_SetPrinterDataEx",
30631 sizeof(struct spoolss_SetPrinterDataEx),
30632 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
30633 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
30634 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
30635 false,
30638 "spoolss_GetPrinterDataEx",
30639 sizeof(struct spoolss_GetPrinterDataEx),
30640 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
30641 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
30642 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
30643 false,
30646 "spoolss_EnumPrinterDataEx",
30647 sizeof(struct spoolss_EnumPrinterDataEx),
30648 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
30649 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
30650 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
30651 false,
30654 "spoolss_EnumPrinterKey",
30655 sizeof(struct spoolss_EnumPrinterKey),
30656 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
30657 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
30658 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
30659 false,
30662 "spoolss_DeletePrinterDataEx",
30663 sizeof(struct spoolss_DeletePrinterDataEx),
30664 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
30665 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
30666 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
30667 false,
30670 "spoolss_DeletePrinterKey",
30671 sizeof(struct spoolss_DeletePrinterKey),
30672 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
30673 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
30674 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
30675 false,
30678 "spoolss_53",
30679 sizeof(struct spoolss_53),
30680 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
30681 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
30682 (ndr_print_function_t) ndr_print_spoolss_53,
30683 false,
30686 "spoolss_DeletePrinterDriverEx",
30687 sizeof(struct spoolss_DeletePrinterDriverEx),
30688 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
30689 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
30690 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
30691 false,
30694 "spoolss_55",
30695 sizeof(struct spoolss_55),
30696 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
30697 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
30698 (ndr_print_function_t) ndr_print_spoolss_55,
30699 false,
30702 "spoolss_56",
30703 sizeof(struct spoolss_56),
30704 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
30705 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
30706 (ndr_print_function_t) ndr_print_spoolss_56,
30707 false,
30710 "spoolss_57",
30711 sizeof(struct spoolss_57),
30712 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
30713 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
30714 (ndr_print_function_t) ndr_print_spoolss_57,
30715 false,
30718 "spoolss_XcvData",
30719 sizeof(struct spoolss_XcvData),
30720 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
30721 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
30722 (ndr_print_function_t) ndr_print_spoolss_XcvData,
30723 false,
30726 "spoolss_AddPrinterDriverEx",
30727 sizeof(struct spoolss_AddPrinterDriverEx),
30728 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
30729 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
30730 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
30731 false,
30734 "spoolss_5a",
30735 sizeof(struct spoolss_5a),
30736 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
30737 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
30738 (ndr_print_function_t) ndr_print_spoolss_5a,
30739 false,
30742 "spoolss_5b",
30743 sizeof(struct spoolss_5b),
30744 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
30745 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
30746 (ndr_print_function_t) ndr_print_spoolss_5b,
30747 false,
30750 "spoolss_5c",
30751 sizeof(struct spoolss_5c),
30752 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
30753 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
30754 (ndr_print_function_t) ndr_print_spoolss_5c,
30755 false,
30758 "spoolss_5d",
30759 sizeof(struct spoolss_5d),
30760 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
30761 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
30762 (ndr_print_function_t) ndr_print_spoolss_5d,
30763 false,
30766 "spoolss_5e",
30767 sizeof(struct spoolss_5e),
30768 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
30769 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
30770 (ndr_print_function_t) ndr_print_spoolss_5e,
30771 false,
30774 "spoolss_5f",
30775 sizeof(struct spoolss_5f),
30776 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
30777 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
30778 (ndr_print_function_t) ndr_print_spoolss_5f,
30779 false,
30782 "spoolss_60",
30783 sizeof(struct spoolss_60),
30784 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
30785 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
30786 (ndr_print_function_t) ndr_print_spoolss_60,
30787 false,
30790 "spoolss_61",
30791 sizeof(struct spoolss_61),
30792 (ndr_push_flags_fn_t) ndr_push_spoolss_61,
30793 (ndr_pull_flags_fn_t) ndr_pull_spoolss_61,
30794 (ndr_print_function_t) ndr_print_spoolss_61,
30795 false,
30798 "spoolss_62",
30799 sizeof(struct spoolss_62),
30800 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
30801 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
30802 (ndr_print_function_t) ndr_print_spoolss_62,
30803 false,
30806 "spoolss_63",
30807 sizeof(struct spoolss_63),
30808 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
30809 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
30810 (ndr_print_function_t) ndr_print_spoolss_63,
30811 false,
30814 "spoolss_64",
30815 sizeof(struct spoolss_64),
30816 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
30817 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
30818 (ndr_print_function_t) ndr_print_spoolss_64,
30819 false,
30822 "spoolss_65",
30823 sizeof(struct spoolss_65),
30824 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
30825 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
30826 (ndr_print_function_t) ndr_print_spoolss_65,
30827 false,
30830 "spoolss_GetCorePrinterDrivers",
30831 sizeof(struct spoolss_GetCorePrinterDrivers),
30832 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
30833 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
30834 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
30835 false,
30838 "spoolss_67",
30839 sizeof(struct spoolss_67),
30840 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
30841 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
30842 (ndr_print_function_t) ndr_print_spoolss_67,
30843 false,
30846 "spoolss_GetPrinterDriverPackagePath",
30847 sizeof(struct spoolss_GetPrinterDriverPackagePath),
30848 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
30849 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
30850 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
30851 false,
30854 "spoolss_69",
30855 sizeof(struct spoolss_69),
30856 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
30857 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
30858 (ndr_print_function_t) ndr_print_spoolss_69,
30859 false,
30862 "spoolss_6a",
30863 sizeof(struct spoolss_6a),
30864 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
30865 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
30866 (ndr_print_function_t) ndr_print_spoolss_6a,
30867 false,
30870 "spoolss_6b",
30871 sizeof(struct spoolss_6b),
30872 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
30873 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
30874 (ndr_print_function_t) ndr_print_spoolss_6b,
30875 false,
30878 "spoolss_6c",
30879 sizeof(struct spoolss_6c),
30880 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
30881 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
30882 (ndr_print_function_t) ndr_print_spoolss_6c,
30883 false,
30886 "spoolss_6d",
30887 sizeof(struct spoolss_6d),
30888 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
30889 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
30890 (ndr_print_function_t) ndr_print_spoolss_6d,
30891 false,
30893 { NULL, 0, NULL, NULL, NULL, false }
30896 static const char * const spoolss_endpoint_strings[] = {
30897 "ncacn_np:[\\pipe\\spoolss]",
30900 static const struct ndr_interface_string_array spoolss_endpoints = {
30901 .count = 1,
30902 .names = spoolss_endpoint_strings
30905 static const char * const spoolss_authservice_strings[] = {
30906 "host",
30909 static const struct ndr_interface_string_array spoolss_authservices = {
30910 .count = 1,
30911 .names = spoolss_authservice_strings
30915 const struct ndr_interface_table ndr_table_spoolss = {
30916 .name = "spoolss",
30917 .syntax_id = {
30918 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
30919 NDR_SPOOLSS_VERSION
30921 .helpstring = NDR_SPOOLSS_HELPSTRING,
30922 .num_calls = 110,
30923 .calls = spoolss_calls,
30924 .endpoints = &spoolss_endpoints,
30925 .authservices = &spoolss_authservices