spoolss: use ndr_push_spoolss_PrinterInfo2 hand-marshalled version (moves devmode...
[Samba/gbeck.git] / librpc / gen_ndr / ndr_spoolss.c
blobcca1b12680d936617b346bc804ff61b1dbd8431f
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));
22 if (ndr_flags & NDR_BUFFERS) {
24 return NDR_ERR_SUCCESS;
27 static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Time *r)
29 if (ndr_flags & NDR_SCALARS) {
30 NDR_CHECK(ndr_pull_align(ndr, 2));
31 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->year));
32 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->month));
33 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day_of_week));
34 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day));
35 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hour));
36 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->minute));
37 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->second));
38 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->millisecond));
40 if (ndr_flags & NDR_BUFFERS) {
42 return NDR_ERR_SUCCESS;
45 _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r)
47 ndr_print_struct(ndr, name, "spoolss_Time");
48 ndr->depth++;
49 ndr_print_uint16(ndr, "year", r->year);
50 ndr_print_uint16(ndr, "month", r->month);
51 ndr_print_uint16(ndr, "day_of_week", r->day_of_week);
52 ndr_print_uint16(ndr, "day", r->day);
53 ndr_print_uint16(ndr, "hour", r->hour);
54 ndr_print_uint16(ndr, "minute", r->minute);
55 ndr_print_uint16(ndr, "second", r->second);
56 ndr_print_uint16(ndr, "millisecond", r->millisecond);
57 ndr->depth--;
60 static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, struct smb_iconv_convenience *ic, int flags)
62 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time, ic);
65 static enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_TimeCtr *r)
67 if (ndr_flags & NDR_SCALARS) {
68 NDR_CHECK(ndr_push_align(ndr, 4));
69 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags)));
70 NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
72 if (ndr_flags & NDR_BUFFERS) {
73 if (r->time) {
74 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
77 return NDR_ERR_SUCCESS;
80 static enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_TimeCtr *r)
82 uint32_t _ptr_time;
83 TALLOC_CTX *_mem_save_time_0;
84 if (ndr_flags & NDR_SCALARS) {
85 NDR_CHECK(ndr_pull_align(ndr, 4));
86 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
87 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
88 if (_ptr_time) {
89 NDR_PULL_ALLOC(ndr, r->time);
90 } else {
91 r->time = NULL;
94 if (ndr_flags & NDR_BUFFERS) {
95 if (r->time) {
96 _mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
97 NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
98 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
99 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
102 return NDR_ERR_SUCCESS;
105 _PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
107 ndr_print_struct(ndr, name, "spoolss_TimeCtr");
108 ndr->depth++;
109 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags):r->size);
110 ndr_print_ptr(ndr, "time", r->time);
111 ndr->depth++;
112 if (r->time) {
113 ndr_print_spoolss_Time(ndr, "time", r->time);
115 ndr->depth--;
116 ndr->depth--;
119 static enum ndr_err_code ndr_push_spoolss_ProcessorArchitecture(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture r)
121 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
122 return NDR_ERR_SUCCESS;
125 static enum ndr_err_code ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture *r)
127 uint16_t v;
128 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
129 *r = v;
130 return NDR_ERR_SUCCESS;
133 _PUBLIC_ void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorArchitecture r)
135 const char *val = NULL;
137 switch (r) {
138 case PROCESSOR_ARCHITECTURE_INTEL: val = "PROCESSOR_ARCHITECTURE_INTEL"; break;
139 case PROCESSOR_ARCHITECTURE_IA64: val = "PROCESSOR_ARCHITECTURE_IA64"; break;
140 case PROCESSOR_ARCHITECTURE_AMD64: val = "PROCESSOR_ARCHITECTURE_AMD64"; break;
142 ndr_print_enum(ndr, name, "ENUM", val, r);
145 static enum ndr_err_code ndr_push_spoolss_ProcessorType(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorType r)
147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
148 return NDR_ERR_SUCCESS;
151 static enum ndr_err_code ndr_pull_spoolss_ProcessorType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorType *r)
153 uint32_t v;
154 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
155 *r = v;
156 return NDR_ERR_SUCCESS;
159 _PUBLIC_ void ndr_print_spoolss_ProcessorType(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorType r)
161 const char *val = NULL;
163 switch (r) {
164 case PROCESSOR_INTEL_386: val = "PROCESSOR_INTEL_386"; break;
165 case PROCESSOR_INTEL_486: val = "PROCESSOR_INTEL_486"; break;
166 case PROCESSOR_INTEL_PENTIUM: val = "PROCESSOR_INTEL_PENTIUM"; break;
167 case PROCESSOR_INTEL_IA64: val = "PROCESSOR_INTEL_IA64"; break;
168 case PROCESSOR_AMD_X8664: val = "PROCESSOR_AMD_X8664"; break;
170 ndr_print_enum(ndr, name, "ENUM", val, r);
173 static enum ndr_err_code ndr_push_spoolss_MajorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MajorVersion r)
175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
176 return NDR_ERR_SUCCESS;
179 static enum ndr_err_code ndr_pull_spoolss_MajorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MajorVersion *r)
181 uint32_t v;
182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
183 *r = v;
184 return NDR_ERR_SUCCESS;
187 _PUBLIC_ void ndr_print_spoolss_MajorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MajorVersion r)
189 const char *val = NULL;
191 switch (r) {
192 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME: val = "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
193 case SPOOLSS_MAJOR_VERSION_2000_2003_XP: val = "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
194 case SPOOLSS_MAJOR_VERSION_2008_VISTA: val = "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
196 ndr_print_enum(ndr, name, "ENUM", val, r);
199 static enum ndr_err_code ndr_push_spoolss_MinorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MinorVersion r)
201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
202 return NDR_ERR_SUCCESS;
205 static enum ndr_err_code ndr_pull_spoolss_MinorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MinorVersion *r)
207 uint32_t v;
208 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
209 *r = v;
210 return NDR_ERR_SUCCESS;
213 _PUBLIC_ void ndr_print_spoolss_MinorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MinorVersion r)
215 const char *val = NULL;
217 switch (r) {
218 case SPOOLSS_MINOR_VERSION_0: val = "SPOOLSS_MINOR_VERSION_0"; break;
219 case SPOOLSS_MINOR_VERSION_XP: val = "SPOOLSS_MINOR_VERSION_XP"; break;
220 case SPOOLSS_MINOR_VERSION_2003_XP64: val = "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
221 case SPOOLSS_MINOR_VERSION_98: val = "SPOOLSS_MINOR_VERSION_98"; break;
222 case SPOOLSS_MINOR_VERSION_ME: val = "SPOOLSS_MINOR_VERSION_ME"; break;
224 ndr_print_enum(ndr, name, "ENUM", val, r);
227 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
230 return NDR_ERR_SUCCESS;
233 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
235 uint32_t v;
236 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
237 *r = v;
238 return NDR_ERR_SUCCESS;
241 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
243 ndr_print_uint32(ndr, name, r);
244 ndr->depth++;
245 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
246 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
247 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
248 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
249 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
250 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
259 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
260 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
270 ndr->depth--;
273 static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
276 return NDR_ERR_SUCCESS;
279 static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
281 uint32_t v;
282 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
283 *r = v;
284 return NDR_ERR_SUCCESS;
287 _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
289 ndr_print_uint32(ndr, name, r);
290 ndr->depth++;
291 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
292 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
293 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
294 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
295 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
296 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
297 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
298 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
299 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
300 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
301 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
302 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
303 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
304 ndr->depth--;
307 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
309 if (ndr_flags & NDR_SCALARS) {
310 NDR_CHECK(ndr_push_align(ndr, 4));
312 uint32_t _flags_save_string = ndr->flags;
313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
314 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
315 ndr->flags = _flags_save_string;
318 uint32_t _flags_save_string = ndr->flags;
319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
320 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
321 ndr->flags = _flags_save_string;
323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
326 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
336 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
338 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
341 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
342 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
345 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
346 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
351 if (ndr_flags & NDR_BUFFERS) {
353 uint32_t _flags_save_string = ndr->flags;
354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
355 if (r->printername) {
356 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
357 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
358 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
360 ndr->flags = _flags_save_string;
363 uint32_t _flags_save_string = ndr->flags;
364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
365 if (r->servername) {
366 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
367 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
368 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
370 ndr->flags = _flags_save_string;
373 return NDR_ERR_SUCCESS;
376 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
378 uint32_t _ptr_printername;
379 TALLOC_CTX *_mem_save_printername_0;
380 uint32_t _ptr_servername;
381 TALLOC_CTX *_mem_save_servername_0;
382 if (ndr_flags & NDR_SCALARS) {
383 NDR_CHECK(ndr_pull_align(ndr, 4));
385 uint32_t _flags_save_string = ndr->flags;
386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
387 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
388 if (_ptr_printername) {
389 NDR_PULL_ALLOC(ndr, r->printername);
390 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
391 } else {
392 r->printername = NULL;
394 ndr->flags = _flags_save_string;
397 uint32_t _flags_save_string = ndr->flags;
398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
399 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
400 if (_ptr_servername) {
401 NDR_PULL_ALLOC(ndr, r->servername);
402 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
403 } else {
404 r->servername = NULL;
406 ndr->flags = _flags_save_string;
408 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
411 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
421 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
423 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
426 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
427 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
430 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
431 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
434 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
436 if (ndr_flags & NDR_BUFFERS) {
438 uint32_t _flags_save_string = ndr->flags;
439 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
440 if (r->printername) {
441 uint32_t _relative_save_offset;
442 _relative_save_offset = ndr->offset;
443 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
444 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
445 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
446 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
448 ndr->offset = _relative_save_offset;
450 ndr->flags = _flags_save_string;
453 uint32_t _flags_save_string = ndr->flags;
454 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
455 if (r->servername) {
456 uint32_t _relative_save_offset;
457 _relative_save_offset = ndr->offset;
458 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
459 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
460 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
461 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
463 ndr->offset = _relative_save_offset;
465 ndr->flags = _flags_save_string;
468 return NDR_ERR_SUCCESS;
471 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
473 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
474 ndr->depth++;
475 ndr_print_ptr(ndr, "printername", r->printername);
476 ndr->depth++;
477 if (r->printername) {
478 ndr_print_string(ndr, "printername", r->printername);
480 ndr->depth--;
481 ndr_print_ptr(ndr, "servername", r->servername);
482 ndr->depth++;
483 if (r->servername) {
484 ndr_print_string(ndr, "servername", r->servername);
486 ndr->depth--;
487 ndr_print_uint32(ndr, "cjobs", r->cjobs);
488 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
489 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
490 ndr_print_spoolss_Time(ndr, "time", &r->time);
491 ndr_print_uint32(ndr, "global_counter", r->global_counter);
492 ndr_print_uint32(ndr, "total_pages", r->total_pages);
493 ndr_print_uint32(ndr, "version", r->version);
494 ndr_print_uint32(ndr, "free_build", r->free_build);
495 ndr_print_uint32(ndr, "spooling", r->spooling);
496 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
497 ndr_print_uint32(ndr, "session_counter", r->session_counter);
498 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
499 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
500 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
501 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
502 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
503 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
504 ndr_print_uint32(ndr, "change_id", r->change_id);
505 ndr_print_WERROR(ndr, "last_error", r->last_error);
506 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
507 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
508 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
509 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
510 ndr_print_uint16(ndr, "processor_level", r->processor_level);
511 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
512 ndr_print_uint32(ndr, "reserved2", r->reserved2);
513 ndr_print_uint32(ndr, "reserved3", r->reserved3);
514 ndr->depth--;
517 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, struct smb_iconv_convenience *ic, int flags)
519 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0, ic);
522 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
525 return NDR_ERR_SUCCESS;
528 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
530 uint32_t v;
531 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
532 *r = v;
533 return NDR_ERR_SUCCESS;
536 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
538 ndr_print_uint32(ndr, name, r);
539 ndr->depth++;
540 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
541 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
542 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
543 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
544 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
545 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
546 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
547 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
548 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
549 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
561 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
562 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
563 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
564 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
565 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
566 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
567 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
568 ndr->depth--;
571 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
573 if (ndr_flags & NDR_SCALARS) {
574 NDR_CHECK(ndr_push_align(ndr, 4));
575 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
576 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->specversion));
577 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
578 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
579 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
580 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
581 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->orientation));
582 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->papersize));
583 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
584 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
585 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
586 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
587 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->defaultsource));
588 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->printquality));
589 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->color));
590 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->duplex));
591 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
592 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ttoption));
593 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->collate));
594 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
595 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayflags));
600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmmethod));
602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmintent));
603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->mediatype));
604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dithertype));
605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
610 uint32_t _flags_save_DATA_BLOB = ndr->flags;
611 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
613 struct ndr_push *_ndr_driverextra_data;
614 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
615 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
616 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
618 ndr->flags = _flags_save_DATA_BLOB;
621 if (ndr_flags & NDR_BUFFERS) {
623 return NDR_ERR_SUCCESS;
626 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
628 if (ndr_flags & NDR_SCALARS) {
629 NDR_CHECK(ndr_pull_align(ndr, 4));
630 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
631 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->specversion));
632 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
633 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
634 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
635 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
636 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->orientation));
637 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->papersize));
638 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
639 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
640 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
641 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
642 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->defaultsource));
643 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->printquality));
644 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->color));
645 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->duplex));
646 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
647 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ttoption));
648 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->collate));
649 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
650 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
651 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
654 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayflags));
655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmmethod));
657 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmintent));
658 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mediatype));
659 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dithertype));
660 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
661 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
662 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
663 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
665 uint32_t _flags_save_DATA_BLOB = ndr->flags;
666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
668 struct ndr_pull *_ndr_driverextra_data;
669 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
670 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
671 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
673 ndr->flags = _flags_save_DATA_BLOB;
676 if (ndr_flags & NDR_BUFFERS) {
678 return NDR_ERR_SUCCESS;
681 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
683 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
684 ndr->depth++;
685 ndr_print_string(ndr, "devicename", r->devicename);
686 ndr_print_uint16(ndr, "specversion", r->specversion);
687 ndr_print_uint16(ndr, "driverversion", r->driverversion);
688 ndr_print_uint16(ndr, "size", r->size);
689 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
690 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
691 ndr_print_uint16(ndr, "orientation", r->orientation);
692 ndr_print_uint16(ndr, "papersize", r->papersize);
693 ndr_print_uint16(ndr, "paperlength", r->paperlength);
694 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
695 ndr_print_uint16(ndr, "scale", r->scale);
696 ndr_print_uint16(ndr, "copies", r->copies);
697 ndr_print_uint16(ndr, "defaultsource", r->defaultsource);
698 ndr_print_uint16(ndr, "printquality", r->printquality);
699 ndr_print_uint16(ndr, "color", r->color);
700 ndr_print_uint16(ndr, "duplex", r->duplex);
701 ndr_print_uint16(ndr, "yresolution", r->yresolution);
702 ndr_print_uint16(ndr, "ttoption", r->ttoption);
703 ndr_print_uint16(ndr, "collate", r->collate);
704 ndr_print_string(ndr, "formname", r->formname);
705 ndr_print_uint16(ndr, "logpixels", r->logpixels);
706 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
707 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
708 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
709 ndr_print_uint32(ndr, "displayflags", r->displayflags);
710 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
711 ndr_print_uint32(ndr, "icmmethod", r->icmmethod);
712 ndr_print_uint32(ndr, "icmintent", r->icmintent);
713 ndr_print_uint32(ndr, "mediatype", r->mediatype);
714 ndr_print_uint32(ndr, "dithertype", r->dithertype);
715 ndr_print_uint32(ndr, "reserved1", r->reserved1);
716 ndr_print_uint32(ndr, "reserved2", r->reserved2);
717 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
718 ndr_print_uint32(ndr, "panningheight", r->panningheight);
719 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
720 ndr->depth--;
723 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
725 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
728 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
731 return NDR_ERR_SUCCESS;
734 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
736 uint32_t v;
737 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
738 *r = v;
739 return NDR_ERR_SUCCESS;
742 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
744 ndr_print_uint32(ndr, name, r);
745 ndr->depth++;
746 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
747 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
748 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
749 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
750 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
751 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
752 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
753 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
754 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
755 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
756 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
757 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
758 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
759 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
760 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
761 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
762 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
763 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
764 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
765 ndr->depth--;
768 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
770 if (ndr_flags & NDR_SCALARS) {
771 NDR_CHECK(ndr_push_align(ndr, 4));
772 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
774 uint32_t _flags_save_string = ndr->flags;
775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
776 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
777 ndr->flags = _flags_save_string;
780 uint32_t _flags_save_string = ndr->flags;
781 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
782 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
783 ndr->flags = _flags_save_string;
786 uint32_t _flags_save_string = ndr->flags;
787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
788 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
789 ndr->flags = _flags_save_string;
792 if (ndr_flags & NDR_BUFFERS) {
794 uint32_t _flags_save_string = ndr->flags;
795 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
796 if (r->description) {
797 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
798 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
799 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
801 ndr->flags = _flags_save_string;
804 uint32_t _flags_save_string = ndr->flags;
805 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
806 if (r->name) {
807 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name));
808 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
809 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name));
811 ndr->flags = _flags_save_string;
814 uint32_t _flags_save_string = ndr->flags;
815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
816 if (r->comment) {
817 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment));
818 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
819 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->comment));
821 ndr->flags = _flags_save_string;
824 return NDR_ERR_SUCCESS;
827 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
829 uint32_t _ptr_description;
830 TALLOC_CTX *_mem_save_description_0;
831 uint32_t _ptr_name;
832 TALLOC_CTX *_mem_save_name_0;
833 uint32_t _ptr_comment;
834 TALLOC_CTX *_mem_save_comment_0;
835 if (ndr_flags & NDR_SCALARS) {
836 NDR_CHECK(ndr_pull_align(ndr, 4));
837 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
839 uint32_t _flags_save_string = ndr->flags;
840 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
841 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
842 if (_ptr_description) {
843 NDR_PULL_ALLOC(ndr, r->description);
844 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
845 } else {
846 r->description = NULL;
848 ndr->flags = _flags_save_string;
851 uint32_t _flags_save_string = ndr->flags;
852 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
853 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
854 if (_ptr_name) {
855 NDR_PULL_ALLOC(ndr, r->name);
856 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
857 } else {
858 r->name = NULL;
860 ndr->flags = _flags_save_string;
863 uint32_t _flags_save_string = ndr->flags;
864 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
866 if (_ptr_comment) {
867 NDR_PULL_ALLOC(ndr, r->comment);
868 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
869 } else {
870 r->comment = NULL;
872 ndr->flags = _flags_save_string;
875 if (ndr_flags & NDR_BUFFERS) {
877 uint32_t _flags_save_string = ndr->flags;
878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
879 if (r->description) {
880 uint32_t _relative_save_offset;
881 _relative_save_offset = ndr->offset;
882 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
883 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
884 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
885 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
887 ndr->offset = _relative_save_offset;
889 ndr->flags = _flags_save_string;
892 uint32_t _flags_save_string = ndr->flags;
893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
894 if (r->name) {
895 uint32_t _relative_save_offset;
896 _relative_save_offset = ndr->offset;
897 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
898 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
899 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
900 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
901 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
902 ndr->offset = _relative_save_offset;
904 ndr->flags = _flags_save_string;
907 uint32_t _flags_save_string = ndr->flags;
908 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
909 if (r->comment) {
910 uint32_t _relative_save_offset;
911 _relative_save_offset = ndr->offset;
912 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
913 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
914 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
915 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
917 ndr->offset = _relative_save_offset;
919 ndr->flags = _flags_save_string;
922 return NDR_ERR_SUCCESS;
925 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
927 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
928 ndr->depth++;
929 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
930 ndr_print_ptr(ndr, "description", r->description);
931 ndr->depth++;
932 if (r->description) {
933 ndr_print_string(ndr, "description", r->description);
935 ndr->depth--;
936 ndr_print_ptr(ndr, "name", r->name);
937 ndr->depth++;
938 if (r->name) {
939 ndr_print_string(ndr, "name", r->name);
941 ndr->depth--;
942 ndr_print_ptr(ndr, "comment", r->comment);
943 ndr->depth++;
944 if (r->comment) {
945 ndr_print_string(ndr, "comment", r->comment);
947 ndr->depth--;
948 ndr->depth--;
951 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
953 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
956 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
959 return NDR_ERR_SUCCESS;
962 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
964 uint32_t v;
965 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
966 *r = v;
967 return NDR_ERR_SUCCESS;
970 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
972 ndr_print_uint32(ndr, name, r);
973 ndr->depth++;
974 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
975 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
976 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
977 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
978 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
979 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
980 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
981 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
982 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
983 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
984 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
985 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
986 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
987 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
988 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
989 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
990 ndr->depth--;
993 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
995 uint32_t _ptr_servername;
996 TALLOC_CTX *_mem_save_servername_0;
997 uint32_t _ptr_printername;
998 TALLOC_CTX *_mem_save_printername_0;
999 uint32_t _ptr_sharename;
1000 TALLOC_CTX *_mem_save_sharename_0;
1001 uint32_t _ptr_portname;
1002 TALLOC_CTX *_mem_save_portname_0;
1003 uint32_t _ptr_drivername;
1004 TALLOC_CTX *_mem_save_drivername_0;
1005 uint32_t _ptr_comment;
1006 TALLOC_CTX *_mem_save_comment_0;
1007 uint32_t _ptr_location;
1008 TALLOC_CTX *_mem_save_location_0;
1009 uint32_t _ptr_devmode;
1010 TALLOC_CTX *_mem_save_devmode_0;
1011 uint32_t _ptr_sepfile;
1012 TALLOC_CTX *_mem_save_sepfile_0;
1013 uint32_t _ptr_printprocessor;
1014 TALLOC_CTX *_mem_save_printprocessor_0;
1015 uint32_t _ptr_datatype;
1016 TALLOC_CTX *_mem_save_datatype_0;
1017 uint32_t _ptr_parameters;
1018 TALLOC_CTX *_mem_save_parameters_0;
1019 uint32_t _ptr_secdesc;
1020 TALLOC_CTX *_mem_save_secdesc_0;
1021 if (ndr_flags & NDR_SCALARS) {
1022 NDR_CHECK(ndr_pull_align(ndr, 4));
1024 uint32_t _flags_save_string = ndr->flags;
1025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1026 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1027 if (_ptr_servername) {
1028 NDR_PULL_ALLOC(ndr, r->servername);
1029 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1030 } else {
1031 r->servername = NULL;
1033 ndr->flags = _flags_save_string;
1036 uint32_t _flags_save_string = ndr->flags;
1037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1038 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1039 if (_ptr_printername) {
1040 NDR_PULL_ALLOC(ndr, r->printername);
1041 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1042 } else {
1043 r->printername = NULL;
1045 ndr->flags = _flags_save_string;
1048 uint32_t _flags_save_string = ndr->flags;
1049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1050 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1051 if (_ptr_sharename) {
1052 NDR_PULL_ALLOC(ndr, r->sharename);
1053 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1054 } else {
1055 r->sharename = NULL;
1057 ndr->flags = _flags_save_string;
1060 uint32_t _flags_save_string = ndr->flags;
1061 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1062 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1063 if (_ptr_portname) {
1064 NDR_PULL_ALLOC(ndr, r->portname);
1065 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1066 } else {
1067 r->portname = NULL;
1069 ndr->flags = _flags_save_string;
1072 uint32_t _flags_save_string = ndr->flags;
1073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1074 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1075 if (_ptr_drivername) {
1076 NDR_PULL_ALLOC(ndr, r->drivername);
1077 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1078 } else {
1079 r->drivername = NULL;
1081 ndr->flags = _flags_save_string;
1084 uint32_t _flags_save_string = ndr->flags;
1085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1086 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1087 if (_ptr_comment) {
1088 NDR_PULL_ALLOC(ndr, r->comment);
1089 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1090 } else {
1091 r->comment = NULL;
1093 ndr->flags = _flags_save_string;
1096 uint32_t _flags_save_string = ndr->flags;
1097 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1098 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1099 if (_ptr_location) {
1100 NDR_PULL_ALLOC(ndr, r->location);
1101 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1102 } else {
1103 r->location = NULL;
1105 ndr->flags = _flags_save_string;
1108 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1110 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1111 if (_ptr_devmode) {
1112 NDR_PULL_ALLOC(ndr, r->devmode);
1113 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1114 } else {
1115 r->devmode = NULL;
1117 ndr->flags = _flags_save_spoolss_DeviceMode;
1120 uint32_t _flags_save_string = ndr->flags;
1121 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1122 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1123 if (_ptr_sepfile) {
1124 NDR_PULL_ALLOC(ndr, r->sepfile);
1125 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1126 } else {
1127 r->sepfile = NULL;
1129 ndr->flags = _flags_save_string;
1132 uint32_t _flags_save_string = ndr->flags;
1133 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1134 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1135 if (_ptr_printprocessor) {
1136 NDR_PULL_ALLOC(ndr, r->printprocessor);
1137 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1138 } else {
1139 r->printprocessor = NULL;
1141 ndr->flags = _flags_save_string;
1144 uint32_t _flags_save_string = ndr->flags;
1145 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1147 if (_ptr_datatype) {
1148 NDR_PULL_ALLOC(ndr, r->datatype);
1149 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1150 } else {
1151 r->datatype = NULL;
1153 ndr->flags = _flags_save_string;
1156 uint32_t _flags_save_string = ndr->flags;
1157 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1158 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1159 if (_ptr_parameters) {
1160 NDR_PULL_ALLOC(ndr, r->parameters);
1161 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1162 } else {
1163 r->parameters = NULL;
1165 ndr->flags = _flags_save_string;
1168 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1169 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1170 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1171 if (_ptr_secdesc) {
1172 NDR_PULL_ALLOC(ndr, r->secdesc);
1173 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1174 } else {
1175 r->secdesc = NULL;
1177 ndr->flags = _flags_save_spoolss_security_descriptor;
1179 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1180 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1181 if (r->priority > 99) {
1182 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1185 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1186 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1187 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1188 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1189 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1191 if (ndr_flags & NDR_BUFFERS) {
1193 uint32_t _flags_save_string = ndr->flags;
1194 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1195 if (r->servername) {
1196 uint32_t _relative_save_offset;
1197 _relative_save_offset = ndr->offset;
1198 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1199 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1200 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1201 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1202 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1203 ndr->offset = _relative_save_offset;
1205 ndr->flags = _flags_save_string;
1208 uint32_t _flags_save_string = ndr->flags;
1209 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1210 if (r->printername) {
1211 uint32_t _relative_save_offset;
1212 _relative_save_offset = ndr->offset;
1213 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1214 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1215 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1216 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1218 ndr->offset = _relative_save_offset;
1220 ndr->flags = _flags_save_string;
1223 uint32_t _flags_save_string = ndr->flags;
1224 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1225 if (r->sharename) {
1226 uint32_t _relative_save_offset;
1227 _relative_save_offset = ndr->offset;
1228 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1229 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1230 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1231 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1232 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1233 ndr->offset = _relative_save_offset;
1235 ndr->flags = _flags_save_string;
1238 uint32_t _flags_save_string = ndr->flags;
1239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1240 if (r->portname) {
1241 uint32_t _relative_save_offset;
1242 _relative_save_offset = ndr->offset;
1243 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1244 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1245 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1246 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1248 ndr->offset = _relative_save_offset;
1250 ndr->flags = _flags_save_string;
1253 uint32_t _flags_save_string = ndr->flags;
1254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1255 if (r->drivername) {
1256 uint32_t _relative_save_offset;
1257 _relative_save_offset = ndr->offset;
1258 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1259 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1260 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1261 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1263 ndr->offset = _relative_save_offset;
1265 ndr->flags = _flags_save_string;
1268 uint32_t _flags_save_string = ndr->flags;
1269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1270 if (r->comment) {
1271 uint32_t _relative_save_offset;
1272 _relative_save_offset = ndr->offset;
1273 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1274 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1275 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1276 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1278 ndr->offset = _relative_save_offset;
1280 ndr->flags = _flags_save_string;
1283 uint32_t _flags_save_string = ndr->flags;
1284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1285 if (r->location) {
1286 uint32_t _relative_save_offset;
1287 _relative_save_offset = ndr->offset;
1288 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1289 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1290 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1291 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1293 ndr->offset = _relative_save_offset;
1295 ndr->flags = _flags_save_string;
1298 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1300 if (r->devmode) {
1301 uint32_t _relative_save_offset;
1302 _relative_save_offset = ndr->offset;
1303 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1304 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1305 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1307 struct ndr_pull *_ndr_devmode;
1308 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1309 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1310 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1313 ndr->offset = _relative_save_offset;
1315 ndr->flags = _flags_save_spoolss_DeviceMode;
1318 uint32_t _flags_save_string = ndr->flags;
1319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1320 if (r->sepfile) {
1321 uint32_t _relative_save_offset;
1322 _relative_save_offset = ndr->offset;
1323 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1324 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1325 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1326 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1328 ndr->offset = _relative_save_offset;
1330 ndr->flags = _flags_save_string;
1333 uint32_t _flags_save_string = ndr->flags;
1334 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1335 if (r->printprocessor) {
1336 uint32_t _relative_save_offset;
1337 _relative_save_offset = ndr->offset;
1338 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1339 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1340 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1341 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1343 ndr->offset = _relative_save_offset;
1345 ndr->flags = _flags_save_string;
1348 uint32_t _flags_save_string = ndr->flags;
1349 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1350 if (r->datatype) {
1351 uint32_t _relative_save_offset;
1352 _relative_save_offset = ndr->offset;
1353 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
1354 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
1355 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
1356 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
1357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
1358 ndr->offset = _relative_save_offset;
1360 ndr->flags = _flags_save_string;
1363 uint32_t _flags_save_string = ndr->flags;
1364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1365 if (r->parameters) {
1366 uint32_t _relative_save_offset;
1367 _relative_save_offset = ndr->offset;
1368 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
1369 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
1370 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
1371 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
1372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
1373 ndr->offset = _relative_save_offset;
1375 ndr->flags = _flags_save_string;
1378 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1380 if (r->secdesc) {
1381 uint32_t _relative_save_offset;
1382 _relative_save_offset = ndr->offset;
1383 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1384 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1385 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1387 struct ndr_pull *_ndr_secdesc;
1388 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1389 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1390 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1393 ndr->offset = _relative_save_offset;
1395 ndr->flags = _flags_save_spoolss_security_descriptor;
1398 return NDR_ERR_SUCCESS;
1401 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
1403 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
1404 ndr->depth++;
1405 ndr_print_ptr(ndr, "servername", r->servername);
1406 ndr->depth++;
1407 if (r->servername) {
1408 ndr_print_string(ndr, "servername", r->servername);
1410 ndr->depth--;
1411 ndr_print_ptr(ndr, "printername", r->printername);
1412 ndr->depth++;
1413 if (r->printername) {
1414 ndr_print_string(ndr, "printername", r->printername);
1416 ndr->depth--;
1417 ndr_print_ptr(ndr, "sharename", r->sharename);
1418 ndr->depth++;
1419 if (r->sharename) {
1420 ndr_print_string(ndr, "sharename", r->sharename);
1422 ndr->depth--;
1423 ndr_print_ptr(ndr, "portname", r->portname);
1424 ndr->depth++;
1425 if (r->portname) {
1426 ndr_print_string(ndr, "portname", r->portname);
1428 ndr->depth--;
1429 ndr_print_ptr(ndr, "drivername", r->drivername);
1430 ndr->depth++;
1431 if (r->drivername) {
1432 ndr_print_string(ndr, "drivername", r->drivername);
1434 ndr->depth--;
1435 ndr_print_ptr(ndr, "comment", r->comment);
1436 ndr->depth++;
1437 if (r->comment) {
1438 ndr_print_string(ndr, "comment", r->comment);
1440 ndr->depth--;
1441 ndr_print_ptr(ndr, "location", r->location);
1442 ndr->depth++;
1443 if (r->location) {
1444 ndr_print_string(ndr, "location", r->location);
1446 ndr->depth--;
1447 ndr_print_ptr(ndr, "devmode", r->devmode);
1448 ndr->depth++;
1449 if (r->devmode) {
1450 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1452 ndr->depth--;
1453 ndr_print_ptr(ndr, "sepfile", r->sepfile);
1454 ndr->depth++;
1455 if (r->sepfile) {
1456 ndr_print_string(ndr, "sepfile", r->sepfile);
1458 ndr->depth--;
1459 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
1460 ndr->depth++;
1461 if (r->printprocessor) {
1462 ndr_print_string(ndr, "printprocessor", r->printprocessor);
1464 ndr->depth--;
1465 ndr_print_ptr(ndr, "datatype", r->datatype);
1466 ndr->depth++;
1467 if (r->datatype) {
1468 ndr_print_string(ndr, "datatype", r->datatype);
1470 ndr->depth--;
1471 ndr_print_ptr(ndr, "parameters", r->parameters);
1472 ndr->depth++;
1473 if (r->parameters) {
1474 ndr_print_string(ndr, "parameters", r->parameters);
1476 ndr->depth--;
1477 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1478 ndr->depth++;
1479 if (r->secdesc) {
1480 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
1482 ndr->depth--;
1483 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1484 ndr_print_uint32(ndr, "priority", r->priority);
1485 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
1486 ndr_print_uint32(ndr, "starttime", r->starttime);
1487 ndr_print_uint32(ndr, "untiltime", r->untiltime);
1488 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1489 ndr_print_uint32(ndr, "cjobs", r->cjobs);
1490 ndr_print_uint32(ndr, "averageppm", r->averageppm);
1491 ndr->depth--;
1494 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
1496 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
1499 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
1501 if (ndr_flags & NDR_SCALARS) {
1502 NDR_CHECK(ndr_push_align(ndr, 4));
1504 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1505 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1506 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1507 ndr->flags = _flags_save_spoolss_security_descriptor;
1510 if (ndr_flags & NDR_BUFFERS) {
1512 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1514 if (r->secdesc) {
1515 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
1517 struct ndr_push *_ndr_secdesc;
1518 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1519 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1520 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1522 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
1524 ndr->flags = _flags_save_spoolss_security_descriptor;
1527 return NDR_ERR_SUCCESS;
1530 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
1532 uint32_t _ptr_secdesc;
1533 TALLOC_CTX *_mem_save_secdesc_0;
1534 if (ndr_flags & NDR_SCALARS) {
1535 NDR_CHECK(ndr_pull_align(ndr, 4));
1537 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1538 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1539 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1540 if (_ptr_secdesc) {
1541 NDR_PULL_ALLOC(ndr, r->secdesc);
1542 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1543 } else {
1544 r->secdesc = NULL;
1546 ndr->flags = _flags_save_spoolss_security_descriptor;
1549 if (ndr_flags & NDR_BUFFERS) {
1551 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1552 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1553 if (r->secdesc) {
1554 uint32_t _relative_save_offset;
1555 _relative_save_offset = ndr->offset;
1556 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1557 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1558 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1560 struct ndr_pull *_ndr_secdesc;
1561 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1562 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1563 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1566 ndr->offset = _relative_save_offset;
1568 ndr->flags = _flags_save_spoolss_security_descriptor;
1571 return NDR_ERR_SUCCESS;
1574 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
1576 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
1577 ndr->depth++;
1578 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1579 ndr->depth++;
1580 if (r->secdesc) {
1581 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
1583 ndr->depth--;
1584 ndr->depth--;
1587 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
1589 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
1592 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
1594 if (ndr_flags & NDR_SCALARS) {
1595 NDR_CHECK(ndr_push_align(ndr, 4));
1597 uint32_t _flags_save_string = ndr->flags;
1598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1599 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1600 ndr->flags = _flags_save_string;
1603 uint32_t _flags_save_string = ndr->flags;
1604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1605 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1606 ndr->flags = _flags_save_string;
1608 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1610 if (ndr_flags & NDR_BUFFERS) {
1612 uint32_t _flags_save_string = ndr->flags;
1613 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1614 if (r->printername) {
1615 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
1616 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1617 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
1619 ndr->flags = _flags_save_string;
1622 uint32_t _flags_save_string = ndr->flags;
1623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1624 if (r->servername) {
1625 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
1626 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1627 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
1629 ndr->flags = _flags_save_string;
1632 return NDR_ERR_SUCCESS;
1635 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
1637 uint32_t _ptr_printername;
1638 TALLOC_CTX *_mem_save_printername_0;
1639 uint32_t _ptr_servername;
1640 TALLOC_CTX *_mem_save_servername_0;
1641 if (ndr_flags & NDR_SCALARS) {
1642 NDR_CHECK(ndr_pull_align(ndr, 4));
1644 uint32_t _flags_save_string = ndr->flags;
1645 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1646 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1647 if (_ptr_printername) {
1648 NDR_PULL_ALLOC(ndr, r->printername);
1649 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1650 } else {
1651 r->printername = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1659 if (_ptr_servername) {
1660 NDR_PULL_ALLOC(ndr, r->servername);
1661 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1662 } else {
1663 r->servername = NULL;
1665 ndr->flags = _flags_save_string;
1667 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1669 if (ndr_flags & NDR_BUFFERS) {
1671 uint32_t _flags_save_string = ndr->flags;
1672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1673 if (r->printername) {
1674 uint32_t _relative_save_offset;
1675 _relative_save_offset = ndr->offset;
1676 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1677 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1678 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1679 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1681 ndr->offset = _relative_save_offset;
1683 ndr->flags = _flags_save_string;
1686 uint32_t _flags_save_string = ndr->flags;
1687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1688 if (r->servername) {
1689 uint32_t _relative_save_offset;
1690 _relative_save_offset = ndr->offset;
1691 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1692 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1693 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1694 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1696 ndr->offset = _relative_save_offset;
1698 ndr->flags = _flags_save_string;
1701 return NDR_ERR_SUCCESS;
1704 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
1706 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
1707 ndr->depth++;
1708 ndr_print_ptr(ndr, "printername", r->printername);
1709 ndr->depth++;
1710 if (r->printername) {
1711 ndr_print_string(ndr, "printername", r->printername);
1713 ndr->depth--;
1714 ndr_print_ptr(ndr, "servername", r->servername);
1715 ndr->depth++;
1716 if (r->servername) {
1717 ndr_print_string(ndr, "servername", r->servername);
1719 ndr->depth--;
1720 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1721 ndr->depth--;
1724 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
1726 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
1729 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
1731 if (ndr_flags & NDR_SCALARS) {
1732 NDR_CHECK(ndr_push_align(ndr, 4));
1734 uint32_t _flags_save_string = ndr->flags;
1735 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1736 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1737 ndr->flags = _flags_save_string;
1740 uint32_t _flags_save_string = ndr->flags;
1741 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1742 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1743 ndr->flags = _flags_save_string;
1745 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
1747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
1749 if (ndr_flags & NDR_BUFFERS) {
1751 uint32_t _flags_save_string = ndr->flags;
1752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1753 if (r->printername) {
1754 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
1755 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1756 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
1758 ndr->flags = _flags_save_string;
1761 uint32_t _flags_save_string = ndr->flags;
1762 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1763 if (r->portname) {
1764 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname));
1765 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1766 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->portname));
1768 ndr->flags = _flags_save_string;
1771 return NDR_ERR_SUCCESS;
1774 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
1776 uint32_t _ptr_printername;
1777 TALLOC_CTX *_mem_save_printername_0;
1778 uint32_t _ptr_portname;
1779 TALLOC_CTX *_mem_save_portname_0;
1780 if (ndr_flags & NDR_SCALARS) {
1781 NDR_CHECK(ndr_pull_align(ndr, 4));
1783 uint32_t _flags_save_string = ndr->flags;
1784 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1785 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1786 if (_ptr_printername) {
1787 NDR_PULL_ALLOC(ndr, r->printername);
1788 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1789 } else {
1790 r->printername = NULL;
1792 ndr->flags = _flags_save_string;
1795 uint32_t _flags_save_string = ndr->flags;
1796 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1797 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1798 if (_ptr_portname) {
1799 NDR_PULL_ALLOC(ndr, r->portname);
1800 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1801 } else {
1802 r->portname = NULL;
1804 ndr->flags = _flags_save_string;
1806 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1807 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
1808 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
1810 if (ndr_flags & NDR_BUFFERS) {
1812 uint32_t _flags_save_string = ndr->flags;
1813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1814 if (r->printername) {
1815 uint32_t _relative_save_offset;
1816 _relative_save_offset = ndr->offset;
1817 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1818 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1819 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1820 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1821 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1822 ndr->offset = _relative_save_offset;
1824 ndr->flags = _flags_save_string;
1827 uint32_t _flags_save_string = ndr->flags;
1828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1829 if (r->portname) {
1830 uint32_t _relative_save_offset;
1831 _relative_save_offset = ndr->offset;
1832 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1833 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1834 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1835 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1837 ndr->offset = _relative_save_offset;
1839 ndr->flags = _flags_save_string;
1842 return NDR_ERR_SUCCESS;
1845 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
1847 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
1848 ndr->depth++;
1849 ndr_print_ptr(ndr, "printername", r->printername);
1850 ndr->depth++;
1851 if (r->printername) {
1852 ndr_print_string(ndr, "printername", r->printername);
1854 ndr->depth--;
1855 ndr_print_ptr(ndr, "portname", r->portname);
1856 ndr->depth++;
1857 if (r->portname) {
1858 ndr_print_string(ndr, "portname", r->portname);
1860 ndr->depth--;
1861 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1862 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
1863 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
1864 ndr->depth--;
1867 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
1869 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
1872 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
1874 if (ndr_flags & NDR_SCALARS) {
1875 NDR_CHECK(ndr_push_align(ndr, 4));
1876 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1878 if (ndr_flags & NDR_BUFFERS) {
1880 return NDR_ERR_SUCCESS;
1883 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
1885 if (ndr_flags & NDR_SCALARS) {
1886 NDR_CHECK(ndr_pull_align(ndr, 4));
1887 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1889 if (ndr_flags & NDR_BUFFERS) {
1891 return NDR_ERR_SUCCESS;
1894 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
1896 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
1897 ndr->depth++;
1898 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1899 ndr->depth--;
1902 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
1904 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
1907 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1910 return NDR_ERR_SUCCESS;
1913 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1915 uint32_t v;
1916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1917 *r = v;
1918 return NDR_ERR_SUCCESS;
1921 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
1923 ndr_print_uint32(ndr, name, r);
1924 ndr->depth++;
1925 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
1926 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
1927 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
1928 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
1929 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
1930 ndr->depth--;
1933 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
1935 if (ndr_flags & NDR_SCALARS) {
1936 NDR_CHECK(ndr_push_align(ndr, 4));
1938 uint32_t _flags_save_string = ndr->flags;
1939 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1940 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
1941 ndr->flags = _flags_save_string;
1943 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
1945 if (ndr_flags & NDR_BUFFERS) {
1947 uint32_t _flags_save_string = ndr->flags;
1948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1949 if (r->guid) {
1950 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->guid));
1951 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
1952 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->guid));
1954 ndr->flags = _flags_save_string;
1957 return NDR_ERR_SUCCESS;
1960 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
1962 uint32_t _ptr_guid;
1963 TALLOC_CTX *_mem_save_guid_0;
1964 if (ndr_flags & NDR_SCALARS) {
1965 NDR_CHECK(ndr_pull_align(ndr, 4));
1967 uint32_t _flags_save_string = ndr->flags;
1968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1969 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
1970 if (_ptr_guid) {
1971 NDR_PULL_ALLOC(ndr, r->guid);
1972 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
1973 } else {
1974 r->guid = NULL;
1976 ndr->flags = _flags_save_string;
1978 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
1980 if (ndr_flags & NDR_BUFFERS) {
1982 uint32_t _flags_save_string = ndr->flags;
1983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1984 if (r->guid) {
1985 uint32_t _relative_save_offset;
1986 _relative_save_offset = ndr->offset;
1987 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
1988 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1989 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
1990 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
1991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
1992 ndr->offset = _relative_save_offset;
1994 ndr->flags = _flags_save_string;
1997 return NDR_ERR_SUCCESS;
2000 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2002 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2003 ndr->depth++;
2004 ndr_print_ptr(ndr, "guid", r->guid);
2005 ndr->depth++;
2006 if (r->guid) {
2007 ndr_print_string(ndr, "guid", r->guid);
2009 ndr->depth--;
2010 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2011 ndr->depth--;
2014 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2016 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2019 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2021 if (ndr_flags & NDR_SCALARS) {
2022 NDR_CHECK(ndr_push_align(ndr, 4));
2024 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2026 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2027 ndr->flags = _flags_save_spoolss_DeviceMode;
2030 if (ndr_flags & NDR_BUFFERS) {
2032 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2034 if (r->devmode) {
2035 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
2037 struct ndr_push *_ndr_devmode;
2038 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2039 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2040 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2042 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
2044 ndr->flags = _flags_save_spoolss_DeviceMode;
2047 return NDR_ERR_SUCCESS;
2050 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2052 uint32_t _ptr_devmode;
2053 TALLOC_CTX *_mem_save_devmode_0;
2054 if (ndr_flags & NDR_SCALARS) {
2055 NDR_CHECK(ndr_pull_align(ndr, 4));
2057 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2059 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2060 if (_ptr_devmode) {
2061 NDR_PULL_ALLOC(ndr, r->devmode);
2062 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2063 } else {
2064 r->devmode = NULL;
2066 ndr->flags = _flags_save_spoolss_DeviceMode;
2069 if (ndr_flags & NDR_BUFFERS) {
2071 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2073 if (r->devmode) {
2074 uint32_t _relative_save_offset;
2075 _relative_save_offset = ndr->offset;
2076 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2077 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2078 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2080 struct ndr_pull *_ndr_devmode;
2081 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2082 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2083 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2086 ndr->offset = _relative_save_offset;
2088 ndr->flags = _flags_save_spoolss_DeviceMode;
2091 return NDR_ERR_SUCCESS;
2094 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2096 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2097 ndr->depth++;
2098 ndr_print_ptr(ndr, "devmode", r->devmode);
2099 ndr->depth++;
2100 if (r->devmode) {
2101 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2103 ndr->depth--;
2104 ndr->depth--;
2107 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2109 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2111 uint32_t _flags_save_UNION = ndr->flags;
2112 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
2113 if (ndr_flags & NDR_SCALARS) {
2114 int level = ndr_push_get_switch_value(ndr, r);
2115 switch (level) {
2116 case 0: {
2117 NDR_CHECK(ndr_push_align(ndr, 4));
2118 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2119 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2120 break; }
2122 case 1: {
2123 NDR_CHECK(ndr_push_align(ndr, 4));
2124 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2125 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2126 break; }
2128 case 2: {
2129 NDR_CHECK(ndr_push_align(ndr, 4));
2130 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2131 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2132 break; }
2134 case 3: {
2135 NDR_CHECK(ndr_push_align(ndr, 4));
2136 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2137 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2138 break; }
2140 case 4: {
2141 NDR_CHECK(ndr_push_align(ndr, 4));
2142 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2143 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2144 break; }
2146 case 5: {
2147 NDR_CHECK(ndr_push_align(ndr, 4));
2148 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2149 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2150 break; }
2152 case 6: {
2153 NDR_CHECK(ndr_push_align(ndr, 4));
2154 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2155 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2156 break; }
2158 case 7: {
2159 NDR_CHECK(ndr_push_align(ndr, 4));
2160 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2161 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2162 break; }
2164 case 8: {
2165 NDR_CHECK(ndr_push_align(ndr, 4));
2166 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2167 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2168 break; }
2170 case 9: {
2171 NDR_CHECK(ndr_push_align(ndr, 4));
2172 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2173 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2174 break; }
2176 default: {
2177 break; }
2181 if (ndr_flags & NDR_BUFFERS) {
2182 int level = ndr_push_get_switch_value(ndr, r);
2183 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2184 switch (level) {
2185 case 0:
2186 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2187 break;
2189 case 1:
2190 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2191 break;
2193 case 2:
2194 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2195 break;
2197 case 3:
2198 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2199 break;
2201 case 4:
2202 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2203 break;
2205 case 5:
2206 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2207 break;
2209 case 6:
2210 break;
2212 case 7:
2213 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2214 break;
2216 case 8:
2217 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2218 break;
2220 case 9:
2221 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2222 break;
2224 default:
2225 break;
2229 ndr->flags = _flags_save_UNION;
2231 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2232 return NDR_ERR_SUCCESS;
2235 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2237 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2238 int level;
2240 uint32_t _flags_save_UNION = ndr->flags;
2241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
2242 level = ndr_pull_get_switch_value(ndr, r);
2243 if (ndr_flags & NDR_SCALARS) {
2244 switch (level) {
2245 case 0: {
2246 NDR_CHECK(ndr_pull_align(ndr, 4));
2247 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2248 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2249 break; }
2251 case 1: {
2252 NDR_CHECK(ndr_pull_align(ndr, 4));
2253 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2254 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2255 break; }
2257 case 2: {
2258 NDR_CHECK(ndr_pull_align(ndr, 4));
2259 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2260 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2261 break; }
2263 case 3: {
2264 NDR_CHECK(ndr_pull_align(ndr, 4));
2265 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2266 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2267 break; }
2269 case 4: {
2270 NDR_CHECK(ndr_pull_align(ndr, 4));
2271 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2272 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2273 break; }
2275 case 5: {
2276 NDR_CHECK(ndr_pull_align(ndr, 4));
2277 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2278 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2279 break; }
2281 case 6: {
2282 NDR_CHECK(ndr_pull_align(ndr, 4));
2283 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2284 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2285 break; }
2287 case 7: {
2288 NDR_CHECK(ndr_pull_align(ndr, 4));
2289 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2290 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2291 break; }
2293 case 8: {
2294 NDR_CHECK(ndr_pull_align(ndr, 4));
2295 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2296 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2297 break; }
2299 case 9: {
2300 NDR_CHECK(ndr_pull_align(ndr, 4));
2301 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2302 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2303 break; }
2305 default: {
2306 break; }
2310 if (ndr_flags & NDR_BUFFERS) {
2311 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2312 switch (level) {
2313 case 0:
2314 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2315 break;
2317 case 1:
2318 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2319 break;
2321 case 2:
2322 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2323 break;
2325 case 3:
2326 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2327 break;
2329 case 4:
2330 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2331 break;
2333 case 5:
2334 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2335 break;
2337 case 6:
2338 break;
2340 case 7:
2341 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2342 break;
2344 case 8:
2345 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2346 break;
2348 case 9:
2349 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2350 break;
2352 default:
2353 break;
2357 ndr->flags = _flags_save_UNION;
2359 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2360 return NDR_ERR_SUCCESS;
2363 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2365 int level;
2367 uint32_t _flags_save_UNION = ndr->flags;
2368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
2369 level = ndr_print_get_switch_value(ndr, r);
2370 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2371 switch (level) {
2372 case 0:
2373 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2374 break;
2376 case 1:
2377 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2378 break;
2380 case 2:
2381 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2382 break;
2384 case 3:
2385 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2386 break;
2388 case 4:
2389 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2390 break;
2392 case 5:
2393 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2394 break;
2396 case 6:
2397 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2398 break;
2400 case 7:
2401 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2402 break;
2404 case 8:
2405 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2406 break;
2408 case 9:
2409 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
2410 break;
2412 default:
2413 break;
2416 ndr->flags = _flags_save_UNION;
2420 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
2422 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
2423 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
2426 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
2428 if (ndr_flags & NDR_SCALARS) {
2429 NDR_CHECK(ndr_push_align(ndr, 4));
2430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2431 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
2433 if (ndr_flags & NDR_BUFFERS) {
2434 if (r->devmode) {
2436 struct ndr_push *_ndr_devmode;
2437 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2438 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2439 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2443 return NDR_ERR_SUCCESS;
2446 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
2448 uint32_t _ptr_devmode;
2449 TALLOC_CTX *_mem_save_devmode_0;
2450 if (ndr_flags & NDR_SCALARS) {
2451 NDR_CHECK(ndr_pull_align(ndr, 4));
2452 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
2453 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2454 if (_ptr_devmode) {
2455 NDR_PULL_ALLOC(ndr, r->devmode);
2456 } else {
2457 r->devmode = NULL;
2460 if (ndr_flags & NDR_BUFFERS) {
2461 if (r->devmode) {
2462 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2463 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2465 struct ndr_pull *_ndr_devmode;
2466 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
2467 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2468 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
2470 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2473 return NDR_ERR_SUCCESS;
2476 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
2478 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
2479 ndr->depth++;
2480 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);
2481 ndr_print_ptr(ndr, "devmode", r->devmode);
2482 ndr->depth++;
2483 if (r->devmode) {
2484 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2486 ndr->depth--;
2487 ndr->depth--;
2490 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
2492 if (ndr_flags & NDR_SCALARS) {
2493 NDR_CHECK(ndr_push_align(ndr, 4));
2494 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2496 uint32_t _flags_save_string = ndr->flags;
2497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2498 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2499 ndr->flags = _flags_save_string;
2502 uint32_t _flags_save_string = ndr->flags;
2503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2504 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2505 ndr->flags = _flags_save_string;
2508 uint32_t _flags_save_string = ndr->flags;
2509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2510 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2511 ndr->flags = _flags_save_string;
2514 uint32_t _flags_save_string = ndr->flags;
2515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2516 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2517 ndr->flags = _flags_save_string;
2520 uint32_t _flags_save_string = ndr->flags;
2521 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2522 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2523 ndr->flags = _flags_save_string;
2526 uint32_t _flags_save_string = ndr->flags;
2527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2528 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2529 ndr->flags = _flags_save_string;
2531 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
2532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2536 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2538 if (ndr_flags & NDR_BUFFERS) {
2540 uint32_t _flags_save_string = ndr->flags;
2541 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2542 if (r->printer_name) {
2543 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
2544 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2545 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
2547 ndr->flags = _flags_save_string;
2550 uint32_t _flags_save_string = ndr->flags;
2551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2552 if (r->server_name) {
2553 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
2554 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
2555 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
2557 ndr->flags = _flags_save_string;
2560 uint32_t _flags_save_string = ndr->flags;
2561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2562 if (r->user_name) {
2563 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
2564 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2565 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
2567 ndr->flags = _flags_save_string;
2570 uint32_t _flags_save_string = ndr->flags;
2571 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2572 if (r->document_name) {
2573 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
2574 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
2575 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
2577 ndr->flags = _flags_save_string;
2580 uint32_t _flags_save_string = ndr->flags;
2581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2582 if (r->data_type) {
2583 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
2584 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
2585 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
2587 ndr->flags = _flags_save_string;
2590 uint32_t _flags_save_string = ndr->flags;
2591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2592 if (r->text_status) {
2593 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
2594 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
2595 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
2597 ndr->flags = _flags_save_string;
2600 return NDR_ERR_SUCCESS;
2603 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
2605 uint32_t _ptr_printer_name;
2606 TALLOC_CTX *_mem_save_printer_name_0;
2607 uint32_t _ptr_server_name;
2608 TALLOC_CTX *_mem_save_server_name_0;
2609 uint32_t _ptr_user_name;
2610 TALLOC_CTX *_mem_save_user_name_0;
2611 uint32_t _ptr_document_name;
2612 TALLOC_CTX *_mem_save_document_name_0;
2613 uint32_t _ptr_data_type;
2614 TALLOC_CTX *_mem_save_data_type_0;
2615 uint32_t _ptr_text_status;
2616 TALLOC_CTX *_mem_save_text_status_0;
2617 if (ndr_flags & NDR_SCALARS) {
2618 NDR_CHECK(ndr_pull_align(ndr, 4));
2619 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
2621 uint32_t _flags_save_string = ndr->flags;
2622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2623 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
2624 if (_ptr_printer_name) {
2625 NDR_PULL_ALLOC(ndr, r->printer_name);
2626 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
2627 } else {
2628 r->printer_name = NULL;
2630 ndr->flags = _flags_save_string;
2633 uint32_t _flags_save_string = ndr->flags;
2634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2635 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
2636 if (_ptr_server_name) {
2637 NDR_PULL_ALLOC(ndr, r->server_name);
2638 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
2639 } else {
2640 r->server_name = NULL;
2642 ndr->flags = _flags_save_string;
2645 uint32_t _flags_save_string = ndr->flags;
2646 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
2648 if (_ptr_user_name) {
2649 NDR_PULL_ALLOC(ndr, r->user_name);
2650 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
2651 } else {
2652 r->user_name = NULL;
2654 ndr->flags = _flags_save_string;
2657 uint32_t _flags_save_string = ndr->flags;
2658 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
2660 if (_ptr_document_name) {
2661 NDR_PULL_ALLOC(ndr, r->document_name);
2662 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
2663 } else {
2664 r->document_name = NULL;
2666 ndr->flags = _flags_save_string;
2669 uint32_t _flags_save_string = ndr->flags;
2670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2671 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
2672 if (_ptr_data_type) {
2673 NDR_PULL_ALLOC(ndr, r->data_type);
2674 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
2675 } else {
2676 r->data_type = NULL;
2678 ndr->flags = _flags_save_string;
2681 uint32_t _flags_save_string = ndr->flags;
2682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
2684 if (_ptr_text_status) {
2685 NDR_PULL_ALLOC(ndr, r->text_status);
2686 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
2687 } else {
2688 r->text_status = NULL;
2690 ndr->flags = _flags_save_string;
2692 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
2693 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
2694 if (r->priority > 99) {
2695 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2697 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
2698 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
2699 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
2700 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2702 if (ndr_flags & NDR_BUFFERS) {
2704 uint32_t _flags_save_string = ndr->flags;
2705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2706 if (r->printer_name) {
2707 uint32_t _relative_save_offset;
2708 _relative_save_offset = ndr->offset;
2709 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
2710 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2711 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
2712 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
2713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
2714 ndr->offset = _relative_save_offset;
2716 ndr->flags = _flags_save_string;
2719 uint32_t _flags_save_string = ndr->flags;
2720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2721 if (r->server_name) {
2722 uint32_t _relative_save_offset;
2723 _relative_save_offset = ndr->offset;
2724 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
2725 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2726 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
2727 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
2728 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
2729 ndr->offset = _relative_save_offset;
2731 ndr->flags = _flags_save_string;
2734 uint32_t _flags_save_string = ndr->flags;
2735 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2736 if (r->user_name) {
2737 uint32_t _relative_save_offset;
2738 _relative_save_offset = ndr->offset;
2739 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
2740 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2741 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
2742 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
2743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
2744 ndr->offset = _relative_save_offset;
2746 ndr->flags = _flags_save_string;
2749 uint32_t _flags_save_string = ndr->flags;
2750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2751 if (r->document_name) {
2752 uint32_t _relative_save_offset;
2753 _relative_save_offset = ndr->offset;
2754 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
2755 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2756 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
2757 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
2758 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
2759 ndr->offset = _relative_save_offset;
2761 ndr->flags = _flags_save_string;
2764 uint32_t _flags_save_string = ndr->flags;
2765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2766 if (r->data_type) {
2767 uint32_t _relative_save_offset;
2768 _relative_save_offset = ndr->offset;
2769 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
2770 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2771 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
2772 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
2773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
2774 ndr->offset = _relative_save_offset;
2776 ndr->flags = _flags_save_string;
2779 uint32_t _flags_save_string = ndr->flags;
2780 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2781 if (r->text_status) {
2782 uint32_t _relative_save_offset;
2783 _relative_save_offset = ndr->offset;
2784 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
2785 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
2786 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
2787 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
2788 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
2789 ndr->offset = _relative_save_offset;
2791 ndr->flags = _flags_save_string;
2794 return NDR_ERR_SUCCESS;
2797 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
2799 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
2800 ndr->depth++;
2801 ndr_print_uint32(ndr, "job_id", r->job_id);
2802 ndr_print_ptr(ndr, "printer_name", r->printer_name);
2803 ndr->depth++;
2804 if (r->printer_name) {
2805 ndr_print_string(ndr, "printer_name", r->printer_name);
2807 ndr->depth--;
2808 ndr_print_ptr(ndr, "server_name", r->server_name);
2809 ndr->depth++;
2810 if (r->server_name) {
2811 ndr_print_string(ndr, "server_name", r->server_name);
2813 ndr->depth--;
2814 ndr_print_ptr(ndr, "user_name", r->user_name);
2815 ndr->depth++;
2816 if (r->user_name) {
2817 ndr_print_string(ndr, "user_name", r->user_name);
2819 ndr->depth--;
2820 ndr_print_ptr(ndr, "document_name", r->document_name);
2821 ndr->depth++;
2822 if (r->document_name) {
2823 ndr_print_string(ndr, "document_name", r->document_name);
2825 ndr->depth--;
2826 ndr_print_ptr(ndr, "data_type", r->data_type);
2827 ndr->depth++;
2828 if (r->data_type) {
2829 ndr_print_string(ndr, "data_type", r->data_type);
2831 ndr->depth--;
2832 ndr_print_ptr(ndr, "text_status", r->text_status);
2833 ndr->depth++;
2834 if (r->text_status) {
2835 ndr_print_string(ndr, "text_status", r->text_status);
2837 ndr->depth--;
2838 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
2839 ndr_print_uint32(ndr, "priority", r->priority);
2840 ndr_print_uint32(ndr, "position", r->position);
2841 ndr_print_uint32(ndr, "total_pages", r->total_pages);
2842 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
2843 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
2844 ndr->depth--;
2847 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
2849 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
2852 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
2854 if (ndr_flags & NDR_SCALARS) {
2855 NDR_CHECK(ndr_push_align(ndr, 4));
2856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2858 uint32_t _flags_save_string = ndr->flags;
2859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2860 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2861 ndr->flags = _flags_save_string;
2864 uint32_t _flags_save_string = ndr->flags;
2865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2866 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2867 ndr->flags = _flags_save_string;
2870 uint32_t _flags_save_string = ndr->flags;
2871 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2872 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2873 ndr->flags = _flags_save_string;
2876 uint32_t _flags_save_string = ndr->flags;
2877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2878 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2879 ndr->flags = _flags_save_string;
2882 uint32_t _flags_save_string = ndr->flags;
2883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2884 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
2885 ndr->flags = _flags_save_string;
2888 uint32_t _flags_save_string = ndr->flags;
2889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2890 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2891 ndr->flags = _flags_save_string;
2894 uint32_t _flags_save_string = ndr->flags;
2895 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2896 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
2897 ndr->flags = _flags_save_string;
2900 uint32_t _flags_save_string = ndr->flags;
2901 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2902 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
2903 ndr->flags = _flags_save_string;
2906 uint32_t _flags_save_string = ndr->flags;
2907 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2908 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
2909 ndr->flags = _flags_save_string;
2912 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2914 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2915 ndr->flags = _flags_save_spoolss_DeviceMode;
2918 uint32_t _flags_save_string = ndr->flags;
2919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2920 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2921 ndr->flags = _flags_save_string;
2924 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2926 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2927 ndr->flags = _flags_save_spoolss_security_descriptor;
2929 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
2930 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2931 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2932 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
2933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
2934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
2936 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2937 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
2938 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2940 if (ndr_flags & NDR_BUFFERS) {
2942 uint32_t _flags_save_string = ndr->flags;
2943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2944 if (r->printer_name) {
2945 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
2946 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2947 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
2949 ndr->flags = _flags_save_string;
2952 uint32_t _flags_save_string = ndr->flags;
2953 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2954 if (r->server_name) {
2955 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
2956 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
2957 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
2959 ndr->flags = _flags_save_string;
2962 uint32_t _flags_save_string = ndr->flags;
2963 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2964 if (r->user_name) {
2965 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
2966 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2967 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
2969 ndr->flags = _flags_save_string;
2972 uint32_t _flags_save_string = ndr->flags;
2973 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2974 if (r->document_name) {
2975 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
2976 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
2977 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
2979 ndr->flags = _flags_save_string;
2982 uint32_t _flags_save_string = ndr->flags;
2983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2984 if (r->notify_name) {
2985 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
2986 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
2987 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
2989 ndr->flags = _flags_save_string;
2992 uint32_t _flags_save_string = ndr->flags;
2993 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2994 if (r->data_type) {
2995 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
2996 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
2997 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
2999 ndr->flags = _flags_save_string;
3002 uint32_t _flags_save_string = ndr->flags;
3003 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3004 if (r->print_processor) {
3005 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
3006 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3007 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
3009 ndr->flags = _flags_save_string;
3012 uint32_t _flags_save_string = ndr->flags;
3013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3014 if (r->parameters) {
3015 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
3016 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3017 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
3019 ndr->flags = _flags_save_string;
3022 uint32_t _flags_save_string = ndr->flags;
3023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3024 if (r->driver_name) {
3025 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
3026 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3027 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
3029 ndr->flags = _flags_save_string;
3032 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3034 if (r->devmode) {
3035 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
3037 struct ndr_push *_ndr_devmode;
3038 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3039 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3040 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
3042 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
3044 ndr->flags = _flags_save_spoolss_DeviceMode;
3047 uint32_t _flags_save_string = ndr->flags;
3048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3049 if (r->text_status) {
3050 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3051 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3052 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3054 ndr->flags = _flags_save_string;
3057 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3059 if (r->secdesc) {
3060 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
3062 struct ndr_push *_ndr_secdesc;
3063 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3064 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3065 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3067 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
3069 ndr->flags = _flags_save_spoolss_security_descriptor;
3072 return NDR_ERR_SUCCESS;
3075 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3077 uint32_t _ptr_printer_name;
3078 TALLOC_CTX *_mem_save_printer_name_0;
3079 uint32_t _ptr_server_name;
3080 TALLOC_CTX *_mem_save_server_name_0;
3081 uint32_t _ptr_user_name;
3082 TALLOC_CTX *_mem_save_user_name_0;
3083 uint32_t _ptr_document_name;
3084 TALLOC_CTX *_mem_save_document_name_0;
3085 uint32_t _ptr_notify_name;
3086 TALLOC_CTX *_mem_save_notify_name_0;
3087 uint32_t _ptr_data_type;
3088 TALLOC_CTX *_mem_save_data_type_0;
3089 uint32_t _ptr_print_processor;
3090 TALLOC_CTX *_mem_save_print_processor_0;
3091 uint32_t _ptr_parameters;
3092 TALLOC_CTX *_mem_save_parameters_0;
3093 uint32_t _ptr_driver_name;
3094 TALLOC_CTX *_mem_save_driver_name_0;
3095 uint32_t _ptr_devmode;
3096 TALLOC_CTX *_mem_save_devmode_0;
3097 uint32_t _ptr_text_status;
3098 TALLOC_CTX *_mem_save_text_status_0;
3099 uint32_t _ptr_secdesc;
3100 TALLOC_CTX *_mem_save_secdesc_0;
3101 if (ndr_flags & NDR_SCALARS) {
3102 NDR_CHECK(ndr_pull_align(ndr, 4));
3103 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3105 uint32_t _flags_save_string = ndr->flags;
3106 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3107 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3108 if (_ptr_printer_name) {
3109 NDR_PULL_ALLOC(ndr, r->printer_name);
3110 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3111 } else {
3112 r->printer_name = NULL;
3114 ndr->flags = _flags_save_string;
3117 uint32_t _flags_save_string = ndr->flags;
3118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3119 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3120 if (_ptr_server_name) {
3121 NDR_PULL_ALLOC(ndr, r->server_name);
3122 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3123 } else {
3124 r->server_name = NULL;
3126 ndr->flags = _flags_save_string;
3129 uint32_t _flags_save_string = ndr->flags;
3130 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3131 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3132 if (_ptr_user_name) {
3133 NDR_PULL_ALLOC(ndr, r->user_name);
3134 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3135 } else {
3136 r->user_name = NULL;
3138 ndr->flags = _flags_save_string;
3141 uint32_t _flags_save_string = ndr->flags;
3142 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3143 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3144 if (_ptr_document_name) {
3145 NDR_PULL_ALLOC(ndr, r->document_name);
3146 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3147 } else {
3148 r->document_name = NULL;
3150 ndr->flags = _flags_save_string;
3153 uint32_t _flags_save_string = ndr->flags;
3154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3155 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3156 if (_ptr_notify_name) {
3157 NDR_PULL_ALLOC(ndr, r->notify_name);
3158 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3159 } else {
3160 r->notify_name = NULL;
3162 ndr->flags = _flags_save_string;
3165 uint32_t _flags_save_string = ndr->flags;
3166 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3167 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3168 if (_ptr_data_type) {
3169 NDR_PULL_ALLOC(ndr, r->data_type);
3170 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3171 } else {
3172 r->data_type = NULL;
3174 ndr->flags = _flags_save_string;
3177 uint32_t _flags_save_string = ndr->flags;
3178 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3179 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3180 if (_ptr_print_processor) {
3181 NDR_PULL_ALLOC(ndr, r->print_processor);
3182 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3183 } else {
3184 r->print_processor = NULL;
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_pull_generic_ptr(ndr, &_ptr_parameters));
3192 if (_ptr_parameters) {
3193 NDR_PULL_ALLOC(ndr, r->parameters);
3194 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3195 } else {
3196 r->parameters = NULL;
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_pull_generic_ptr(ndr, &_ptr_driver_name));
3204 if (_ptr_driver_name) {
3205 NDR_PULL_ALLOC(ndr, r->driver_name);
3206 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3207 } else {
3208 r->driver_name = NULL;
3210 ndr->flags = _flags_save_string;
3213 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3214 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3215 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3216 if (_ptr_devmode) {
3217 NDR_PULL_ALLOC(ndr, r->devmode);
3218 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3219 } else {
3220 r->devmode = NULL;
3222 ndr->flags = _flags_save_spoolss_DeviceMode;
3225 uint32_t _flags_save_string = ndr->flags;
3226 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3227 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3228 if (_ptr_text_status) {
3229 NDR_PULL_ALLOC(ndr, r->text_status);
3230 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3231 } else {
3232 r->text_status = NULL;
3234 ndr->flags = _flags_save_string;
3237 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3238 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3240 if (_ptr_secdesc) {
3241 NDR_PULL_ALLOC(ndr, r->secdesc);
3242 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3243 } else {
3244 r->secdesc = NULL;
3246 ndr->flags = _flags_save_spoolss_security_descriptor;
3248 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3249 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3250 if (r->priority > 99) {
3251 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3253 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3254 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3255 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3256 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3257 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3258 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3259 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3260 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3262 if (ndr_flags & NDR_BUFFERS) {
3264 uint32_t _flags_save_string = ndr->flags;
3265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3266 if (r->printer_name) {
3267 uint32_t _relative_save_offset;
3268 _relative_save_offset = ndr->offset;
3269 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3270 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3271 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3272 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3274 ndr->offset = _relative_save_offset;
3276 ndr->flags = _flags_save_string;
3279 uint32_t _flags_save_string = ndr->flags;
3280 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3281 if (r->server_name) {
3282 uint32_t _relative_save_offset;
3283 _relative_save_offset = ndr->offset;
3284 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3285 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3286 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3287 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3289 ndr->offset = _relative_save_offset;
3291 ndr->flags = _flags_save_string;
3294 uint32_t _flags_save_string = ndr->flags;
3295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3296 if (r->user_name) {
3297 uint32_t _relative_save_offset;
3298 _relative_save_offset = ndr->offset;
3299 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3300 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3301 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3302 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3303 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3304 ndr->offset = _relative_save_offset;
3306 ndr->flags = _flags_save_string;
3309 uint32_t _flags_save_string = ndr->flags;
3310 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3311 if (r->document_name) {
3312 uint32_t _relative_save_offset;
3313 _relative_save_offset = ndr->offset;
3314 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3315 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3316 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3317 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3319 ndr->offset = _relative_save_offset;
3321 ndr->flags = _flags_save_string;
3324 uint32_t _flags_save_string = ndr->flags;
3325 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3326 if (r->notify_name) {
3327 uint32_t _relative_save_offset;
3328 _relative_save_offset = ndr->offset;
3329 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3330 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3331 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3332 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3333 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3334 ndr->offset = _relative_save_offset;
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 if (r->data_type) {
3342 uint32_t _relative_save_offset;
3343 _relative_save_offset = ndr->offset;
3344 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3345 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3346 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3347 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3349 ndr->offset = _relative_save_offset;
3351 ndr->flags = _flags_save_string;
3354 uint32_t _flags_save_string = ndr->flags;
3355 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3356 if (r->print_processor) {
3357 uint32_t _relative_save_offset;
3358 _relative_save_offset = ndr->offset;
3359 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
3360 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3361 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
3362 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
3363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
3364 ndr->offset = _relative_save_offset;
3366 ndr->flags = _flags_save_string;
3369 uint32_t _flags_save_string = ndr->flags;
3370 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3371 if (r->parameters) {
3372 uint32_t _relative_save_offset;
3373 _relative_save_offset = ndr->offset;
3374 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
3375 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3376 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3377 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
3378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3379 ndr->offset = _relative_save_offset;
3381 ndr->flags = _flags_save_string;
3384 uint32_t _flags_save_string = ndr->flags;
3385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3386 if (r->driver_name) {
3387 uint32_t _relative_save_offset;
3388 _relative_save_offset = ndr->offset;
3389 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
3390 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3391 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
3392 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
3393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
3394 ndr->offset = _relative_save_offset;
3396 ndr->flags = _flags_save_string;
3399 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3401 if (r->devmode) {
3402 uint32_t _relative_save_offset;
3403 _relative_save_offset = ndr->offset;
3404 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
3405 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3406 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3408 struct ndr_pull *_ndr_devmode;
3409 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3410 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3411 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
3413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3414 ndr->offset = _relative_save_offset;
3416 ndr->flags = _flags_save_spoolss_DeviceMode;
3419 uint32_t _flags_save_string = ndr->flags;
3420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3421 if (r->text_status) {
3422 uint32_t _relative_save_offset;
3423 _relative_save_offset = ndr->offset;
3424 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3425 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3426 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3427 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3428 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3429 ndr->offset = _relative_save_offset;
3431 ndr->flags = _flags_save_string;
3434 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3436 if (r->secdesc) {
3437 uint32_t _relative_save_offset;
3438 _relative_save_offset = ndr->offset;
3439 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
3440 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3441 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3443 struct ndr_pull *_ndr_secdesc;
3444 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3445 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3446 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3448 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3449 ndr->offset = _relative_save_offset;
3451 ndr->flags = _flags_save_spoolss_security_descriptor;
3454 return NDR_ERR_SUCCESS;
3457 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
3459 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
3460 ndr->depth++;
3461 ndr_print_uint32(ndr, "job_id", r->job_id);
3462 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3463 ndr->depth++;
3464 if (r->printer_name) {
3465 ndr_print_string(ndr, "printer_name", r->printer_name);
3467 ndr->depth--;
3468 ndr_print_ptr(ndr, "server_name", r->server_name);
3469 ndr->depth++;
3470 if (r->server_name) {
3471 ndr_print_string(ndr, "server_name", r->server_name);
3473 ndr->depth--;
3474 ndr_print_ptr(ndr, "user_name", r->user_name);
3475 ndr->depth++;
3476 if (r->user_name) {
3477 ndr_print_string(ndr, "user_name", r->user_name);
3479 ndr->depth--;
3480 ndr_print_ptr(ndr, "document_name", r->document_name);
3481 ndr->depth++;
3482 if (r->document_name) {
3483 ndr_print_string(ndr, "document_name", r->document_name);
3485 ndr->depth--;
3486 ndr_print_ptr(ndr, "notify_name", r->notify_name);
3487 ndr->depth++;
3488 if (r->notify_name) {
3489 ndr_print_string(ndr, "notify_name", r->notify_name);
3491 ndr->depth--;
3492 ndr_print_ptr(ndr, "data_type", r->data_type);
3493 ndr->depth++;
3494 if (r->data_type) {
3495 ndr_print_string(ndr, "data_type", r->data_type);
3497 ndr->depth--;
3498 ndr_print_ptr(ndr, "print_processor", r->print_processor);
3499 ndr->depth++;
3500 if (r->print_processor) {
3501 ndr_print_string(ndr, "print_processor", r->print_processor);
3503 ndr->depth--;
3504 ndr_print_ptr(ndr, "parameters", r->parameters);
3505 ndr->depth++;
3506 if (r->parameters) {
3507 ndr_print_string(ndr, "parameters", r->parameters);
3509 ndr->depth--;
3510 ndr_print_ptr(ndr, "driver_name", r->driver_name);
3511 ndr->depth++;
3512 if (r->driver_name) {
3513 ndr_print_string(ndr, "driver_name", r->driver_name);
3515 ndr->depth--;
3516 ndr_print_ptr(ndr, "devmode", r->devmode);
3517 ndr->depth++;
3518 if (r->devmode) {
3519 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3521 ndr->depth--;
3522 ndr_print_ptr(ndr, "text_status", r->text_status);
3523 ndr->depth++;
3524 if (r->text_status) {
3525 ndr_print_string(ndr, "text_status", r->text_status);
3527 ndr->depth--;
3528 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3529 ndr->depth++;
3530 if (r->secdesc) {
3531 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
3533 ndr->depth--;
3534 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3535 ndr_print_uint32(ndr, "priority", r->priority);
3536 ndr_print_uint32(ndr, "position", r->position);
3537 ndr_print_uint32(ndr, "start_time", r->start_time);
3538 ndr_print_uint32(ndr, "until_time", r->until_time);
3539 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3540 ndr_print_uint32(ndr, "size", r->size);
3541 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3542 ndr_print_uint32(ndr, "time", r->time);
3543 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3544 ndr->depth--;
3547 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
3549 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
3552 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
3554 if (ndr_flags & NDR_SCALARS) {
3555 NDR_CHECK(ndr_push_align(ndr, 4));
3556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
3558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
3560 if (ndr_flags & NDR_BUFFERS) {
3562 return NDR_ERR_SUCCESS;
3565 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
3567 if (ndr_flags & NDR_SCALARS) {
3568 NDR_CHECK(ndr_pull_align(ndr, 4));
3569 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3570 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
3571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
3573 if (ndr_flags & NDR_BUFFERS) {
3575 return NDR_ERR_SUCCESS;
3578 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
3580 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
3581 ndr->depth++;
3582 ndr_print_uint32(ndr, "job_id", r->job_id);
3583 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
3584 ndr_print_uint32(ndr, "reserved", r->reserved);
3585 ndr->depth--;
3588 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
3590 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
3593 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
3595 if (ndr_flags & NDR_SCALARS) {
3596 NDR_CHECK(ndr_push_align(ndr, 4));
3597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3599 uint32_t _flags_save_string = ndr->flags;
3600 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3601 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3602 ndr->flags = _flags_save_string;
3605 uint32_t _flags_save_string = ndr->flags;
3606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3607 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3608 ndr->flags = _flags_save_string;
3611 uint32_t _flags_save_string = ndr->flags;
3612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3613 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3614 ndr->flags = _flags_save_string;
3617 uint32_t _flags_save_string = ndr->flags;
3618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3619 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3620 ndr->flags = _flags_save_string;
3623 uint32_t _flags_save_string = ndr->flags;
3624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3625 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3626 ndr->flags = _flags_save_string;
3629 uint32_t _flags_save_string = ndr->flags;
3630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3631 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3632 ndr->flags = _flags_save_string;
3635 uint32_t _flags_save_string = ndr->flags;
3636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3637 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3638 ndr->flags = _flags_save_string;
3641 uint32_t _flags_save_string = ndr->flags;
3642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3643 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3644 ndr->flags = _flags_save_string;
3647 uint32_t _flags_save_string = ndr->flags;
3648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3649 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3650 ndr->flags = _flags_save_string;
3653 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3655 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3656 ndr->flags = _flags_save_spoolss_DeviceMode;
3659 uint32_t _flags_save_string = ndr->flags;
3660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3661 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3662 ndr->flags = _flags_save_string;
3665 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3667 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3668 ndr->flags = _flags_save_spoolss_security_descriptor;
3670 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3671 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3676 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3677 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
3682 if (ndr_flags & NDR_BUFFERS) {
3684 uint32_t _flags_save_string = ndr->flags;
3685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3686 if (r->printer_name) {
3687 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3688 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3689 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3691 ndr->flags = _flags_save_string;
3694 uint32_t _flags_save_string = ndr->flags;
3695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3696 if (r->server_name) {
3697 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3698 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3699 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
3701 ndr->flags = _flags_save_string;
3704 uint32_t _flags_save_string = ndr->flags;
3705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3706 if (r->user_name) {
3707 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3708 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3709 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
3711 ndr->flags = _flags_save_string;
3714 uint32_t _flags_save_string = ndr->flags;
3715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3716 if (r->document_name) {
3717 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3718 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3719 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
3721 ndr->flags = _flags_save_string;
3724 uint32_t _flags_save_string = ndr->flags;
3725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3726 if (r->notify_name) {
3727 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
3728 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3729 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
3731 ndr->flags = _flags_save_string;
3734 uint32_t _flags_save_string = ndr->flags;
3735 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3736 if (r->data_type) {
3737 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3738 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3739 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
3741 ndr->flags = _flags_save_string;
3744 uint32_t _flags_save_string = ndr->flags;
3745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3746 if (r->print_processor) {
3747 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
3748 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3749 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
3751 ndr->flags = _flags_save_string;
3754 uint32_t _flags_save_string = ndr->flags;
3755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3756 if (r->parameters) {
3757 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
3758 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3759 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
3761 ndr->flags = _flags_save_string;
3764 uint32_t _flags_save_string = ndr->flags;
3765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3766 if (r->driver_name) {
3767 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
3768 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3769 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
3771 ndr->flags = _flags_save_string;
3774 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3776 if (r->devmode) {
3777 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
3779 struct ndr_push *_ndr_devmode;
3780 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3781 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3782 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
3784 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
3786 ndr->flags = _flags_save_spoolss_DeviceMode;
3789 uint32_t _flags_save_string = ndr->flags;
3790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3791 if (r->text_status) {
3792 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3793 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3794 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3796 ndr->flags = _flags_save_string;
3799 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3801 if (r->secdesc) {
3802 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
3804 struct ndr_push *_ndr_secdesc;
3805 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3806 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3807 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3809 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
3811 ndr->flags = _flags_save_spoolss_security_descriptor;
3814 return NDR_ERR_SUCCESS;
3817 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
3819 uint32_t _ptr_printer_name;
3820 TALLOC_CTX *_mem_save_printer_name_0;
3821 uint32_t _ptr_server_name;
3822 TALLOC_CTX *_mem_save_server_name_0;
3823 uint32_t _ptr_user_name;
3824 TALLOC_CTX *_mem_save_user_name_0;
3825 uint32_t _ptr_document_name;
3826 TALLOC_CTX *_mem_save_document_name_0;
3827 uint32_t _ptr_notify_name;
3828 TALLOC_CTX *_mem_save_notify_name_0;
3829 uint32_t _ptr_data_type;
3830 TALLOC_CTX *_mem_save_data_type_0;
3831 uint32_t _ptr_print_processor;
3832 TALLOC_CTX *_mem_save_print_processor_0;
3833 uint32_t _ptr_parameters;
3834 TALLOC_CTX *_mem_save_parameters_0;
3835 uint32_t _ptr_driver_name;
3836 TALLOC_CTX *_mem_save_driver_name_0;
3837 uint32_t _ptr_devmode;
3838 TALLOC_CTX *_mem_save_devmode_0;
3839 uint32_t _ptr_text_status;
3840 TALLOC_CTX *_mem_save_text_status_0;
3841 uint32_t _ptr_secdesc;
3842 TALLOC_CTX *_mem_save_secdesc_0;
3843 if (ndr_flags & NDR_SCALARS) {
3844 NDR_CHECK(ndr_pull_align(ndr, 4));
3845 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3847 uint32_t _flags_save_string = ndr->flags;
3848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3850 if (_ptr_printer_name) {
3851 NDR_PULL_ALLOC(ndr, r->printer_name);
3852 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3853 } else {
3854 r->printer_name = NULL;
3856 ndr->flags = _flags_save_string;
3859 uint32_t _flags_save_string = ndr->flags;
3860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3862 if (_ptr_server_name) {
3863 NDR_PULL_ALLOC(ndr, r->server_name);
3864 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3865 } else {
3866 r->server_name = NULL;
3868 ndr->flags = _flags_save_string;
3871 uint32_t _flags_save_string = ndr->flags;
3872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3874 if (_ptr_user_name) {
3875 NDR_PULL_ALLOC(ndr, r->user_name);
3876 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3877 } else {
3878 r->user_name = NULL;
3880 ndr->flags = _flags_save_string;
3883 uint32_t _flags_save_string = ndr->flags;
3884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3885 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3886 if (_ptr_document_name) {
3887 NDR_PULL_ALLOC(ndr, r->document_name);
3888 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3889 } else {
3890 r->document_name = NULL;
3892 ndr->flags = _flags_save_string;
3895 uint32_t _flags_save_string = ndr->flags;
3896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3897 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3898 if (_ptr_notify_name) {
3899 NDR_PULL_ALLOC(ndr, r->notify_name);
3900 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3901 } else {
3902 r->notify_name = NULL;
3904 ndr->flags = _flags_save_string;
3907 uint32_t _flags_save_string = ndr->flags;
3908 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3909 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3910 if (_ptr_data_type) {
3911 NDR_PULL_ALLOC(ndr, r->data_type);
3912 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3913 } else {
3914 r->data_type = NULL;
3916 ndr->flags = _flags_save_string;
3919 uint32_t _flags_save_string = ndr->flags;
3920 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3921 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3922 if (_ptr_print_processor) {
3923 NDR_PULL_ALLOC(ndr, r->print_processor);
3924 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3925 } else {
3926 r->print_processor = NULL;
3928 ndr->flags = _flags_save_string;
3931 uint32_t _flags_save_string = ndr->flags;
3932 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3934 if (_ptr_parameters) {
3935 NDR_PULL_ALLOC(ndr, r->parameters);
3936 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3937 } else {
3938 r->parameters = NULL;
3940 ndr->flags = _flags_save_string;
3943 uint32_t _flags_save_string = ndr->flags;
3944 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3945 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3946 if (_ptr_driver_name) {
3947 NDR_PULL_ALLOC(ndr, r->driver_name);
3948 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3949 } else {
3950 r->driver_name = NULL;
3952 ndr->flags = _flags_save_string;
3955 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3956 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3957 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3958 if (_ptr_devmode) {
3959 NDR_PULL_ALLOC(ndr, r->devmode);
3960 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3961 } else {
3962 r->devmode = NULL;
3964 ndr->flags = _flags_save_spoolss_DeviceMode;
3967 uint32_t _flags_save_string = ndr->flags;
3968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3969 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3970 if (_ptr_text_status) {
3971 NDR_PULL_ALLOC(ndr, r->text_status);
3972 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3973 } else {
3974 r->text_status = NULL;
3976 ndr->flags = _flags_save_string;
3979 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3981 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3982 if (_ptr_secdesc) {
3983 NDR_PULL_ALLOC(ndr, r->secdesc);
3984 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3985 } else {
3986 r->secdesc = NULL;
3988 ndr->flags = _flags_save_spoolss_security_descriptor;
3990 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3991 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3992 if (r->priority > 99) {
3993 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3995 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3996 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3997 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3998 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3999 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4000 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4001 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
4005 if (ndr_flags & NDR_BUFFERS) {
4007 uint32_t _flags_save_string = ndr->flags;
4008 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4009 if (r->printer_name) {
4010 uint32_t _relative_save_offset;
4011 _relative_save_offset = ndr->offset;
4012 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4013 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4014 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4015 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4017 ndr->offset = _relative_save_offset;
4019 ndr->flags = _flags_save_string;
4022 uint32_t _flags_save_string = ndr->flags;
4023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4024 if (r->server_name) {
4025 uint32_t _relative_save_offset;
4026 _relative_save_offset = ndr->offset;
4027 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4028 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4029 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4030 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4032 ndr->offset = _relative_save_offset;
4034 ndr->flags = _flags_save_string;
4037 uint32_t _flags_save_string = ndr->flags;
4038 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4039 if (r->user_name) {
4040 uint32_t _relative_save_offset;
4041 _relative_save_offset = ndr->offset;
4042 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4043 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4044 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4045 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4046 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4047 ndr->offset = _relative_save_offset;
4049 ndr->flags = _flags_save_string;
4052 uint32_t _flags_save_string = ndr->flags;
4053 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4054 if (r->document_name) {
4055 uint32_t _relative_save_offset;
4056 _relative_save_offset = ndr->offset;
4057 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4058 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4059 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4060 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4062 ndr->offset = _relative_save_offset;
4064 ndr->flags = _flags_save_string;
4067 uint32_t _flags_save_string = ndr->flags;
4068 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4069 if (r->notify_name) {
4070 uint32_t _relative_save_offset;
4071 _relative_save_offset = ndr->offset;
4072 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4073 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4074 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4075 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4076 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4077 ndr->offset = _relative_save_offset;
4079 ndr->flags = _flags_save_string;
4082 uint32_t _flags_save_string = ndr->flags;
4083 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4084 if (r->data_type) {
4085 uint32_t _relative_save_offset;
4086 _relative_save_offset = ndr->offset;
4087 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4088 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4089 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4090 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4092 ndr->offset = _relative_save_offset;
4094 ndr->flags = _flags_save_string;
4097 uint32_t _flags_save_string = ndr->flags;
4098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4099 if (r->print_processor) {
4100 uint32_t _relative_save_offset;
4101 _relative_save_offset = ndr->offset;
4102 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4103 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4104 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4105 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4107 ndr->offset = _relative_save_offset;
4109 ndr->flags = _flags_save_string;
4112 uint32_t _flags_save_string = ndr->flags;
4113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4114 if (r->parameters) {
4115 uint32_t _relative_save_offset;
4116 _relative_save_offset = ndr->offset;
4117 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4118 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4119 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4120 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4122 ndr->offset = _relative_save_offset;
4124 ndr->flags = _flags_save_string;
4127 uint32_t _flags_save_string = ndr->flags;
4128 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4129 if (r->driver_name) {
4130 uint32_t _relative_save_offset;
4131 _relative_save_offset = ndr->offset;
4132 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4133 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4134 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4135 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4136 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4137 ndr->offset = _relative_save_offset;
4139 ndr->flags = _flags_save_string;
4142 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4144 if (r->devmode) {
4145 uint32_t _relative_save_offset;
4146 _relative_save_offset = ndr->offset;
4147 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4148 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4149 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4151 struct ndr_pull *_ndr_devmode;
4152 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4153 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4154 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
4156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4157 ndr->offset = _relative_save_offset;
4159 ndr->flags = _flags_save_spoolss_DeviceMode;
4162 uint32_t _flags_save_string = ndr->flags;
4163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4164 if (r->text_status) {
4165 uint32_t _relative_save_offset;
4166 _relative_save_offset = ndr->offset;
4167 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4168 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4169 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4170 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4172 ndr->offset = _relative_save_offset;
4174 ndr->flags = _flags_save_string;
4177 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4178 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4179 if (r->secdesc) {
4180 uint32_t _relative_save_offset;
4181 _relative_save_offset = ndr->offset;
4182 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4183 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4184 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4186 struct ndr_pull *_ndr_secdesc;
4187 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4188 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4189 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4192 ndr->offset = _relative_save_offset;
4194 ndr->flags = _flags_save_spoolss_security_descriptor;
4197 return NDR_ERR_SUCCESS;
4200 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4202 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4203 ndr->depth++;
4204 ndr_print_uint32(ndr, "job_id", r->job_id);
4205 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4206 ndr->depth++;
4207 if (r->printer_name) {
4208 ndr_print_string(ndr, "printer_name", r->printer_name);
4210 ndr->depth--;
4211 ndr_print_ptr(ndr, "server_name", r->server_name);
4212 ndr->depth++;
4213 if (r->server_name) {
4214 ndr_print_string(ndr, "server_name", r->server_name);
4216 ndr->depth--;
4217 ndr_print_ptr(ndr, "user_name", r->user_name);
4218 ndr->depth++;
4219 if (r->user_name) {
4220 ndr_print_string(ndr, "user_name", r->user_name);
4222 ndr->depth--;
4223 ndr_print_ptr(ndr, "document_name", r->document_name);
4224 ndr->depth++;
4225 if (r->document_name) {
4226 ndr_print_string(ndr, "document_name", r->document_name);
4228 ndr->depth--;
4229 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4230 ndr->depth++;
4231 if (r->notify_name) {
4232 ndr_print_string(ndr, "notify_name", r->notify_name);
4234 ndr->depth--;
4235 ndr_print_ptr(ndr, "data_type", r->data_type);
4236 ndr->depth++;
4237 if (r->data_type) {
4238 ndr_print_string(ndr, "data_type", r->data_type);
4240 ndr->depth--;
4241 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4242 ndr->depth++;
4243 if (r->print_processor) {
4244 ndr_print_string(ndr, "print_processor", r->print_processor);
4246 ndr->depth--;
4247 ndr_print_ptr(ndr, "parameters", r->parameters);
4248 ndr->depth++;
4249 if (r->parameters) {
4250 ndr_print_string(ndr, "parameters", r->parameters);
4252 ndr->depth--;
4253 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4254 ndr->depth++;
4255 if (r->driver_name) {
4256 ndr_print_string(ndr, "driver_name", r->driver_name);
4258 ndr->depth--;
4259 ndr_print_ptr(ndr, "devmode", r->devmode);
4260 ndr->depth++;
4261 if (r->devmode) {
4262 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4264 ndr->depth--;
4265 ndr_print_ptr(ndr, "text_status", r->text_status);
4266 ndr->depth++;
4267 if (r->text_status) {
4268 ndr_print_string(ndr, "text_status", r->text_status);
4270 ndr->depth--;
4271 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4272 ndr->depth++;
4273 if (r->secdesc) {
4274 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
4276 ndr->depth--;
4277 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4278 ndr_print_uint32(ndr, "priority", r->priority);
4279 ndr_print_uint32(ndr, "position", r->position);
4280 ndr_print_uint32(ndr, "start_time", r->start_time);
4281 ndr_print_uint32(ndr, "until_time", r->until_time);
4282 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4283 ndr_print_uint32(ndr, "size", r->size);
4284 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4285 ndr_print_uint32(ndr, "time", r->time);
4286 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4287 ndr_print_uint32(ndr, "size_high", r->size_high);
4288 ndr->depth--;
4291 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
4293 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
4296 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4298 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4300 uint32_t _flags_save_UNION = ndr->flags;
4301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
4302 if (ndr_flags & NDR_SCALARS) {
4303 int level = ndr_push_get_switch_value(ndr, r);
4304 switch (level) {
4305 case 1: {
4306 NDR_CHECK(ndr_push_align(ndr, 4));
4307 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4308 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4309 break; }
4311 case 2: {
4312 NDR_CHECK(ndr_push_align(ndr, 4));
4313 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4314 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4315 break; }
4317 case 3: {
4318 NDR_CHECK(ndr_push_align(ndr, 4));
4319 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4320 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4321 break; }
4323 case 4: {
4324 NDR_CHECK(ndr_push_align(ndr, 4));
4325 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4326 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4327 break; }
4329 default: {
4330 break; }
4334 if (ndr_flags & NDR_BUFFERS) {
4335 int level = ndr_push_get_switch_value(ndr, r);
4336 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
4337 switch (level) {
4338 case 1:
4339 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4340 break;
4342 case 2:
4343 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4344 break;
4346 case 3:
4347 break;
4349 case 4:
4350 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4351 break;
4353 default:
4354 break;
4358 ndr->flags = _flags_save_UNION;
4360 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
4361 return NDR_ERR_SUCCESS;
4364 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
4366 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
4367 int level;
4369 uint32_t _flags_save_UNION = ndr->flags;
4370 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
4371 level = ndr_pull_get_switch_value(ndr, r);
4372 if (ndr_flags & NDR_SCALARS) {
4373 switch (level) {
4374 case 1: {
4375 NDR_CHECK(ndr_pull_align(ndr, 4));
4376 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4377 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4378 break; }
4380 case 2: {
4381 NDR_CHECK(ndr_pull_align(ndr, 4));
4382 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4383 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4384 break; }
4386 case 3: {
4387 NDR_CHECK(ndr_pull_align(ndr, 4));
4388 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4389 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4390 break; }
4392 case 4: {
4393 NDR_CHECK(ndr_pull_align(ndr, 4));
4394 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4395 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4396 break; }
4398 default: {
4399 break; }
4403 if (ndr_flags & NDR_BUFFERS) {
4404 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
4405 switch (level) {
4406 case 1:
4407 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4408 break;
4410 case 2:
4411 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4412 break;
4414 case 3:
4415 break;
4417 case 4:
4418 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4419 break;
4421 default:
4422 break;
4426 ndr->flags = _flags_save_UNION;
4428 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
4429 return NDR_ERR_SUCCESS;
4432 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
4434 int level;
4436 uint32_t _flags_save_UNION = ndr->flags;
4437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
4438 level = ndr_print_get_switch_value(ndr, r);
4439 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
4440 switch (level) {
4441 case 1:
4442 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
4443 break;
4445 case 2:
4446 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
4447 break;
4449 case 3:
4450 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
4451 break;
4453 case 4:
4454 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
4455 break;
4457 default:
4458 break;
4461 ndr->flags = _flags_save_UNION;
4465 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
4467 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
4468 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
4471 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
4473 if (ndr_flags & NDR_SCALARS) {
4474 NDR_CHECK(ndr_push_align(ndr, 4));
4475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4476 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4477 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4478 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4479 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4480 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4481 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4482 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4487 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4489 if (ndr_flags & NDR_BUFFERS) {
4490 if (r->printer_name) {
4491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4494 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4496 if (r->server_name) {
4497 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4500 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4502 if (r->user_name) {
4503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4504 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4506 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4508 if (r->document_name) {
4509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4512 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4514 if (r->data_type) {
4515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4518 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4520 if (r->text_status) {
4521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4523 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4524 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4527 return NDR_ERR_SUCCESS;
4530 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
4532 uint32_t _ptr_printer_name;
4533 TALLOC_CTX *_mem_save_printer_name_0;
4534 uint32_t _ptr_server_name;
4535 TALLOC_CTX *_mem_save_server_name_0;
4536 uint32_t _ptr_user_name;
4537 TALLOC_CTX *_mem_save_user_name_0;
4538 uint32_t _ptr_document_name;
4539 TALLOC_CTX *_mem_save_document_name_0;
4540 uint32_t _ptr_data_type;
4541 TALLOC_CTX *_mem_save_data_type_0;
4542 uint32_t _ptr_text_status;
4543 TALLOC_CTX *_mem_save_text_status_0;
4544 if (ndr_flags & NDR_SCALARS) {
4545 NDR_CHECK(ndr_pull_align(ndr, 4));
4546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4548 if (_ptr_printer_name) {
4549 NDR_PULL_ALLOC(ndr, r->printer_name);
4550 } else {
4551 r->printer_name = NULL;
4553 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4554 if (_ptr_server_name) {
4555 NDR_PULL_ALLOC(ndr, r->server_name);
4556 } else {
4557 r->server_name = NULL;
4559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4560 if (_ptr_user_name) {
4561 NDR_PULL_ALLOC(ndr, r->user_name);
4562 } else {
4563 r->user_name = NULL;
4565 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4566 if (_ptr_document_name) {
4567 NDR_PULL_ALLOC(ndr, r->document_name);
4568 } else {
4569 r->document_name = NULL;
4571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4572 if (_ptr_data_type) {
4573 NDR_PULL_ALLOC(ndr, r->data_type);
4574 } else {
4575 r->data_type = NULL;
4577 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4578 if (_ptr_text_status) {
4579 NDR_PULL_ALLOC(ndr, r->text_status);
4580 } else {
4581 r->text_status = NULL;
4583 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4584 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4585 if (r->priority > 99) {
4586 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4588 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4589 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4590 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4591 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4593 if (ndr_flags & NDR_BUFFERS) {
4594 if (r->printer_name) {
4595 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4596 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4597 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4598 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4599 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4600 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));
4602 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4603 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
4604 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4606 if (r->server_name) {
4607 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4608 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4609 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4610 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4611 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4612 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));
4614 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4615 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
4616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4618 if (r->user_name) {
4619 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4620 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4621 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4622 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4623 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4624 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));
4626 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4627 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
4628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4630 if (r->document_name) {
4631 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4632 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4633 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4634 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4635 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4636 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));
4638 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4639 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
4640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4642 if (r->data_type) {
4643 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4644 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4645 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4646 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4647 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4648 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));
4650 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4651 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
4652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4654 if (r->text_status) {
4655 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4656 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4657 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
4658 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
4659 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
4660 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));
4662 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
4663 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
4664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4667 return NDR_ERR_SUCCESS;
4670 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
4672 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
4673 ndr->depth++;
4674 ndr_print_uint32(ndr, "job_id", r->job_id);
4675 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4676 ndr->depth++;
4677 if (r->printer_name) {
4678 ndr_print_string(ndr, "printer_name", r->printer_name);
4680 ndr->depth--;
4681 ndr_print_ptr(ndr, "server_name", r->server_name);
4682 ndr->depth++;
4683 if (r->server_name) {
4684 ndr_print_string(ndr, "server_name", r->server_name);
4686 ndr->depth--;
4687 ndr_print_ptr(ndr, "user_name", r->user_name);
4688 ndr->depth++;
4689 if (r->user_name) {
4690 ndr_print_string(ndr, "user_name", r->user_name);
4692 ndr->depth--;
4693 ndr_print_ptr(ndr, "document_name", r->document_name);
4694 ndr->depth++;
4695 if (r->document_name) {
4696 ndr_print_string(ndr, "document_name", r->document_name);
4698 ndr->depth--;
4699 ndr_print_ptr(ndr, "data_type", r->data_type);
4700 ndr->depth++;
4701 if (r->data_type) {
4702 ndr_print_string(ndr, "data_type", r->data_type);
4704 ndr->depth--;
4705 ndr_print_ptr(ndr, "text_status", r->text_status);
4706 ndr->depth++;
4707 if (r->text_status) {
4708 ndr_print_string(ndr, "text_status", r->text_status);
4710 ndr->depth--;
4711 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4712 ndr_print_uint32(ndr, "priority", r->priority);
4713 ndr_print_uint32(ndr, "position", r->position);
4714 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4715 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4716 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4717 ndr->depth--;
4720 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
4722 if (ndr_flags & NDR_SCALARS) {
4723 NDR_CHECK(ndr_push_align(ndr, 4));
4724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4725 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4726 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4727 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4728 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4729 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
4730 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4731 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
4732 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
4733 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
4735 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
4737 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4744 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4748 if (ndr_flags & NDR_BUFFERS) {
4749 if (r->printer_name) {
4750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4753 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4755 if (r->server_name) {
4756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4759 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4761 if (r->user_name) {
4762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4765 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4767 if (r->document_name) {
4768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4771 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4773 if (r->notify_name) {
4774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
4775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
4777 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4779 if (r->data_type) {
4780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4783 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4785 if (r->print_processor) {
4786 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
4787 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
4789 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4791 if (r->parameters) {
4792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
4793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
4795 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4797 if (r->driver_name) {
4798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4801 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4803 if (r->text_status) {
4804 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4807 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4810 return NDR_ERR_SUCCESS;
4813 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
4815 uint32_t _ptr_printer_name;
4816 TALLOC_CTX *_mem_save_printer_name_0;
4817 uint32_t _ptr_server_name;
4818 TALLOC_CTX *_mem_save_server_name_0;
4819 uint32_t _ptr_user_name;
4820 TALLOC_CTX *_mem_save_user_name_0;
4821 uint32_t _ptr_document_name;
4822 TALLOC_CTX *_mem_save_document_name_0;
4823 uint32_t _ptr_notify_name;
4824 TALLOC_CTX *_mem_save_notify_name_0;
4825 uint32_t _ptr_data_type;
4826 TALLOC_CTX *_mem_save_data_type_0;
4827 uint32_t _ptr_print_processor;
4828 TALLOC_CTX *_mem_save_print_processor_0;
4829 uint32_t _ptr_parameters;
4830 TALLOC_CTX *_mem_save_parameters_0;
4831 uint32_t _ptr_driver_name;
4832 TALLOC_CTX *_mem_save_driver_name_0;
4833 uint32_t _ptr_text_status;
4834 TALLOC_CTX *_mem_save_text_status_0;
4835 if (ndr_flags & NDR_SCALARS) {
4836 NDR_CHECK(ndr_pull_align(ndr, 4));
4837 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4838 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4839 if (_ptr_printer_name) {
4840 NDR_PULL_ALLOC(ndr, r->printer_name);
4841 } else {
4842 r->printer_name = NULL;
4844 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4845 if (_ptr_server_name) {
4846 NDR_PULL_ALLOC(ndr, r->server_name);
4847 } else {
4848 r->server_name = NULL;
4850 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4851 if (_ptr_user_name) {
4852 NDR_PULL_ALLOC(ndr, r->user_name);
4853 } else {
4854 r->user_name = NULL;
4856 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4857 if (_ptr_document_name) {
4858 NDR_PULL_ALLOC(ndr, r->document_name);
4859 } else {
4860 r->document_name = NULL;
4862 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4863 if (_ptr_notify_name) {
4864 NDR_PULL_ALLOC(ndr, r->notify_name);
4865 } else {
4866 r->notify_name = NULL;
4868 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4869 if (_ptr_data_type) {
4870 NDR_PULL_ALLOC(ndr, r->data_type);
4871 } else {
4872 r->data_type = NULL;
4874 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4875 if (_ptr_print_processor) {
4876 NDR_PULL_ALLOC(ndr, r->print_processor);
4877 } else {
4878 r->print_processor = NULL;
4880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4881 if (_ptr_parameters) {
4882 NDR_PULL_ALLOC(ndr, r->parameters);
4883 } else {
4884 r->parameters = NULL;
4886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4887 if (_ptr_driver_name) {
4888 NDR_PULL_ALLOC(ndr, r->driver_name);
4889 } else {
4890 r->driver_name = NULL;
4892 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
4893 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4894 if (_ptr_text_status) {
4895 NDR_PULL_ALLOC(ndr, r->text_status);
4896 } else {
4897 r->text_status = NULL;
4899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
4900 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4901 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4902 if (r->priority > 99) {
4903 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4905 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4908 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4909 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4910 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4911 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4912 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4914 if (ndr_flags & NDR_BUFFERS) {
4915 if (r->printer_name) {
4916 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4917 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4918 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4919 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4920 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4921 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));
4923 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4924 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
4925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4927 if (r->server_name) {
4928 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4929 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4930 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4931 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4932 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4933 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));
4935 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4936 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
4937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4939 if (r->user_name) {
4940 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4941 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4942 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4943 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4944 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4945 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));
4947 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4948 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
4949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4951 if (r->document_name) {
4952 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4953 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4954 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4955 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4956 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4957 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));
4959 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4960 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
4961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4963 if (r->notify_name) {
4964 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4965 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4966 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
4967 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
4968 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
4969 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));
4971 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
4972 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
4973 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4975 if (r->data_type) {
4976 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4977 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4978 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4979 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4980 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4981 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));
4983 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4984 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
4985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4987 if (r->print_processor) {
4988 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4989 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4990 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
4991 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
4992 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
4993 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));
4995 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
4996 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
4997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4999 if (r->parameters) {
5000 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5001 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5002 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5003 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5004 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5005 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));
5007 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5008 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5011 if (r->driver_name) {
5012 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5013 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5014 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5015 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5016 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5017 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));
5019 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5020 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5023 if (r->text_status) {
5024 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5025 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5026 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5027 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5028 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5029 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));
5031 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5032 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5036 return NDR_ERR_SUCCESS;
5039 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
5041 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
5042 ndr->depth++;
5043 ndr_print_uint32(ndr, "job_id", r->job_id);
5044 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5045 ndr->depth++;
5046 if (r->printer_name) {
5047 ndr_print_string(ndr, "printer_name", r->printer_name);
5049 ndr->depth--;
5050 ndr_print_ptr(ndr, "server_name", r->server_name);
5051 ndr->depth++;
5052 if (r->server_name) {
5053 ndr_print_string(ndr, "server_name", r->server_name);
5055 ndr->depth--;
5056 ndr_print_ptr(ndr, "user_name", r->user_name);
5057 ndr->depth++;
5058 if (r->user_name) {
5059 ndr_print_string(ndr, "user_name", r->user_name);
5061 ndr->depth--;
5062 ndr_print_ptr(ndr, "document_name", r->document_name);
5063 ndr->depth++;
5064 if (r->document_name) {
5065 ndr_print_string(ndr, "document_name", r->document_name);
5067 ndr->depth--;
5068 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5069 ndr->depth++;
5070 if (r->notify_name) {
5071 ndr_print_string(ndr, "notify_name", r->notify_name);
5073 ndr->depth--;
5074 ndr_print_ptr(ndr, "data_type", r->data_type);
5075 ndr->depth++;
5076 if (r->data_type) {
5077 ndr_print_string(ndr, "data_type", r->data_type);
5079 ndr->depth--;
5080 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5081 ndr->depth++;
5082 if (r->print_processor) {
5083 ndr_print_string(ndr, "print_processor", r->print_processor);
5085 ndr->depth--;
5086 ndr_print_ptr(ndr, "parameters", r->parameters);
5087 ndr->depth++;
5088 if (r->parameters) {
5089 ndr_print_string(ndr, "parameters", r->parameters);
5091 ndr->depth--;
5092 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5093 ndr->depth++;
5094 if (r->driver_name) {
5095 ndr_print_string(ndr, "driver_name", r->driver_name);
5097 ndr->depth--;
5098 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5099 ndr_print_ptr(ndr, "text_status", r->text_status);
5100 ndr->depth++;
5101 if (r->text_status) {
5102 ndr_print_string(ndr, "text_status", r->text_status);
5104 ndr->depth--;
5105 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5106 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5107 ndr_print_uint32(ndr, "priority", r->priority);
5108 ndr_print_uint32(ndr, "position", r->position);
5109 ndr_print_uint32(ndr, "start_time", r->start_time);
5110 ndr_print_uint32(ndr, "until_time", r->until_time);
5111 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5112 ndr_print_uint32(ndr, "size", r->size);
5113 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5114 ndr_print_uint32(ndr, "time", r->time);
5115 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5116 ndr->depth--;
5119 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
5121 if (ndr_flags & NDR_SCALARS) {
5122 NDR_CHECK(ndr_push_align(ndr, 4));
5123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5124 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5125 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5126 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5127 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5128 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5129 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5130 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5131 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5132 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5134 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5136 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5143 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5148 if (ndr_flags & NDR_BUFFERS) {
5149 if (r->printer_name) {
5150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5153 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5155 if (r->server_name) {
5156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5159 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5161 if (r->user_name) {
5162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5165 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5167 if (r->document_name) {
5168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5171 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5173 if (r->notify_name) {
5174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5177 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5179 if (r->data_type) {
5180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5182 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5183 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5185 if (r->print_processor) {
5186 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5187 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5188 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5189 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5191 if (r->parameters) {
5192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5193 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5195 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5197 if (r->driver_name) {
5198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5201 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5203 if (r->text_status) {
5204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5207 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5210 return NDR_ERR_SUCCESS;
5213 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5215 uint32_t _ptr_printer_name;
5216 TALLOC_CTX *_mem_save_printer_name_0;
5217 uint32_t _ptr_server_name;
5218 TALLOC_CTX *_mem_save_server_name_0;
5219 uint32_t _ptr_user_name;
5220 TALLOC_CTX *_mem_save_user_name_0;
5221 uint32_t _ptr_document_name;
5222 TALLOC_CTX *_mem_save_document_name_0;
5223 uint32_t _ptr_notify_name;
5224 TALLOC_CTX *_mem_save_notify_name_0;
5225 uint32_t _ptr_data_type;
5226 TALLOC_CTX *_mem_save_data_type_0;
5227 uint32_t _ptr_print_processor;
5228 TALLOC_CTX *_mem_save_print_processor_0;
5229 uint32_t _ptr_parameters;
5230 TALLOC_CTX *_mem_save_parameters_0;
5231 uint32_t _ptr_driver_name;
5232 TALLOC_CTX *_mem_save_driver_name_0;
5233 uint32_t _ptr_text_status;
5234 TALLOC_CTX *_mem_save_text_status_0;
5235 if (ndr_flags & NDR_SCALARS) {
5236 NDR_CHECK(ndr_pull_align(ndr, 4));
5237 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5238 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5239 if (_ptr_printer_name) {
5240 NDR_PULL_ALLOC(ndr, r->printer_name);
5241 } else {
5242 r->printer_name = NULL;
5244 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5245 if (_ptr_server_name) {
5246 NDR_PULL_ALLOC(ndr, r->server_name);
5247 } else {
5248 r->server_name = NULL;
5250 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5251 if (_ptr_user_name) {
5252 NDR_PULL_ALLOC(ndr, r->user_name);
5253 } else {
5254 r->user_name = NULL;
5256 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5257 if (_ptr_document_name) {
5258 NDR_PULL_ALLOC(ndr, r->document_name);
5259 } else {
5260 r->document_name = NULL;
5262 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5263 if (_ptr_notify_name) {
5264 NDR_PULL_ALLOC(ndr, r->notify_name);
5265 } else {
5266 r->notify_name = NULL;
5268 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5269 if (_ptr_data_type) {
5270 NDR_PULL_ALLOC(ndr, r->data_type);
5271 } else {
5272 r->data_type = NULL;
5274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5275 if (_ptr_print_processor) {
5276 NDR_PULL_ALLOC(ndr, r->print_processor);
5277 } else {
5278 r->print_processor = NULL;
5280 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5281 if (_ptr_parameters) {
5282 NDR_PULL_ALLOC(ndr, r->parameters);
5283 } else {
5284 r->parameters = NULL;
5286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5287 if (_ptr_driver_name) {
5288 NDR_PULL_ALLOC(ndr, r->driver_name);
5289 } else {
5290 r->driver_name = NULL;
5292 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5293 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5294 if (_ptr_text_status) {
5295 NDR_PULL_ALLOC(ndr, r->text_status);
5296 } else {
5297 r->text_status = NULL;
5299 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5300 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5301 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5302 if (r->priority > 99) {
5303 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5306 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5307 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5308 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5309 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5310 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5311 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5312 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5315 if (ndr_flags & NDR_BUFFERS) {
5316 if (r->printer_name) {
5317 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5318 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5319 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5320 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5321 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5322 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
5324 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5325 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5328 if (r->server_name) {
5329 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5330 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5331 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5332 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5333 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5334 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
5336 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5337 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5340 if (r->user_name) {
5341 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5342 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5343 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5344 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5345 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5346 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
5348 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5349 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5352 if (r->document_name) {
5353 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5354 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5355 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5356 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5357 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5358 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
5360 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5361 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5362 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5364 if (r->notify_name) {
5365 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5366 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5367 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5368 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5369 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5370 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));
5372 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5373 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5376 if (r->data_type) {
5377 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5378 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5379 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5380 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5381 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5382 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));
5384 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5385 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5386 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5388 if (r->print_processor) {
5389 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5390 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5391 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5392 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5393 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5394 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));
5396 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5397 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5400 if (r->parameters) {
5401 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5402 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5403 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5404 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5405 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5406 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));
5408 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5409 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5412 if (r->driver_name) {
5413 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5414 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5415 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5416 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5417 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5418 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));
5420 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5421 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5422 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5424 if (r->text_status) {
5425 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5426 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5427 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5428 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5429 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5430 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));
5432 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5433 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5434 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5437 return NDR_ERR_SUCCESS;
5440 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
5442 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
5443 ndr->depth++;
5444 ndr_print_uint32(ndr, "job_id", r->job_id);
5445 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5446 ndr->depth++;
5447 if (r->printer_name) {
5448 ndr_print_string(ndr, "printer_name", r->printer_name);
5450 ndr->depth--;
5451 ndr_print_ptr(ndr, "server_name", r->server_name);
5452 ndr->depth++;
5453 if (r->server_name) {
5454 ndr_print_string(ndr, "server_name", r->server_name);
5456 ndr->depth--;
5457 ndr_print_ptr(ndr, "user_name", r->user_name);
5458 ndr->depth++;
5459 if (r->user_name) {
5460 ndr_print_string(ndr, "user_name", r->user_name);
5462 ndr->depth--;
5463 ndr_print_ptr(ndr, "document_name", r->document_name);
5464 ndr->depth++;
5465 if (r->document_name) {
5466 ndr_print_string(ndr, "document_name", r->document_name);
5468 ndr->depth--;
5469 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5470 ndr->depth++;
5471 if (r->notify_name) {
5472 ndr_print_string(ndr, "notify_name", r->notify_name);
5474 ndr->depth--;
5475 ndr_print_ptr(ndr, "data_type", r->data_type);
5476 ndr->depth++;
5477 if (r->data_type) {
5478 ndr_print_string(ndr, "data_type", r->data_type);
5480 ndr->depth--;
5481 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5482 ndr->depth++;
5483 if (r->print_processor) {
5484 ndr_print_string(ndr, "print_processor", r->print_processor);
5486 ndr->depth--;
5487 ndr_print_ptr(ndr, "parameters", r->parameters);
5488 ndr->depth++;
5489 if (r->parameters) {
5490 ndr_print_string(ndr, "parameters", r->parameters);
5492 ndr->depth--;
5493 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5494 ndr->depth++;
5495 if (r->driver_name) {
5496 ndr_print_string(ndr, "driver_name", r->driver_name);
5498 ndr->depth--;
5499 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5500 ndr_print_ptr(ndr, "text_status", r->text_status);
5501 ndr->depth++;
5502 if (r->text_status) {
5503 ndr_print_string(ndr, "text_status", r->text_status);
5505 ndr->depth--;
5506 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5507 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5508 ndr_print_uint32(ndr, "priority", r->priority);
5509 ndr_print_uint32(ndr, "position", r->position);
5510 ndr_print_uint32(ndr, "start_time", r->start_time);
5511 ndr_print_uint32(ndr, "until_time", r->until_time);
5512 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5513 ndr_print_uint32(ndr, "size", r->size);
5514 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5515 ndr_print_uint32(ndr, "time", r->time);
5516 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5517 ndr_print_uint32(ndr, "size_high", r->size_high);
5518 ndr->depth--;
5521 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
5523 if (ndr_flags & NDR_SCALARS) {
5524 int level = ndr_push_get_switch_value(ndr, r);
5525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5526 switch (level) {
5527 case 1: {
5528 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5529 break; }
5531 case 2: {
5532 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5533 break; }
5535 case 3: {
5536 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5537 break; }
5539 case 4: {
5540 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
5541 break; }
5543 default: {
5544 break; }
5548 if (ndr_flags & NDR_BUFFERS) {
5549 int level = ndr_push_get_switch_value(ndr, r);
5550 switch (level) {
5551 case 1:
5552 if (r->info1) {
5553 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5555 break;
5557 case 2:
5558 if (r->info2) {
5559 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5561 break;
5563 case 3:
5564 if (r->info3) {
5565 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5567 break;
5569 case 4:
5570 if (r->info4) {
5571 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5573 break;
5575 default:
5576 break;
5580 return NDR_ERR_SUCCESS;
5583 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
5585 int level;
5586 uint32_t _level;
5587 TALLOC_CTX *_mem_save_info1_0;
5588 TALLOC_CTX *_mem_save_info2_0;
5589 TALLOC_CTX *_mem_save_info3_0;
5590 TALLOC_CTX *_mem_save_info4_0;
5591 level = ndr_pull_get_switch_value(ndr, r);
5592 if (ndr_flags & NDR_SCALARS) {
5593 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5594 if (_level != level) {
5595 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5597 switch (level) {
5598 case 1: {
5599 uint32_t _ptr_info1;
5600 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5601 if (_ptr_info1) {
5602 NDR_PULL_ALLOC(ndr, r->info1);
5603 } else {
5604 r->info1 = NULL;
5606 break; }
5608 case 2: {
5609 uint32_t _ptr_info2;
5610 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5611 if (_ptr_info2) {
5612 NDR_PULL_ALLOC(ndr, r->info2);
5613 } else {
5614 r->info2 = NULL;
5616 break; }
5618 case 3: {
5619 uint32_t _ptr_info3;
5620 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5621 if (_ptr_info3) {
5622 NDR_PULL_ALLOC(ndr, r->info3);
5623 } else {
5624 r->info3 = NULL;
5626 break; }
5628 case 4: {
5629 uint32_t _ptr_info4;
5630 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
5631 if (_ptr_info4) {
5632 NDR_PULL_ALLOC(ndr, r->info4);
5633 } else {
5634 r->info4 = NULL;
5636 break; }
5638 default: {
5639 break; }
5643 if (ndr_flags & NDR_BUFFERS) {
5644 switch (level) {
5645 case 1:
5646 if (r->info1) {
5647 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5648 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5649 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5650 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5652 break;
5654 case 2:
5655 if (r->info2) {
5656 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5657 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5658 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5661 break;
5663 case 3:
5664 if (r->info3) {
5665 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5666 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5667 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5668 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5670 break;
5672 case 4:
5673 if (r->info4) {
5674 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
5675 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
5676 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
5679 break;
5681 default:
5682 break;
5686 return NDR_ERR_SUCCESS;
5689 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
5691 int level;
5692 level = ndr_print_get_switch_value(ndr, r);
5693 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
5694 switch (level) {
5695 case 1:
5696 ndr_print_ptr(ndr, "info1", r->info1);
5697 ndr->depth++;
5698 if (r->info1) {
5699 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
5701 ndr->depth--;
5702 break;
5704 case 2:
5705 ndr_print_ptr(ndr, "info2", r->info2);
5706 ndr->depth++;
5707 if (r->info2) {
5708 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
5710 ndr->depth--;
5711 break;
5713 case 3:
5714 ndr_print_ptr(ndr, "info3", r->info3);
5715 ndr->depth++;
5716 if (r->info3) {
5717 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
5719 ndr->depth--;
5720 break;
5722 case 4:
5723 ndr_print_ptr(ndr, "info4", r->info4);
5724 ndr->depth++;
5725 if (r->info4) {
5726 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
5728 ndr->depth--;
5729 break;
5731 default:
5732 break;
5737 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
5739 if (ndr_flags & NDR_SCALARS) {
5740 NDR_CHECK(ndr_push_align(ndr, 4));
5741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
5742 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
5743 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5745 if (ndr_flags & NDR_BUFFERS) {
5746 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5748 return NDR_ERR_SUCCESS;
5751 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
5753 if (ndr_flags & NDR_SCALARS) {
5754 NDR_CHECK(ndr_pull_align(ndr, 4));
5755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
5756 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
5757 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5759 if (ndr_flags & NDR_BUFFERS) {
5760 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5762 return NDR_ERR_SUCCESS;
5765 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
5767 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
5768 ndr->depth++;
5769 ndr_print_uint32(ndr, "level", r->level);
5770 ndr_print_set_switch_value(ndr, &r->info, r->level);
5771 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
5772 ndr->depth--;
5775 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
5777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5778 return NDR_ERR_SUCCESS;
5781 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
5783 uint32_t v;
5784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5785 *r = v;
5786 return NDR_ERR_SUCCESS;
5789 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
5791 const char *val = NULL;
5793 switch (r) {
5794 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
5795 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
5796 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
5797 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
5798 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
5799 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
5800 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
5801 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
5802 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
5804 ndr_print_enum(ndr, name, "ENUM", val, r);
5807 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
5809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5810 return NDR_ERR_SUCCESS;
5813 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
5815 uint32_t v;
5816 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5817 *r = v;
5818 return NDR_ERR_SUCCESS;
5821 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
5823 const char *val = NULL;
5825 switch (r) {
5826 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
5827 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
5828 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
5829 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
5830 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
5832 ndr_print_enum(ndr, name, "ENUM", val, r);
5835 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
5837 if (ndr_flags & NDR_SCALARS) {
5838 NDR_CHECK(ndr_push_align(ndr, 4));
5839 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
5840 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
5841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
5842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
5843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
5844 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
5845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
5846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
5848 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
5849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
5850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
5851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
5852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
5853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
5854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
5855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
5856 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
5857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
5858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
5859 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
5860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
5861 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
5862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
5863 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
5864 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
5865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
5866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
5867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
5869 if (ndr_flags & NDR_BUFFERS) {
5870 if (r->servername) {
5871 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5872 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5874 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5876 if (r->printername) {
5877 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5880 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5883 return NDR_ERR_SUCCESS;
5886 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
5888 uint32_t _ptr_servername;
5889 TALLOC_CTX *_mem_save_servername_0;
5890 uint32_t _ptr_printername;
5891 TALLOC_CTX *_mem_save_printername_0;
5892 if (ndr_flags & NDR_SCALARS) {
5893 NDR_CHECK(ndr_pull_align(ndr, 4));
5894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
5895 if (_ptr_servername) {
5896 NDR_PULL_ALLOC(ndr, r->servername);
5897 } else {
5898 r->servername = NULL;
5900 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
5901 if (_ptr_printername) {
5902 NDR_PULL_ALLOC(ndr, r->printername);
5903 } else {
5904 r->printername = NULL;
5906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
5907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
5908 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
5909 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
5910 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
5911 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5912 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
5913 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
5914 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
5915 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
5916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
5917 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
5918 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
5919 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
5920 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
5921 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
5922 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
5923 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
5924 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
5925 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
5926 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
5927 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
5928 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
5929 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
5930 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
5931 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
5932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
5934 if (ndr_flags & NDR_BUFFERS) {
5935 if (r->servername) {
5936 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
5937 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
5938 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
5939 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
5940 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
5941 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));
5943 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
5944 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
5945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
5947 if (r->printername) {
5948 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
5949 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
5950 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
5951 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
5952 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
5953 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));
5955 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
5956 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
5957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
5960 return NDR_ERR_SUCCESS;
5963 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
5965 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
5966 ndr->depth++;
5967 ndr_print_ptr(ndr, "servername", r->servername);
5968 ndr->depth++;
5969 if (r->servername) {
5970 ndr_print_string(ndr, "servername", r->servername);
5972 ndr->depth--;
5973 ndr_print_ptr(ndr, "printername", r->printername);
5974 ndr->depth++;
5975 if (r->printername) {
5976 ndr_print_string(ndr, "printername", r->printername);
5978 ndr->depth--;
5979 ndr_print_uint32(ndr, "cjobs", r->cjobs);
5980 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
5981 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
5982 ndr_print_spoolss_Time(ndr, "time", &r->time);
5983 ndr_print_uint32(ndr, "global_counter", r->global_counter);
5984 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5985 ndr_print_uint32(ndr, "version", r->version);
5986 ndr_print_uint32(ndr, "free_build", r->free_build);
5987 ndr_print_uint32(ndr, "spooling", r->spooling);
5988 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
5989 ndr_print_uint32(ndr, "session_counter", r->session_counter);
5990 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
5991 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
5992 ndr_print_uint32(ndr, "job_error", r->job_error);
5993 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
5994 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
5995 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
5996 ndr_print_uint32(ndr, "change_id", r->change_id);
5997 ndr_print_WERROR(ndr, "last_error", r->last_error);
5998 ndr_print_uint32(ndr, "status", r->status);
5999 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
6000 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
6001 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
6002 ndr_print_uint16(ndr, "processor_level", r->processor_level);
6003 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
6004 ndr_print_uint32(ndr, "reserved2", r->reserved2);
6005 ndr_print_uint32(ndr, "reserved3", r->reserved3);
6006 ndr->depth--;
6009 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
6011 if (ndr_flags & NDR_SCALARS) {
6012 NDR_CHECK(ndr_push_align(ndr, 4));
6013 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
6014 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
6015 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
6016 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6018 if (ndr_flags & NDR_BUFFERS) {
6019 if (r->description) {
6020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6022 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6023 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6025 if (r->name) {
6026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6029 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6031 if (r->comment) {
6032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6035 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6038 return NDR_ERR_SUCCESS;
6041 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
6043 uint32_t _ptr_description;
6044 TALLOC_CTX *_mem_save_description_0;
6045 uint32_t _ptr_name;
6046 TALLOC_CTX *_mem_save_name_0;
6047 uint32_t _ptr_comment;
6048 TALLOC_CTX *_mem_save_comment_0;
6049 if (ndr_flags & NDR_SCALARS) {
6050 NDR_CHECK(ndr_pull_align(ndr, 4));
6051 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
6052 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
6053 if (_ptr_description) {
6054 NDR_PULL_ALLOC(ndr, r->description);
6055 } else {
6056 r->description = NULL;
6058 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
6059 if (_ptr_name) {
6060 NDR_PULL_ALLOC(ndr, r->name);
6061 } else {
6062 r->name = NULL;
6064 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6065 if (_ptr_comment) {
6066 NDR_PULL_ALLOC(ndr, r->comment);
6067 } else {
6068 r->comment = NULL;
6071 if (ndr_flags & NDR_BUFFERS) {
6072 if (r->description) {
6073 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6074 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6075 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6076 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6077 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
6078 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));
6080 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
6081 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
6082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6084 if (r->name) {
6085 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6086 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6087 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6088 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6089 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
6090 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));
6092 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
6093 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
6094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6096 if (r->comment) {
6097 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6098 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6099 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6100 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6101 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6102 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));
6104 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6105 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6109 return NDR_ERR_SUCCESS;
6112 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
6114 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
6115 ndr->depth++;
6116 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
6117 ndr_print_ptr(ndr, "description", r->description);
6118 ndr->depth++;
6119 if (r->description) {
6120 ndr_print_string(ndr, "description", r->description);
6122 ndr->depth--;
6123 ndr_print_ptr(ndr, "name", r->name);
6124 ndr->depth++;
6125 if (r->name) {
6126 ndr_print_string(ndr, "name", r->name);
6128 ndr->depth--;
6129 ndr_print_ptr(ndr, "comment", r->comment);
6130 ndr->depth++;
6131 if (r->comment) {
6132 ndr_print_string(ndr, "comment", r->comment);
6134 ndr->depth--;
6135 ndr->depth--;
6138 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
6140 if (ndr_flags & NDR_SCALARS) {
6141 NDR_CHECK(ndr_push_align(ndr, 4));
6142 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6143 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6144 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6145 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6146 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6147 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6148 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6149 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
6150 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6151 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6152 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6153 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6154 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
6155 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6160 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6164 if (ndr_flags & NDR_BUFFERS) {
6165 if (r->servername) {
6166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6167 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6169 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6171 if (r->printername) {
6172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6175 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6177 if (r->sharename) {
6178 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6181 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6183 if (r->portname) {
6184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6186 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6187 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6189 if (r->drivername) {
6190 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6193 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6195 if (r->comment) {
6196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6199 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6201 if (r->location) {
6202 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6205 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6207 if (r->devmode) {
6209 struct ndr_push *_ndr_devmode;
6210 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6211 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6212 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
6215 if (r->sepfile) {
6216 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6219 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6221 if (r->printprocessor) {
6222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6225 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6227 if (r->datatype) {
6228 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6231 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6233 if (r->parameters) {
6234 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6237 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6239 if (r->secdesc) {
6241 struct ndr_push *_ndr_secdesc;
6242 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6243 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6244 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6248 return NDR_ERR_SUCCESS;
6251 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6253 uint32_t _ptr_servername;
6254 TALLOC_CTX *_mem_save_servername_0;
6255 uint32_t _ptr_printername;
6256 TALLOC_CTX *_mem_save_printername_0;
6257 uint32_t _ptr_sharename;
6258 TALLOC_CTX *_mem_save_sharename_0;
6259 uint32_t _ptr_portname;
6260 TALLOC_CTX *_mem_save_portname_0;
6261 uint32_t _ptr_drivername;
6262 TALLOC_CTX *_mem_save_drivername_0;
6263 uint32_t _ptr_comment;
6264 TALLOC_CTX *_mem_save_comment_0;
6265 uint32_t _ptr_location;
6266 TALLOC_CTX *_mem_save_location_0;
6267 uint32_t _ptr_devmode;
6268 TALLOC_CTX *_mem_save_devmode_0;
6269 uint32_t _ptr_sepfile;
6270 TALLOC_CTX *_mem_save_sepfile_0;
6271 uint32_t _ptr_printprocessor;
6272 TALLOC_CTX *_mem_save_printprocessor_0;
6273 uint32_t _ptr_datatype;
6274 TALLOC_CTX *_mem_save_datatype_0;
6275 uint32_t _ptr_parameters;
6276 TALLOC_CTX *_mem_save_parameters_0;
6277 uint32_t _ptr_secdesc;
6278 TALLOC_CTX *_mem_save_secdesc_0;
6279 if (ndr_flags & NDR_SCALARS) {
6280 NDR_CHECK(ndr_pull_align(ndr, 4));
6281 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6282 if (_ptr_servername) {
6283 NDR_PULL_ALLOC(ndr, r->servername);
6284 } else {
6285 r->servername = NULL;
6287 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6288 if (_ptr_printername) {
6289 NDR_PULL_ALLOC(ndr, r->printername);
6290 } else {
6291 r->printername = NULL;
6293 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6294 if (_ptr_sharename) {
6295 NDR_PULL_ALLOC(ndr, r->sharename);
6296 } else {
6297 r->sharename = NULL;
6299 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6300 if (_ptr_portname) {
6301 NDR_PULL_ALLOC(ndr, r->portname);
6302 } else {
6303 r->portname = NULL;
6305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6306 if (_ptr_drivername) {
6307 NDR_PULL_ALLOC(ndr, r->drivername);
6308 } else {
6309 r->drivername = NULL;
6311 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6312 if (_ptr_comment) {
6313 NDR_PULL_ALLOC(ndr, r->comment);
6314 } else {
6315 r->comment = NULL;
6317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6318 if (_ptr_location) {
6319 NDR_PULL_ALLOC(ndr, r->location);
6320 } else {
6321 r->location = NULL;
6323 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
6324 if (_ptr_devmode) {
6325 NDR_PULL_ALLOC(ndr, r->devmode);
6326 } else {
6327 r->devmode = NULL;
6329 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6330 if (_ptr_sepfile) {
6331 NDR_PULL_ALLOC(ndr, r->sepfile);
6332 } else {
6333 r->sepfile = NULL;
6335 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6336 if (_ptr_printprocessor) {
6337 NDR_PULL_ALLOC(ndr, r->printprocessor);
6338 } else {
6339 r->printprocessor = NULL;
6341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6342 if (_ptr_datatype) {
6343 NDR_PULL_ALLOC(ndr, r->datatype);
6344 } else {
6345 r->datatype = NULL;
6347 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6348 if (_ptr_parameters) {
6349 NDR_PULL_ALLOC(ndr, r->parameters);
6350 } else {
6351 r->parameters = NULL;
6353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
6354 if (_ptr_secdesc) {
6355 NDR_PULL_ALLOC(ndr, r->secdesc);
6356 } else {
6357 r->secdesc = NULL;
6359 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6360 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6361 if (r->priority > 99) {
6362 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
6365 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
6366 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
6367 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6368 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6369 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
6371 if (ndr_flags & NDR_BUFFERS) {
6372 if (r->servername) {
6373 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6374 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6375 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6376 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6377 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6378 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));
6380 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6381 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6384 if (r->printername) {
6385 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6386 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6387 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6388 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6389 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6390 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));
6392 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6393 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6394 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6396 if (r->sharename) {
6397 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
6398 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
6399 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
6400 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
6401 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
6402 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));
6404 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
6405 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
6406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
6408 if (r->portname) {
6409 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6410 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6411 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6412 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6413 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6414 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));
6416 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6417 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6420 if (r->drivername) {
6421 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6422 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
6423 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
6424 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
6425 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
6426 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));
6428 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
6429 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
6430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
6432 if (r->comment) {
6433 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6434 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6435 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6436 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6437 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6438 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));
6440 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6441 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6442 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6444 if (r->location) {
6445 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
6446 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
6447 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
6448 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
6449 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
6450 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));
6452 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
6453 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
6454 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
6456 if (r->devmode) {
6457 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
6458 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
6460 struct ndr_pull *_ndr_devmode;
6461 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6462 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6463 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
6465 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
6467 if (r->sepfile) {
6468 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
6469 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
6470 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
6471 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
6472 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
6473 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));
6475 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
6476 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
6477 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
6479 if (r->printprocessor) {
6480 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6481 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
6482 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
6483 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
6484 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
6485 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));
6487 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
6488 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
6489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
6491 if (r->datatype) {
6492 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6493 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
6494 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
6495 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
6496 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
6497 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));
6499 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
6500 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
6501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
6503 if (r->parameters) {
6504 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6505 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6506 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6507 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6508 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6509 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));
6511 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6512 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6515 if (r->secdesc) {
6516 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6517 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
6519 struct ndr_pull *_ndr_secdesc;
6520 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6521 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6522 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
6527 return NDR_ERR_SUCCESS;
6530 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
6532 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
6533 ndr->depth++;
6534 ndr_print_ptr(ndr, "servername", r->servername);
6535 ndr->depth++;
6536 if (r->servername) {
6537 ndr_print_string(ndr, "servername", r->servername);
6539 ndr->depth--;
6540 ndr_print_ptr(ndr, "printername", r->printername);
6541 ndr->depth++;
6542 if (r->printername) {
6543 ndr_print_string(ndr, "printername", r->printername);
6545 ndr->depth--;
6546 ndr_print_ptr(ndr, "sharename", r->sharename);
6547 ndr->depth++;
6548 if (r->sharename) {
6549 ndr_print_string(ndr, "sharename", r->sharename);
6551 ndr->depth--;
6552 ndr_print_ptr(ndr, "portname", r->portname);
6553 ndr->depth++;
6554 if (r->portname) {
6555 ndr_print_string(ndr, "portname", r->portname);
6557 ndr->depth--;
6558 ndr_print_ptr(ndr, "drivername", r->drivername);
6559 ndr->depth++;
6560 if (r->drivername) {
6561 ndr_print_string(ndr, "drivername", r->drivername);
6563 ndr->depth--;
6564 ndr_print_ptr(ndr, "comment", r->comment);
6565 ndr->depth++;
6566 if (r->comment) {
6567 ndr_print_string(ndr, "comment", r->comment);
6569 ndr->depth--;
6570 ndr_print_ptr(ndr, "location", r->location);
6571 ndr->depth++;
6572 if (r->location) {
6573 ndr_print_string(ndr, "location", r->location);
6575 ndr->depth--;
6576 ndr_print_ptr(ndr, "devmode", r->devmode);
6577 ndr->depth++;
6578 if (r->devmode) {
6579 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
6581 ndr->depth--;
6582 ndr_print_ptr(ndr, "sepfile", r->sepfile);
6583 ndr->depth++;
6584 if (r->sepfile) {
6585 ndr_print_string(ndr, "sepfile", r->sepfile);
6587 ndr->depth--;
6588 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
6589 ndr->depth++;
6590 if (r->printprocessor) {
6591 ndr_print_string(ndr, "printprocessor", r->printprocessor);
6593 ndr->depth--;
6594 ndr_print_ptr(ndr, "datatype", r->datatype);
6595 ndr->depth++;
6596 if (r->datatype) {
6597 ndr_print_string(ndr, "datatype", r->datatype);
6599 ndr->depth--;
6600 ndr_print_ptr(ndr, "parameters", r->parameters);
6601 ndr->depth++;
6602 if (r->parameters) {
6603 ndr_print_string(ndr, "parameters", r->parameters);
6605 ndr->depth--;
6606 ndr_print_ptr(ndr, "secdesc", r->secdesc);
6607 ndr->depth++;
6608 if (r->secdesc) {
6609 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
6611 ndr->depth--;
6612 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6613 ndr_print_uint32(ndr, "priority", r->priority);
6614 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
6615 ndr_print_uint32(ndr, "starttime", r->starttime);
6616 ndr_print_uint32(ndr, "untiltime", r->untiltime);
6617 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6618 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6619 ndr_print_uint32(ndr, "averageppm", r->averageppm);
6620 ndr->depth--;
6623 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
6625 if (ndr_flags & NDR_SCALARS) {
6626 NDR_CHECK(ndr_push_align(ndr, 4));
6627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
6629 if (ndr_flags & NDR_BUFFERS) {
6631 return NDR_ERR_SUCCESS;
6634 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
6636 if (ndr_flags & NDR_SCALARS) {
6637 NDR_CHECK(ndr_pull_align(ndr, 4));
6638 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
6640 if (ndr_flags & NDR_BUFFERS) {
6642 return NDR_ERR_SUCCESS;
6645 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
6647 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
6648 ndr->depth++;
6649 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
6650 ndr->depth--;
6653 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
6655 if (ndr_flags & NDR_SCALARS) {
6656 NDR_CHECK(ndr_push_align(ndr, 4));
6657 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6658 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6659 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6661 if (ndr_flags & NDR_BUFFERS) {
6662 if (r->printername) {
6663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6666 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6668 if (r->servername) {
6669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6671 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6672 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6675 return NDR_ERR_SUCCESS;
6678 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
6680 uint32_t _ptr_printername;
6681 TALLOC_CTX *_mem_save_printername_0;
6682 uint32_t _ptr_servername;
6683 TALLOC_CTX *_mem_save_servername_0;
6684 if (ndr_flags & NDR_SCALARS) {
6685 NDR_CHECK(ndr_pull_align(ndr, 4));
6686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6687 if (_ptr_printername) {
6688 NDR_PULL_ALLOC(ndr, r->printername);
6689 } else {
6690 r->printername = NULL;
6692 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6693 if (_ptr_servername) {
6694 NDR_PULL_ALLOC(ndr, r->servername);
6695 } else {
6696 r->servername = NULL;
6698 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6700 if (ndr_flags & NDR_BUFFERS) {
6701 if (r->printername) {
6702 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6703 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6704 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6705 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6706 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6707 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));
6709 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6710 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6713 if (r->servername) {
6714 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6715 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6716 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6717 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6718 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6719 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));
6721 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6722 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6726 return NDR_ERR_SUCCESS;
6729 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
6731 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
6732 ndr->depth++;
6733 ndr_print_ptr(ndr, "printername", r->printername);
6734 ndr->depth++;
6735 if (r->printername) {
6736 ndr_print_string(ndr, "printername", r->printername);
6738 ndr->depth--;
6739 ndr_print_ptr(ndr, "servername", r->servername);
6740 ndr->depth++;
6741 if (r->servername) {
6742 ndr_print_string(ndr, "servername", r->servername);
6744 ndr->depth--;
6745 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6746 ndr->depth--;
6749 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
6751 if (ndr_flags & NDR_SCALARS) {
6752 NDR_CHECK(ndr_push_align(ndr, 4));
6753 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6754 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6755 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
6757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
6759 if (ndr_flags & NDR_BUFFERS) {
6760 if (r->printername) {
6761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6764 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6766 if (r->portname) {
6767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6770 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6773 return NDR_ERR_SUCCESS;
6776 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
6778 uint32_t _ptr_printername;
6779 TALLOC_CTX *_mem_save_printername_0;
6780 uint32_t _ptr_portname;
6781 TALLOC_CTX *_mem_save_portname_0;
6782 if (ndr_flags & NDR_SCALARS) {
6783 NDR_CHECK(ndr_pull_align(ndr, 4));
6784 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6785 if (_ptr_printername) {
6786 NDR_PULL_ALLOC(ndr, r->printername);
6787 } else {
6788 r->printername = NULL;
6790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6791 if (_ptr_portname) {
6792 NDR_PULL_ALLOC(ndr, r->portname);
6793 } else {
6794 r->portname = NULL;
6796 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6797 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
6798 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
6800 if (ndr_flags & NDR_BUFFERS) {
6801 if (r->printername) {
6802 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6803 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6804 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6805 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6806 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6807 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));
6809 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6810 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6813 if (r->portname) {
6814 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6815 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6816 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6817 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6818 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6819 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));
6821 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6822 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6823 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6826 return NDR_ERR_SUCCESS;
6829 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
6831 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
6832 ndr->depth++;
6833 ndr_print_ptr(ndr, "printername", r->printername);
6834 ndr->depth++;
6835 if (r->printername) {
6836 ndr_print_string(ndr, "printername", r->printername);
6838 ndr->depth--;
6839 ndr_print_ptr(ndr, "portname", r->portname);
6840 ndr->depth++;
6841 if (r->portname) {
6842 ndr_print_string(ndr, "portname", r->portname);
6844 ndr->depth--;
6845 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6846 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
6847 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
6848 ndr->depth--;
6851 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
6853 if (ndr_flags & NDR_SCALARS) {
6854 NDR_CHECK(ndr_push_align(ndr, 4));
6855 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6857 if (ndr_flags & NDR_BUFFERS) {
6859 return NDR_ERR_SUCCESS;
6862 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
6864 if (ndr_flags & NDR_SCALARS) {
6865 NDR_CHECK(ndr_pull_align(ndr, 4));
6866 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6868 if (ndr_flags & NDR_BUFFERS) {
6870 return NDR_ERR_SUCCESS;
6873 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
6875 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
6876 ndr->depth++;
6877 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6878 ndr->depth--;
6881 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
6883 if (ndr_flags & NDR_SCALARS) {
6884 NDR_CHECK(ndr_push_align(ndr, 4));
6885 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
6886 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
6888 if (ndr_flags & NDR_BUFFERS) {
6889 if (r->guid) {
6890 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
6891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
6893 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6896 return NDR_ERR_SUCCESS;
6899 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
6901 uint32_t _ptr_guid;
6902 TALLOC_CTX *_mem_save_guid_0;
6903 if (ndr_flags & NDR_SCALARS) {
6904 NDR_CHECK(ndr_pull_align(ndr, 4));
6905 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
6906 if (_ptr_guid) {
6907 NDR_PULL_ALLOC(ndr, r->guid);
6908 } else {
6909 r->guid = NULL;
6911 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
6913 if (ndr_flags & NDR_BUFFERS) {
6914 if (r->guid) {
6915 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6916 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
6917 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
6918 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
6919 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
6920 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));
6922 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
6923 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
6924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
6927 return NDR_ERR_SUCCESS;
6930 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
6932 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
6933 ndr->depth++;
6934 ndr_print_ptr(ndr, "guid", r->guid);
6935 ndr->depth++;
6936 if (r->guid) {
6937 ndr_print_string(ndr, "guid", r->guid);
6939 ndr->depth--;
6940 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
6941 ndr->depth--;
6944 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
6946 if (ndr_flags & NDR_SCALARS) {
6947 int level = ndr_push_get_switch_value(ndr, r);
6948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6949 switch (level) {
6950 case 0: {
6951 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
6952 break; }
6954 case 1: {
6955 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6956 break; }
6958 case 2: {
6959 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6960 break; }
6962 case 3: {
6963 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6964 break; }
6966 case 4: {
6967 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6968 break; }
6970 case 5: {
6971 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
6972 break; }
6974 case 6: {
6975 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
6976 break; }
6978 case 7: {
6979 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
6980 break; }
6982 case 8: {
6983 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
6984 break; }
6986 case 9: {
6987 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
6988 break; }
6990 default: {
6991 break; }
6995 if (ndr_flags & NDR_BUFFERS) {
6996 int level = ndr_push_get_switch_value(ndr, r);
6997 switch (level) {
6998 case 0:
6999 if (r->info0) {
7000 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7002 break;
7004 case 1:
7005 if (r->info1) {
7006 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7008 break;
7010 case 2:
7011 if (r->info2) {
7012 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7014 break;
7016 case 3:
7017 if (r->info3) {
7018 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7020 break;
7022 case 4:
7023 if (r->info4) {
7024 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7026 break;
7028 case 5:
7029 if (r->info5) {
7030 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7032 break;
7034 case 6:
7035 if (r->info6) {
7036 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7038 break;
7040 case 7:
7041 if (r->info7) {
7042 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7044 break;
7046 case 8:
7047 if (r->info8) {
7048 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7050 break;
7052 case 9:
7053 if (r->info9) {
7054 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7056 break;
7058 default:
7059 break;
7063 return NDR_ERR_SUCCESS;
7066 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
7068 int level;
7069 uint32_t _level;
7070 TALLOC_CTX *_mem_save_info0_0;
7071 TALLOC_CTX *_mem_save_info1_0;
7072 TALLOC_CTX *_mem_save_info2_0;
7073 TALLOC_CTX *_mem_save_info3_0;
7074 TALLOC_CTX *_mem_save_info4_0;
7075 TALLOC_CTX *_mem_save_info5_0;
7076 TALLOC_CTX *_mem_save_info6_0;
7077 TALLOC_CTX *_mem_save_info7_0;
7078 TALLOC_CTX *_mem_save_info8_0;
7079 TALLOC_CTX *_mem_save_info9_0;
7080 level = ndr_pull_get_switch_value(ndr, r);
7081 if (ndr_flags & NDR_SCALARS) {
7082 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7083 if (_level != level) {
7084 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7086 switch (level) {
7087 case 0: {
7088 uint32_t _ptr_info0;
7089 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7090 if (_ptr_info0) {
7091 NDR_PULL_ALLOC(ndr, r->info0);
7092 } else {
7093 r->info0 = NULL;
7095 break; }
7097 case 1: {
7098 uint32_t _ptr_info1;
7099 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7100 if (_ptr_info1) {
7101 NDR_PULL_ALLOC(ndr, r->info1);
7102 } else {
7103 r->info1 = NULL;
7105 break; }
7107 case 2: {
7108 uint32_t _ptr_info2;
7109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7110 if (_ptr_info2) {
7111 NDR_PULL_ALLOC(ndr, r->info2);
7112 } else {
7113 r->info2 = NULL;
7115 break; }
7117 case 3: {
7118 uint32_t _ptr_info3;
7119 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7120 if (_ptr_info3) {
7121 NDR_PULL_ALLOC(ndr, r->info3);
7122 } else {
7123 r->info3 = NULL;
7125 break; }
7127 case 4: {
7128 uint32_t _ptr_info4;
7129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7130 if (_ptr_info4) {
7131 NDR_PULL_ALLOC(ndr, r->info4);
7132 } else {
7133 r->info4 = NULL;
7135 break; }
7137 case 5: {
7138 uint32_t _ptr_info5;
7139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7140 if (_ptr_info5) {
7141 NDR_PULL_ALLOC(ndr, r->info5);
7142 } else {
7143 r->info5 = NULL;
7145 break; }
7147 case 6: {
7148 uint32_t _ptr_info6;
7149 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7150 if (_ptr_info6) {
7151 NDR_PULL_ALLOC(ndr, r->info6);
7152 } else {
7153 r->info6 = NULL;
7155 break; }
7157 case 7: {
7158 uint32_t _ptr_info7;
7159 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7160 if (_ptr_info7) {
7161 NDR_PULL_ALLOC(ndr, r->info7);
7162 } else {
7163 r->info7 = NULL;
7165 break; }
7167 case 8: {
7168 uint32_t _ptr_info8;
7169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7170 if (_ptr_info8) {
7171 NDR_PULL_ALLOC(ndr, r->info8);
7172 } else {
7173 r->info8 = NULL;
7175 break; }
7177 case 9: {
7178 uint32_t _ptr_info9;
7179 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7180 if (_ptr_info9) {
7181 NDR_PULL_ALLOC(ndr, r->info9);
7182 } else {
7183 r->info9 = NULL;
7185 break; }
7187 default: {
7188 break; }
7192 if (ndr_flags & NDR_BUFFERS) {
7193 switch (level) {
7194 case 0:
7195 if (r->info0) {
7196 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7197 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7198 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7199 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7201 break;
7203 case 1:
7204 if (r->info1) {
7205 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7206 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7207 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7208 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7210 break;
7212 case 2:
7213 if (r->info2) {
7214 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7215 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7216 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7219 break;
7221 case 3:
7222 if (r->info3) {
7223 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7224 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7225 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7226 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7228 break;
7230 case 4:
7231 if (r->info4) {
7232 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7233 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7234 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7235 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7237 break;
7239 case 5:
7240 if (r->info5) {
7241 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7242 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7243 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7244 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7246 break;
7248 case 6:
7249 if (r->info6) {
7250 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7251 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7252 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7253 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7255 break;
7257 case 7:
7258 if (r->info7) {
7259 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7260 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7261 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7264 break;
7266 case 8:
7267 if (r->info8) {
7268 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7269 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7270 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7271 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7273 break;
7275 case 9:
7276 if (r->info9) {
7277 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7278 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7279 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7280 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7282 break;
7284 default:
7285 break;
7289 return NDR_ERR_SUCCESS;
7292 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7294 int level;
7295 level = ndr_print_get_switch_value(ndr, r);
7296 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
7297 switch (level) {
7298 case 0:
7299 ndr_print_ptr(ndr, "info0", r->info0);
7300 ndr->depth++;
7301 if (r->info0) {
7302 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
7304 ndr->depth--;
7305 break;
7307 case 1:
7308 ndr_print_ptr(ndr, "info1", r->info1);
7309 ndr->depth++;
7310 if (r->info1) {
7311 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
7313 ndr->depth--;
7314 break;
7316 case 2:
7317 ndr_print_ptr(ndr, "info2", r->info2);
7318 ndr->depth++;
7319 if (r->info2) {
7320 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
7322 ndr->depth--;
7323 break;
7325 case 3:
7326 ndr_print_ptr(ndr, "info3", r->info3);
7327 ndr->depth++;
7328 if (r->info3) {
7329 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
7331 ndr->depth--;
7332 break;
7334 case 4:
7335 ndr_print_ptr(ndr, "info4", r->info4);
7336 ndr->depth++;
7337 if (r->info4) {
7338 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
7340 ndr->depth--;
7341 break;
7343 case 5:
7344 ndr_print_ptr(ndr, "info5", r->info5);
7345 ndr->depth++;
7346 if (r->info5) {
7347 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
7349 ndr->depth--;
7350 break;
7352 case 6:
7353 ndr_print_ptr(ndr, "info6", r->info6);
7354 ndr->depth++;
7355 if (r->info6) {
7356 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
7358 ndr->depth--;
7359 break;
7361 case 7:
7362 ndr_print_ptr(ndr, "info7", r->info7);
7363 ndr->depth++;
7364 if (r->info7) {
7365 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
7367 ndr->depth--;
7368 break;
7370 case 8:
7371 ndr_print_ptr(ndr, "info8", r->info8);
7372 ndr->depth++;
7373 if (r->info8) {
7374 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
7376 ndr->depth--;
7377 break;
7379 case 9:
7380 ndr_print_ptr(ndr, "info9", r->info9);
7381 ndr->depth++;
7382 if (r->info9) {
7383 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
7385 ndr->depth--;
7386 break;
7388 default:
7389 break;
7394 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
7396 if (ndr_flags & NDR_SCALARS) {
7397 NDR_CHECK(ndr_push_align(ndr, 4));
7398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7399 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7400 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7402 if (ndr_flags & NDR_BUFFERS) {
7403 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7405 return NDR_ERR_SUCCESS;
7408 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
7410 if (ndr_flags & NDR_SCALARS) {
7411 NDR_CHECK(ndr_pull_align(ndr, 4));
7412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7413 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7414 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7416 if (ndr_flags & NDR_BUFFERS) {
7417 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7419 return NDR_ERR_SUCCESS;
7422 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
7424 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
7425 ndr->depth++;
7426 ndr_print_uint32(ndr, "level", r->level);
7427 ndr_print_set_switch_value(ndr, &r->info, r->level);
7428 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
7429 ndr->depth--;
7432 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
7434 if (ndr_flags & NDR_SCALARS) {
7435 NDR_CHECK(ndr_push_align(ndr, 4));
7436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
7438 uint32_t _flags_save_string_array = ndr->flags;
7439 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7440 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
7441 ndr->flags = _flags_save_string_array;
7444 if (ndr_flags & NDR_BUFFERS) {
7446 return NDR_ERR_SUCCESS;
7449 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
7451 if (ndr_flags & NDR_SCALARS) {
7452 NDR_CHECK(ndr_pull_align(ndr, 4));
7453 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
7455 uint32_t _flags_save_string_array = ndr->flags;
7456 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7457 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
7458 ndr->flags = _flags_save_string_array;
7461 if (ndr_flags & NDR_BUFFERS) {
7463 return NDR_ERR_SUCCESS;
7466 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
7468 ndr_print_struct(ndr, name, "spoolss_StringArray");
7469 ndr->depth++;
7470 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);
7471 ndr_print_string_array(ndr, "string", r->string);
7472 ndr->depth--;
7475 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
7477 if (ndr_flags & NDR_SCALARS) {
7478 NDR_CHECK(ndr_push_align(ndr, 4));
7479 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7481 if (ndr_flags & NDR_BUFFERS) {
7482 if (r->driver_name) {
7483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7486 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7489 return NDR_ERR_SUCCESS;
7492 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
7494 uint32_t _ptr_driver_name;
7495 TALLOC_CTX *_mem_save_driver_name_0;
7496 if (ndr_flags & NDR_SCALARS) {
7497 NDR_CHECK(ndr_pull_align(ndr, 4));
7498 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7499 if (_ptr_driver_name) {
7500 NDR_PULL_ALLOC(ndr, r->driver_name);
7501 } else {
7502 r->driver_name = NULL;
7505 if (ndr_flags & NDR_BUFFERS) {
7506 if (r->driver_name) {
7507 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7508 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7509 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7510 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7511 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7512 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));
7514 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7515 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7519 return NDR_ERR_SUCCESS;
7522 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
7524 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
7525 ndr->depth++;
7526 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7527 ndr->depth++;
7528 if (r->driver_name) {
7529 ndr_print_string(ndr, "driver_name", r->driver_name);
7531 ndr->depth--;
7532 ndr->depth--;
7535 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
7537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7538 return NDR_ERR_SUCCESS;
7541 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
7543 uint32_t v;
7544 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7545 *r = v;
7546 return NDR_ERR_SUCCESS;
7549 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
7551 const char *val = NULL;
7553 switch (r) {
7554 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
7555 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
7556 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
7557 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
7559 ndr_print_enum(ndr, name, "ENUM", val, r);
7562 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
7564 if (ndr_flags & NDR_SCALARS) {
7565 NDR_CHECK(ndr_push_align(ndr, 4));
7566 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7567 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7568 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7569 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7570 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7571 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7573 if (ndr_flags & NDR_BUFFERS) {
7574 if (r->driver_name) {
7575 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7577 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7578 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7580 if (r->architecture) {
7581 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7582 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7583 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7584 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7586 if (r->driver_path) {
7587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7590 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7592 if (r->data_file) {
7593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7596 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7598 if (r->config_file) {
7599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7602 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7605 return NDR_ERR_SUCCESS;
7608 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
7610 uint32_t _ptr_driver_name;
7611 TALLOC_CTX *_mem_save_driver_name_0;
7612 uint32_t _ptr_architecture;
7613 TALLOC_CTX *_mem_save_architecture_0;
7614 uint32_t _ptr_driver_path;
7615 TALLOC_CTX *_mem_save_driver_path_0;
7616 uint32_t _ptr_data_file;
7617 TALLOC_CTX *_mem_save_data_file_0;
7618 uint32_t _ptr_config_file;
7619 TALLOC_CTX *_mem_save_config_file_0;
7620 if (ndr_flags & NDR_SCALARS) {
7621 NDR_CHECK(ndr_pull_align(ndr, 4));
7622 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7623 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7624 if (_ptr_driver_name) {
7625 NDR_PULL_ALLOC(ndr, r->driver_name);
7626 } else {
7627 r->driver_name = NULL;
7629 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7630 if (_ptr_architecture) {
7631 NDR_PULL_ALLOC(ndr, r->architecture);
7632 } else {
7633 r->architecture = NULL;
7635 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7636 if (_ptr_driver_path) {
7637 NDR_PULL_ALLOC(ndr, r->driver_path);
7638 } else {
7639 r->driver_path = NULL;
7641 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7642 if (_ptr_data_file) {
7643 NDR_PULL_ALLOC(ndr, r->data_file);
7644 } else {
7645 r->data_file = NULL;
7647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7648 if (_ptr_config_file) {
7649 NDR_PULL_ALLOC(ndr, r->config_file);
7650 } else {
7651 r->config_file = NULL;
7654 if (ndr_flags & NDR_BUFFERS) {
7655 if (r->driver_name) {
7656 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7657 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7658 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7659 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7660 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7661 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));
7663 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7664 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7667 if (r->architecture) {
7668 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7669 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7670 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7671 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7672 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7673 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));
7675 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7676 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
7677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7679 if (r->driver_path) {
7680 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7681 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7682 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7683 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7684 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7685 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));
7687 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7688 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
7689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7691 if (r->data_file) {
7692 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7693 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7694 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7695 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7696 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7697 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));
7699 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7700 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
7701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7703 if (r->config_file) {
7704 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7705 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7706 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7707 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7708 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7709 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));
7711 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7712 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
7713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7716 return NDR_ERR_SUCCESS;
7719 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
7721 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
7722 ndr->depth++;
7723 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7724 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7725 ndr->depth++;
7726 if (r->driver_name) {
7727 ndr_print_string(ndr, "driver_name", r->driver_name);
7729 ndr->depth--;
7730 ndr_print_ptr(ndr, "architecture", r->architecture);
7731 ndr->depth++;
7732 if (r->architecture) {
7733 ndr_print_string(ndr, "architecture", r->architecture);
7735 ndr->depth--;
7736 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7737 ndr->depth++;
7738 if (r->driver_path) {
7739 ndr_print_string(ndr, "driver_path", r->driver_path);
7741 ndr->depth--;
7742 ndr_print_ptr(ndr, "data_file", r->data_file);
7743 ndr->depth++;
7744 if (r->data_file) {
7745 ndr_print_string(ndr, "data_file", r->data_file);
7747 ndr->depth--;
7748 ndr_print_ptr(ndr, "config_file", r->config_file);
7749 ndr->depth++;
7750 if (r->config_file) {
7751 ndr_print_string(ndr, "config_file", r->config_file);
7753 ndr->depth--;
7754 ndr->depth--;
7757 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
7759 if (ndr_flags & NDR_SCALARS) {
7760 NDR_CHECK(ndr_push_align(ndr, 4));
7761 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7762 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7763 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7764 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7765 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7766 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7767 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
7768 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
7769 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
7770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
7771 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
7773 if (ndr_flags & NDR_BUFFERS) {
7774 if (r->driver_name) {
7775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7778 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7780 if (r->architecture) {
7781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7784 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7786 if (r->driver_path) {
7787 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7790 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7792 if (r->data_file) {
7793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7796 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7798 if (r->config_file) {
7799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7801 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7802 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7804 if (r->help_file) {
7805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7808 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7810 if (r->monitor_name) {
7811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7812 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7814 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7816 if (r->default_datatype) {
7817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7820 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7822 if (r->dependent_files) {
7823 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
7826 return NDR_ERR_SUCCESS;
7829 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
7831 uint32_t _ptr_driver_name;
7832 TALLOC_CTX *_mem_save_driver_name_0;
7833 uint32_t _ptr_architecture;
7834 TALLOC_CTX *_mem_save_architecture_0;
7835 uint32_t _ptr_driver_path;
7836 TALLOC_CTX *_mem_save_driver_path_0;
7837 uint32_t _ptr_data_file;
7838 TALLOC_CTX *_mem_save_data_file_0;
7839 uint32_t _ptr_config_file;
7840 TALLOC_CTX *_mem_save_config_file_0;
7841 uint32_t _ptr_help_file;
7842 TALLOC_CTX *_mem_save_help_file_0;
7843 uint32_t _ptr_monitor_name;
7844 TALLOC_CTX *_mem_save_monitor_name_0;
7845 uint32_t _ptr_default_datatype;
7846 TALLOC_CTX *_mem_save_default_datatype_0;
7847 uint32_t _ptr_dependent_files;
7848 TALLOC_CTX *_mem_save_dependent_files_0;
7849 if (ndr_flags & NDR_SCALARS) {
7850 NDR_CHECK(ndr_pull_align(ndr, 4));
7851 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7852 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7853 if (_ptr_driver_name) {
7854 NDR_PULL_ALLOC(ndr, r->driver_name);
7855 } else {
7856 r->driver_name = NULL;
7858 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7859 if (_ptr_architecture) {
7860 NDR_PULL_ALLOC(ndr, r->architecture);
7861 } else {
7862 r->architecture = NULL;
7864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7865 if (_ptr_driver_path) {
7866 NDR_PULL_ALLOC(ndr, r->driver_path);
7867 } else {
7868 r->driver_path = NULL;
7870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7871 if (_ptr_data_file) {
7872 NDR_PULL_ALLOC(ndr, r->data_file);
7873 } else {
7874 r->data_file = NULL;
7876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7877 if (_ptr_config_file) {
7878 NDR_PULL_ALLOC(ndr, r->config_file);
7879 } else {
7880 r->config_file = NULL;
7882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7883 if (_ptr_help_file) {
7884 NDR_PULL_ALLOC(ndr, r->help_file);
7885 } else {
7886 r->help_file = NULL;
7888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7889 if (_ptr_monitor_name) {
7890 NDR_PULL_ALLOC(ndr, r->monitor_name);
7891 } else {
7892 r->monitor_name = NULL;
7894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7895 if (_ptr_default_datatype) {
7896 NDR_PULL_ALLOC(ndr, r->default_datatype);
7897 } else {
7898 r->default_datatype = NULL;
7900 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
7901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7902 if (_ptr_dependent_files) {
7903 NDR_PULL_ALLOC(ndr, r->dependent_files);
7904 } else {
7905 r->dependent_files = NULL;
7908 if (ndr_flags & NDR_BUFFERS) {
7909 if (r->driver_name) {
7910 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7911 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7912 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7913 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7914 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7915 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));
7917 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7918 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7921 if (r->architecture) {
7922 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7923 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7924 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7925 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7926 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7927 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));
7929 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7930 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
7931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7933 if (r->driver_path) {
7934 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7935 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7936 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7937 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7938 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7939 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));
7941 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7942 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
7943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7945 if (r->data_file) {
7946 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7947 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7948 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7949 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7950 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7951 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));
7953 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7954 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
7955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7957 if (r->config_file) {
7958 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7959 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7960 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7961 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7962 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7963 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));
7965 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7966 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
7967 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7969 if (r->help_file) {
7970 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7971 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7972 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
7973 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
7974 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
7975 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));
7977 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
7978 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
7979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7981 if (r->monitor_name) {
7982 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7983 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7984 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
7985 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
7986 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
7987 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));
7989 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
7990 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
7991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7993 if (r->default_datatype) {
7994 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7995 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7996 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
7997 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
7998 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
7999 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));
8001 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8002 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8005 if (r->dependent_files) {
8006 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8007 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8008 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8012 return NDR_ERR_SUCCESS;
8015 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
8017 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
8018 ndr->depth++;
8019 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8020 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8021 ndr->depth++;
8022 if (r->driver_name) {
8023 ndr_print_string(ndr, "driver_name", r->driver_name);
8025 ndr->depth--;
8026 ndr_print_ptr(ndr, "architecture", r->architecture);
8027 ndr->depth++;
8028 if (r->architecture) {
8029 ndr_print_string(ndr, "architecture", r->architecture);
8031 ndr->depth--;
8032 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8033 ndr->depth++;
8034 if (r->driver_path) {
8035 ndr_print_string(ndr, "driver_path", r->driver_path);
8037 ndr->depth--;
8038 ndr_print_ptr(ndr, "data_file", r->data_file);
8039 ndr->depth++;
8040 if (r->data_file) {
8041 ndr_print_string(ndr, "data_file", r->data_file);
8043 ndr->depth--;
8044 ndr_print_ptr(ndr, "config_file", r->config_file);
8045 ndr->depth++;
8046 if (r->config_file) {
8047 ndr_print_string(ndr, "config_file", r->config_file);
8049 ndr->depth--;
8050 ndr_print_ptr(ndr, "help_file", r->help_file);
8051 ndr->depth++;
8052 if (r->help_file) {
8053 ndr_print_string(ndr, "help_file", r->help_file);
8055 ndr->depth--;
8056 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8057 ndr->depth++;
8058 if (r->monitor_name) {
8059 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8061 ndr->depth--;
8062 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8063 ndr->depth++;
8064 if (r->default_datatype) {
8065 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8067 ndr->depth--;
8068 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);
8069 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8070 ndr->depth++;
8071 if (r->dependent_files) {
8072 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8074 ndr->depth--;
8075 ndr->depth--;
8078 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8080 if (ndr_flags & NDR_SCALARS) {
8081 NDR_CHECK(ndr_push_align(ndr, 4));
8082 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8083 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8084 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8085 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8086 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8087 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8088 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8089 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8090 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8092 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8094 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8096 if (ndr_flags & NDR_BUFFERS) {
8097 if (r->driver_name) {
8098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8101 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8103 if (r->architecture) {
8104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8107 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8109 if (r->driver_path) {
8110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8113 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8115 if (r->data_file) {
8116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8119 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8121 if (r->config_file) {
8122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8125 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8127 if (r->help_file) {
8128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8129 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8131 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8133 if (r->monitor_name) {
8134 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8137 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8139 if (r->default_datatype) {
8140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8143 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8145 if (r->dependent_files) {
8146 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8148 if (r->previous_names) {
8149 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8152 return NDR_ERR_SUCCESS;
8155 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8157 uint32_t _ptr_driver_name;
8158 TALLOC_CTX *_mem_save_driver_name_0;
8159 uint32_t _ptr_architecture;
8160 TALLOC_CTX *_mem_save_architecture_0;
8161 uint32_t _ptr_driver_path;
8162 TALLOC_CTX *_mem_save_driver_path_0;
8163 uint32_t _ptr_data_file;
8164 TALLOC_CTX *_mem_save_data_file_0;
8165 uint32_t _ptr_config_file;
8166 TALLOC_CTX *_mem_save_config_file_0;
8167 uint32_t _ptr_help_file;
8168 TALLOC_CTX *_mem_save_help_file_0;
8169 uint32_t _ptr_monitor_name;
8170 TALLOC_CTX *_mem_save_monitor_name_0;
8171 uint32_t _ptr_default_datatype;
8172 TALLOC_CTX *_mem_save_default_datatype_0;
8173 uint32_t _ptr_dependent_files;
8174 TALLOC_CTX *_mem_save_dependent_files_0;
8175 uint32_t _ptr_previous_names;
8176 TALLOC_CTX *_mem_save_previous_names_0;
8177 if (ndr_flags & NDR_SCALARS) {
8178 NDR_CHECK(ndr_pull_align(ndr, 4));
8179 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8181 if (_ptr_driver_name) {
8182 NDR_PULL_ALLOC(ndr, r->driver_name);
8183 } else {
8184 r->driver_name = NULL;
8186 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8187 if (_ptr_architecture) {
8188 NDR_PULL_ALLOC(ndr, r->architecture);
8189 } else {
8190 r->architecture = NULL;
8192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8193 if (_ptr_driver_path) {
8194 NDR_PULL_ALLOC(ndr, r->driver_path);
8195 } else {
8196 r->driver_path = NULL;
8198 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8199 if (_ptr_data_file) {
8200 NDR_PULL_ALLOC(ndr, r->data_file);
8201 } else {
8202 r->data_file = NULL;
8204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8205 if (_ptr_config_file) {
8206 NDR_PULL_ALLOC(ndr, r->config_file);
8207 } else {
8208 r->config_file = NULL;
8210 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8211 if (_ptr_help_file) {
8212 NDR_PULL_ALLOC(ndr, r->help_file);
8213 } else {
8214 r->help_file = NULL;
8216 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8217 if (_ptr_monitor_name) {
8218 NDR_PULL_ALLOC(ndr, r->monitor_name);
8219 } else {
8220 r->monitor_name = NULL;
8222 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8223 if (_ptr_default_datatype) {
8224 NDR_PULL_ALLOC(ndr, r->default_datatype);
8225 } else {
8226 r->default_datatype = NULL;
8228 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8230 if (_ptr_dependent_files) {
8231 NDR_PULL_ALLOC(ndr, r->dependent_files);
8232 } else {
8233 r->dependent_files = NULL;
8235 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8236 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8237 if (_ptr_previous_names) {
8238 NDR_PULL_ALLOC(ndr, r->previous_names);
8239 } else {
8240 r->previous_names = NULL;
8243 if (ndr_flags & NDR_BUFFERS) {
8244 if (r->driver_name) {
8245 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8246 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8247 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8248 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8249 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8250 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));
8252 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8253 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8254 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8256 if (r->architecture) {
8257 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8258 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8259 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8260 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8261 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8262 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));
8264 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8265 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8266 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8268 if (r->driver_path) {
8269 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8270 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8271 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8272 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8273 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8274 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));
8276 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8277 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8280 if (r->data_file) {
8281 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8282 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8283 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8284 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8285 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8286 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));
8288 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8289 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8292 if (r->config_file) {
8293 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8294 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8295 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8296 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8297 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8298 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));
8300 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8301 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8304 if (r->help_file) {
8305 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8306 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8307 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8308 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8309 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8310 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));
8312 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8313 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8314 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8316 if (r->monitor_name) {
8317 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8318 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8319 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8320 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8321 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8322 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));
8324 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8325 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8328 if (r->default_datatype) {
8329 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8330 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8331 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8332 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8333 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8334 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));
8336 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8337 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8340 if (r->dependent_files) {
8341 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8342 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8343 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8346 if (r->previous_names) {
8347 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8348 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8349 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8353 return NDR_ERR_SUCCESS;
8356 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
8358 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
8359 ndr->depth++;
8360 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8361 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8362 ndr->depth++;
8363 if (r->driver_name) {
8364 ndr_print_string(ndr, "driver_name", r->driver_name);
8366 ndr->depth--;
8367 ndr_print_ptr(ndr, "architecture", r->architecture);
8368 ndr->depth++;
8369 if (r->architecture) {
8370 ndr_print_string(ndr, "architecture", r->architecture);
8372 ndr->depth--;
8373 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8374 ndr->depth++;
8375 if (r->driver_path) {
8376 ndr_print_string(ndr, "driver_path", r->driver_path);
8378 ndr->depth--;
8379 ndr_print_ptr(ndr, "data_file", r->data_file);
8380 ndr->depth++;
8381 if (r->data_file) {
8382 ndr_print_string(ndr, "data_file", r->data_file);
8384 ndr->depth--;
8385 ndr_print_ptr(ndr, "config_file", r->config_file);
8386 ndr->depth++;
8387 if (r->config_file) {
8388 ndr_print_string(ndr, "config_file", r->config_file);
8390 ndr->depth--;
8391 ndr_print_ptr(ndr, "help_file", r->help_file);
8392 ndr->depth++;
8393 if (r->help_file) {
8394 ndr_print_string(ndr, "help_file", r->help_file);
8396 ndr->depth--;
8397 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8398 ndr->depth++;
8399 if (r->monitor_name) {
8400 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8402 ndr->depth--;
8403 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8404 ndr->depth++;
8405 if (r->default_datatype) {
8406 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8408 ndr->depth--;
8409 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);
8410 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8411 ndr->depth++;
8412 if (r->dependent_files) {
8413 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8415 ndr->depth--;
8416 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);
8417 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8418 ndr->depth++;
8419 if (r->previous_names) {
8420 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8422 ndr->depth--;
8423 ndr->depth--;
8426 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
8428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8429 return NDR_ERR_SUCCESS;
8432 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
8434 uint32_t v;
8435 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8436 *r = v;
8437 return NDR_ERR_SUCCESS;
8440 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
8442 ndr_print_uint32(ndr, name, r);
8443 ndr->depth++;
8444 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
8445 ndr->depth--;
8448 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
8450 if (ndr_flags & NDR_SCALARS) {
8451 NDR_CHECK(ndr_push_align(ndr, 8));
8452 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8453 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8454 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8455 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8456 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8457 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8458 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8459 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8460 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8462 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8465 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8466 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8467 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8468 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8469 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8470 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8472 if (ndr_flags & NDR_BUFFERS) {
8473 if (r->driver_name) {
8474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8477 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8479 if (r->architecture) {
8480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8483 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8485 if (r->driver_path) {
8486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8487 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8489 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8491 if (r->data_file) {
8492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8494 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8495 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8497 if (r->config_file) {
8498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8501 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8503 if (r->help_file) {
8504 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8506 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8507 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8509 if (r->monitor_name) {
8510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8513 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8515 if (r->default_datatype) {
8516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8519 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8521 if (r->dependent_files) {
8522 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8524 if (r->previous_names) {
8525 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8527 if (r->manufacturer_name) {
8528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8531 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8533 if (r->manufacturer_url) {
8534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8537 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8539 if (r->hardware_id) {
8540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8543 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8545 if (r->provider) {
8546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8549 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8552 return NDR_ERR_SUCCESS;
8555 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
8557 uint32_t _ptr_driver_name;
8558 TALLOC_CTX *_mem_save_driver_name_0;
8559 uint32_t _ptr_architecture;
8560 TALLOC_CTX *_mem_save_architecture_0;
8561 uint32_t _ptr_driver_path;
8562 TALLOC_CTX *_mem_save_driver_path_0;
8563 uint32_t _ptr_data_file;
8564 TALLOC_CTX *_mem_save_data_file_0;
8565 uint32_t _ptr_config_file;
8566 TALLOC_CTX *_mem_save_config_file_0;
8567 uint32_t _ptr_help_file;
8568 TALLOC_CTX *_mem_save_help_file_0;
8569 uint32_t _ptr_monitor_name;
8570 TALLOC_CTX *_mem_save_monitor_name_0;
8571 uint32_t _ptr_default_datatype;
8572 TALLOC_CTX *_mem_save_default_datatype_0;
8573 uint32_t _ptr_dependent_files;
8574 TALLOC_CTX *_mem_save_dependent_files_0;
8575 uint32_t _ptr_previous_names;
8576 TALLOC_CTX *_mem_save_previous_names_0;
8577 uint32_t _ptr_manufacturer_name;
8578 TALLOC_CTX *_mem_save_manufacturer_name_0;
8579 uint32_t _ptr_manufacturer_url;
8580 TALLOC_CTX *_mem_save_manufacturer_url_0;
8581 uint32_t _ptr_hardware_id;
8582 TALLOC_CTX *_mem_save_hardware_id_0;
8583 uint32_t _ptr_provider;
8584 TALLOC_CTX *_mem_save_provider_0;
8585 if (ndr_flags & NDR_SCALARS) {
8586 NDR_CHECK(ndr_pull_align(ndr, 8));
8587 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8588 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8589 if (_ptr_driver_name) {
8590 NDR_PULL_ALLOC(ndr, r->driver_name);
8591 } else {
8592 r->driver_name = NULL;
8594 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8595 if (_ptr_architecture) {
8596 NDR_PULL_ALLOC(ndr, r->architecture);
8597 } else {
8598 r->architecture = NULL;
8600 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8601 if (_ptr_driver_path) {
8602 NDR_PULL_ALLOC(ndr, r->driver_path);
8603 } else {
8604 r->driver_path = NULL;
8606 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8607 if (_ptr_data_file) {
8608 NDR_PULL_ALLOC(ndr, r->data_file);
8609 } else {
8610 r->data_file = NULL;
8612 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8613 if (_ptr_config_file) {
8614 NDR_PULL_ALLOC(ndr, r->config_file);
8615 } else {
8616 r->config_file = NULL;
8618 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8619 if (_ptr_help_file) {
8620 NDR_PULL_ALLOC(ndr, r->help_file);
8621 } else {
8622 r->help_file = NULL;
8624 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8625 if (_ptr_monitor_name) {
8626 NDR_PULL_ALLOC(ndr, r->monitor_name);
8627 } else {
8628 r->monitor_name = NULL;
8630 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8631 if (_ptr_default_datatype) {
8632 NDR_PULL_ALLOC(ndr, r->default_datatype);
8633 } else {
8634 r->default_datatype = NULL;
8636 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8638 if (_ptr_dependent_files) {
8639 NDR_PULL_ALLOC(ndr, r->dependent_files);
8640 } else {
8641 r->dependent_files = NULL;
8643 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8644 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8645 if (_ptr_previous_names) {
8646 NDR_PULL_ALLOC(ndr, r->previous_names);
8647 } else {
8648 r->previous_names = NULL;
8650 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
8651 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
8652 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
8653 if (_ptr_manufacturer_name) {
8654 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
8655 } else {
8656 r->manufacturer_name = NULL;
8658 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
8659 if (_ptr_manufacturer_url) {
8660 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
8661 } else {
8662 r->manufacturer_url = NULL;
8664 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
8665 if (_ptr_hardware_id) {
8666 NDR_PULL_ALLOC(ndr, r->hardware_id);
8667 } else {
8668 r->hardware_id = NULL;
8670 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
8671 if (_ptr_provider) {
8672 NDR_PULL_ALLOC(ndr, r->provider);
8673 } else {
8674 r->provider = NULL;
8677 if (ndr_flags & NDR_BUFFERS) {
8678 if (r->driver_name) {
8679 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8680 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8681 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8682 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8683 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8684 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));
8686 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8687 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8690 if (r->architecture) {
8691 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8692 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8693 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8694 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8695 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8696 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));
8698 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8699 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8700 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8702 if (r->driver_path) {
8703 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8704 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8705 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8706 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8707 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8708 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));
8710 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8711 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8714 if (r->data_file) {
8715 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8716 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8717 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8718 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8719 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8720 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));
8722 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8723 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8726 if (r->config_file) {
8727 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8728 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8729 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8730 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8731 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8732 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));
8734 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8735 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8738 if (r->help_file) {
8739 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8740 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8741 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8742 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8743 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8744 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));
8746 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8747 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8750 if (r->monitor_name) {
8751 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8752 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8753 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8754 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8755 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8756 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));
8758 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8759 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8760 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8762 if (r->default_datatype) {
8763 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8764 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8765 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8766 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8767 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8768 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));
8770 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8771 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8772 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8774 if (r->dependent_files) {
8775 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8776 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8777 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8778 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8780 if (r->previous_names) {
8781 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8782 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8783 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8786 if (r->manufacturer_name) {
8787 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8788 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
8789 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
8790 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
8791 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
8792 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));
8794 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
8795 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
8796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
8798 if (r->manufacturer_url) {
8799 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
8800 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
8801 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
8802 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
8803 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
8804 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));
8806 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
8807 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
8808 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
8810 if (r->hardware_id) {
8811 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
8812 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
8813 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
8814 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
8815 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
8816 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));
8818 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
8819 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
8820 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
8822 if (r->provider) {
8823 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
8824 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
8825 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
8826 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
8827 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
8828 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));
8830 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
8831 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
8832 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
8835 return NDR_ERR_SUCCESS;
8838 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
8840 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
8841 ndr->depth++;
8842 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8843 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8844 ndr->depth++;
8845 if (r->driver_name) {
8846 ndr_print_string(ndr, "driver_name", r->driver_name);
8848 ndr->depth--;
8849 ndr_print_ptr(ndr, "architecture", r->architecture);
8850 ndr->depth++;
8851 if (r->architecture) {
8852 ndr_print_string(ndr, "architecture", r->architecture);
8854 ndr->depth--;
8855 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8856 ndr->depth++;
8857 if (r->driver_path) {
8858 ndr_print_string(ndr, "driver_path", r->driver_path);
8860 ndr->depth--;
8861 ndr_print_ptr(ndr, "data_file", r->data_file);
8862 ndr->depth++;
8863 if (r->data_file) {
8864 ndr_print_string(ndr, "data_file", r->data_file);
8866 ndr->depth--;
8867 ndr_print_ptr(ndr, "config_file", r->config_file);
8868 ndr->depth++;
8869 if (r->config_file) {
8870 ndr_print_string(ndr, "config_file", r->config_file);
8872 ndr->depth--;
8873 ndr_print_ptr(ndr, "help_file", r->help_file);
8874 ndr->depth++;
8875 if (r->help_file) {
8876 ndr_print_string(ndr, "help_file", r->help_file);
8878 ndr->depth--;
8879 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8880 ndr->depth++;
8881 if (r->monitor_name) {
8882 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8884 ndr->depth--;
8885 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8886 ndr->depth++;
8887 if (r->default_datatype) {
8888 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8890 ndr->depth--;
8891 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);
8892 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8893 ndr->depth++;
8894 if (r->dependent_files) {
8895 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8897 ndr->depth--;
8898 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);
8899 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8900 ndr->depth++;
8901 if (r->previous_names) {
8902 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8904 ndr->depth--;
8905 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
8906 ndr_print_hyper(ndr, "driver_version", r->driver_version);
8907 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
8908 ndr->depth++;
8909 if (r->manufacturer_name) {
8910 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
8912 ndr->depth--;
8913 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
8914 ndr->depth++;
8915 if (r->manufacturer_url) {
8916 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
8918 ndr->depth--;
8919 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
8920 ndr->depth++;
8921 if (r->hardware_id) {
8922 ndr_print_string(ndr, "hardware_id", r->hardware_id);
8924 ndr->depth--;
8925 ndr_print_ptr(ndr, "provider", r->provider);
8926 ndr->depth++;
8927 if (r->provider) {
8928 ndr_print_string(ndr, "provider", r->provider);
8930 ndr->depth--;
8931 ndr->depth--;
8934 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
8936 if (ndr_flags & NDR_SCALARS) {
8937 NDR_CHECK(ndr_push_align(ndr, 8));
8938 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8939 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8940 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8941 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8942 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8943 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8944 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8945 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8946 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8947 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8948 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8949 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8950 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8951 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8952 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8953 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8954 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8955 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8956 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8957 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
8958 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
8959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8960 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
8961 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
8962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
8963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8964 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
8965 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
8966 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
8968 if (ndr_flags & NDR_BUFFERS) {
8969 if (r->driver_name) {
8970 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8971 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8972 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8973 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8975 if (r->architecture) {
8976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8979 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8981 if (r->driver_path) {
8982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8985 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8987 if (r->data_file) {
8988 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8991 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8993 if (r->config_file) {
8994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8997 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8999 if (r->help_file) {
9000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9002 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9003 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9005 if (r->monitor_name) {
9006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9007 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9008 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9009 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9011 if (r->default_datatype) {
9012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9015 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9017 if (r->dependent_files) {
9018 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9020 if (r->previous_names) {
9021 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9023 if (r->manufacturer_name) {
9024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9027 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9029 if (r->manufacturer_url) {
9030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9033 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9035 if (r->hardware_id) {
9036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9039 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9041 if (r->provider) {
9042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9045 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9047 if (r->print_processor) {
9048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9051 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9053 if (r->vendor_setup) {
9054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9057 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9059 if (r->color_profiles) {
9060 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9062 if (r->inf_path) {
9063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9066 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9068 if (r->core_driver_dependencies) {
9069 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9072 return NDR_ERR_SUCCESS;
9075 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
9077 uint32_t _ptr_driver_name;
9078 TALLOC_CTX *_mem_save_driver_name_0;
9079 uint32_t _ptr_architecture;
9080 TALLOC_CTX *_mem_save_architecture_0;
9081 uint32_t _ptr_driver_path;
9082 TALLOC_CTX *_mem_save_driver_path_0;
9083 uint32_t _ptr_data_file;
9084 TALLOC_CTX *_mem_save_data_file_0;
9085 uint32_t _ptr_config_file;
9086 TALLOC_CTX *_mem_save_config_file_0;
9087 uint32_t _ptr_help_file;
9088 TALLOC_CTX *_mem_save_help_file_0;
9089 uint32_t _ptr_monitor_name;
9090 TALLOC_CTX *_mem_save_monitor_name_0;
9091 uint32_t _ptr_default_datatype;
9092 TALLOC_CTX *_mem_save_default_datatype_0;
9093 uint32_t _ptr_dependent_files;
9094 TALLOC_CTX *_mem_save_dependent_files_0;
9095 uint32_t _ptr_previous_names;
9096 TALLOC_CTX *_mem_save_previous_names_0;
9097 uint32_t _ptr_manufacturer_name;
9098 TALLOC_CTX *_mem_save_manufacturer_name_0;
9099 uint32_t _ptr_manufacturer_url;
9100 TALLOC_CTX *_mem_save_manufacturer_url_0;
9101 uint32_t _ptr_hardware_id;
9102 TALLOC_CTX *_mem_save_hardware_id_0;
9103 uint32_t _ptr_provider;
9104 TALLOC_CTX *_mem_save_provider_0;
9105 uint32_t _ptr_print_processor;
9106 TALLOC_CTX *_mem_save_print_processor_0;
9107 uint32_t _ptr_vendor_setup;
9108 TALLOC_CTX *_mem_save_vendor_setup_0;
9109 uint32_t _ptr_color_profiles;
9110 TALLOC_CTX *_mem_save_color_profiles_0;
9111 uint32_t _ptr_inf_path;
9112 TALLOC_CTX *_mem_save_inf_path_0;
9113 uint32_t _ptr_core_driver_dependencies;
9114 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9115 if (ndr_flags & NDR_SCALARS) {
9116 NDR_CHECK(ndr_pull_align(ndr, 8));
9117 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9119 if (_ptr_driver_name) {
9120 NDR_PULL_ALLOC(ndr, r->driver_name);
9121 } else {
9122 r->driver_name = NULL;
9124 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9125 if (_ptr_architecture) {
9126 NDR_PULL_ALLOC(ndr, r->architecture);
9127 } else {
9128 r->architecture = NULL;
9130 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9131 if (_ptr_driver_path) {
9132 NDR_PULL_ALLOC(ndr, r->driver_path);
9133 } else {
9134 r->driver_path = NULL;
9136 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9137 if (_ptr_data_file) {
9138 NDR_PULL_ALLOC(ndr, r->data_file);
9139 } else {
9140 r->data_file = NULL;
9142 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9143 if (_ptr_config_file) {
9144 NDR_PULL_ALLOC(ndr, r->config_file);
9145 } else {
9146 r->config_file = NULL;
9148 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9149 if (_ptr_help_file) {
9150 NDR_PULL_ALLOC(ndr, r->help_file);
9151 } else {
9152 r->help_file = NULL;
9154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9155 if (_ptr_monitor_name) {
9156 NDR_PULL_ALLOC(ndr, r->monitor_name);
9157 } else {
9158 r->monitor_name = NULL;
9160 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9161 if (_ptr_default_datatype) {
9162 NDR_PULL_ALLOC(ndr, r->default_datatype);
9163 } else {
9164 r->default_datatype = NULL;
9166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9167 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9168 if (_ptr_dependent_files) {
9169 NDR_PULL_ALLOC(ndr, r->dependent_files);
9170 } else {
9171 r->dependent_files = NULL;
9173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9174 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9175 if (_ptr_previous_names) {
9176 NDR_PULL_ALLOC(ndr, r->previous_names);
9177 } else {
9178 r->previous_names = NULL;
9180 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9181 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9182 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9183 if (_ptr_manufacturer_name) {
9184 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9185 } else {
9186 r->manufacturer_name = NULL;
9188 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9189 if (_ptr_manufacturer_url) {
9190 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9191 } else {
9192 r->manufacturer_url = NULL;
9194 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9195 if (_ptr_hardware_id) {
9196 NDR_PULL_ALLOC(ndr, r->hardware_id);
9197 } else {
9198 r->hardware_id = NULL;
9200 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9201 if (_ptr_provider) {
9202 NDR_PULL_ALLOC(ndr, r->provider);
9203 } else {
9204 r->provider = NULL;
9206 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9207 if (_ptr_print_processor) {
9208 NDR_PULL_ALLOC(ndr, r->print_processor);
9209 } else {
9210 r->print_processor = NULL;
9212 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9213 if (_ptr_vendor_setup) {
9214 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9215 } else {
9216 r->vendor_setup = NULL;
9218 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9220 if (_ptr_color_profiles) {
9221 NDR_PULL_ALLOC(ndr, r->color_profiles);
9222 } else {
9223 r->color_profiles = NULL;
9225 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9226 if (_ptr_inf_path) {
9227 NDR_PULL_ALLOC(ndr, r->inf_path);
9228 } else {
9229 r->inf_path = NULL;
9231 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9232 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9233 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9234 if (_ptr_core_driver_dependencies) {
9235 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9236 } else {
9237 r->core_driver_dependencies = NULL;
9239 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9240 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9242 if (ndr_flags & NDR_BUFFERS) {
9243 if (r->driver_name) {
9244 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9245 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9246 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9247 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9248 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9249 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));
9251 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9252 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9253 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9255 if (r->architecture) {
9256 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9257 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9258 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9259 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9260 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9261 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));
9263 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9264 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9267 if (r->driver_path) {
9268 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9269 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9270 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9271 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9272 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9273 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));
9275 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9276 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9279 if (r->data_file) {
9280 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9281 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9282 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9283 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9284 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9285 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));
9287 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9288 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9291 if (r->config_file) {
9292 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9293 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9294 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9295 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9296 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9297 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));
9299 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9300 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9303 if (r->help_file) {
9304 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9305 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9306 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9307 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9308 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9309 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));
9311 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9312 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9315 if (r->monitor_name) {
9316 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9317 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9318 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9319 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9320 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9321 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));
9323 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9324 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9327 if (r->default_datatype) {
9328 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9329 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9330 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9331 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9332 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9333 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));
9335 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9336 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9339 if (r->dependent_files) {
9340 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9341 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9342 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9345 if (r->previous_names) {
9346 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9347 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9348 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9349 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9351 if (r->manufacturer_name) {
9352 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9353 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9354 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9355 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9356 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9357 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));
9359 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9360 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9363 if (r->manufacturer_url) {
9364 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9365 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9366 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9367 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9368 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9369 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));
9371 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9372 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9375 if (r->hardware_id) {
9376 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9377 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9378 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9379 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9380 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9381 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));
9383 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9384 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9387 if (r->provider) {
9388 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9389 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9390 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9391 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9392 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9393 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));
9395 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9396 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9399 if (r->print_processor) {
9400 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
9401 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
9402 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
9403 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
9404 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
9405 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));
9407 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
9408 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
9409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
9411 if (r->vendor_setup) {
9412 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
9413 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
9414 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
9415 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
9416 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
9417 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));
9419 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
9420 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
9421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
9423 if (r->color_profiles) {
9424 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
9425 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
9426 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
9429 if (r->inf_path) {
9430 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9431 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
9432 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
9433 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
9434 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
9435 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));
9437 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
9438 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
9439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
9441 if (r->core_driver_dependencies) {
9442 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
9443 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
9444 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
9448 return NDR_ERR_SUCCESS;
9451 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
9453 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
9454 ndr->depth++;
9455 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9456 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9457 ndr->depth++;
9458 if (r->driver_name) {
9459 ndr_print_string(ndr, "driver_name", r->driver_name);
9461 ndr->depth--;
9462 ndr_print_ptr(ndr, "architecture", r->architecture);
9463 ndr->depth++;
9464 if (r->architecture) {
9465 ndr_print_string(ndr, "architecture", r->architecture);
9467 ndr->depth--;
9468 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9469 ndr->depth++;
9470 if (r->driver_path) {
9471 ndr_print_string(ndr, "driver_path", r->driver_path);
9473 ndr->depth--;
9474 ndr_print_ptr(ndr, "data_file", r->data_file);
9475 ndr->depth++;
9476 if (r->data_file) {
9477 ndr_print_string(ndr, "data_file", r->data_file);
9479 ndr->depth--;
9480 ndr_print_ptr(ndr, "config_file", r->config_file);
9481 ndr->depth++;
9482 if (r->config_file) {
9483 ndr_print_string(ndr, "config_file", r->config_file);
9485 ndr->depth--;
9486 ndr_print_ptr(ndr, "help_file", r->help_file);
9487 ndr->depth++;
9488 if (r->help_file) {
9489 ndr_print_string(ndr, "help_file", r->help_file);
9491 ndr->depth--;
9492 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9493 ndr->depth++;
9494 if (r->monitor_name) {
9495 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9497 ndr->depth--;
9498 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9499 ndr->depth++;
9500 if (r->default_datatype) {
9501 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9503 ndr->depth--;
9504 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);
9505 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9506 ndr->depth++;
9507 if (r->dependent_files) {
9508 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9510 ndr->depth--;
9511 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);
9512 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9513 ndr->depth++;
9514 if (r->previous_names) {
9515 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9517 ndr->depth--;
9518 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9519 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9520 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9521 ndr->depth++;
9522 if (r->manufacturer_name) {
9523 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9525 ndr->depth--;
9526 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9527 ndr->depth++;
9528 if (r->manufacturer_url) {
9529 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9531 ndr->depth--;
9532 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9533 ndr->depth++;
9534 if (r->hardware_id) {
9535 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9537 ndr->depth--;
9538 ndr_print_ptr(ndr, "provider", r->provider);
9539 ndr->depth++;
9540 if (r->provider) {
9541 ndr_print_string(ndr, "provider", r->provider);
9543 ndr->depth--;
9544 ndr_print_ptr(ndr, "print_processor", r->print_processor);
9545 ndr->depth++;
9546 if (r->print_processor) {
9547 ndr_print_string(ndr, "print_processor", r->print_processor);
9549 ndr->depth--;
9550 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
9551 ndr->depth++;
9552 if (r->vendor_setup) {
9553 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
9555 ndr->depth--;
9556 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);
9557 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
9558 ndr->depth++;
9559 if (r->color_profiles) {
9560 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
9562 ndr->depth--;
9563 ndr_print_ptr(ndr, "inf_path", r->inf_path);
9564 ndr->depth++;
9565 if (r->inf_path) {
9566 ndr_print_string(ndr, "inf_path", r->inf_path);
9568 ndr->depth--;
9569 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
9570 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);
9571 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9572 ndr->depth++;
9573 if (r->core_driver_dependencies) {
9574 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9576 ndr->depth--;
9577 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
9578 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
9579 ndr->depth--;
9582 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
9584 if (ndr_flags & NDR_SCALARS) {
9585 int level = ndr_push_get_switch_value(ndr, r);
9586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9587 switch (level) {
9588 case 1: {
9589 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
9590 break; }
9592 case 2: {
9593 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
9594 break; }
9596 case 3: {
9597 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
9598 break; }
9600 case 4: {
9601 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
9602 break; }
9604 case 6: {
9605 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
9606 break; }
9608 case 8: {
9609 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
9610 break; }
9612 default:
9613 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9616 if (ndr_flags & NDR_BUFFERS) {
9617 int level = ndr_push_get_switch_value(ndr, r);
9618 switch (level) {
9619 case 1:
9620 if (r->info1) {
9621 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9623 break;
9625 case 2:
9626 if (r->info2) {
9627 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9629 break;
9631 case 3:
9632 if (r->info3) {
9633 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
9635 break;
9637 case 4:
9638 if (r->info4) {
9639 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9641 break;
9643 case 6:
9644 if (r->info6) {
9645 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
9647 break;
9649 case 8:
9650 if (r->info8) {
9651 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
9653 break;
9655 default:
9656 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9659 return NDR_ERR_SUCCESS;
9662 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
9664 int level;
9665 uint32_t _level;
9666 TALLOC_CTX *_mem_save_info1_0;
9667 TALLOC_CTX *_mem_save_info2_0;
9668 TALLOC_CTX *_mem_save_info3_0;
9669 TALLOC_CTX *_mem_save_info4_0;
9670 TALLOC_CTX *_mem_save_info6_0;
9671 TALLOC_CTX *_mem_save_info8_0;
9672 level = ndr_pull_get_switch_value(ndr, r);
9673 if (ndr_flags & NDR_SCALARS) {
9674 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9675 if (_level != level) {
9676 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
9678 switch (level) {
9679 case 1: {
9680 uint32_t _ptr_info1;
9681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
9682 if (_ptr_info1) {
9683 NDR_PULL_ALLOC(ndr, r->info1);
9684 } else {
9685 r->info1 = NULL;
9687 break; }
9689 case 2: {
9690 uint32_t _ptr_info2;
9691 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
9692 if (_ptr_info2) {
9693 NDR_PULL_ALLOC(ndr, r->info2);
9694 } else {
9695 r->info2 = NULL;
9697 break; }
9699 case 3: {
9700 uint32_t _ptr_info3;
9701 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
9702 if (_ptr_info3) {
9703 NDR_PULL_ALLOC(ndr, r->info3);
9704 } else {
9705 r->info3 = NULL;
9707 break; }
9709 case 4: {
9710 uint32_t _ptr_info4;
9711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
9712 if (_ptr_info4) {
9713 NDR_PULL_ALLOC(ndr, r->info4);
9714 } else {
9715 r->info4 = NULL;
9717 break; }
9719 case 6: {
9720 uint32_t _ptr_info6;
9721 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
9722 if (_ptr_info6) {
9723 NDR_PULL_ALLOC(ndr, r->info6);
9724 } else {
9725 r->info6 = NULL;
9727 break; }
9729 case 8: {
9730 uint32_t _ptr_info8;
9731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
9732 if (_ptr_info8) {
9733 NDR_PULL_ALLOC(ndr, r->info8);
9734 } else {
9735 r->info8 = NULL;
9737 break; }
9739 default:
9740 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9743 if (ndr_flags & NDR_BUFFERS) {
9744 switch (level) {
9745 case 1:
9746 if (r->info1) {
9747 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
9748 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
9749 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
9752 break;
9754 case 2:
9755 if (r->info2) {
9756 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
9757 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
9758 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9759 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
9761 break;
9763 case 3:
9764 if (r->info3) {
9765 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
9766 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
9767 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
9768 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
9770 break;
9772 case 4:
9773 if (r->info4) {
9774 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
9775 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
9776 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9777 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
9779 break;
9781 case 6:
9782 if (r->info6) {
9783 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
9784 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
9785 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
9786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
9788 break;
9790 case 8:
9791 if (r->info8) {
9792 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
9793 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
9794 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
9795 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
9797 break;
9799 default:
9800 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9803 return NDR_ERR_SUCCESS;
9806 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
9808 int level;
9809 level = ndr_print_get_switch_value(ndr, r);
9810 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
9811 switch (level) {
9812 case 1:
9813 ndr_print_ptr(ndr, "info1", r->info1);
9814 ndr->depth++;
9815 if (r->info1) {
9816 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
9818 ndr->depth--;
9819 break;
9821 case 2:
9822 ndr_print_ptr(ndr, "info2", r->info2);
9823 ndr->depth++;
9824 if (r->info2) {
9825 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
9827 ndr->depth--;
9828 break;
9830 case 3:
9831 ndr_print_ptr(ndr, "info3", r->info3);
9832 ndr->depth++;
9833 if (r->info3) {
9834 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
9836 ndr->depth--;
9837 break;
9839 case 4:
9840 ndr_print_ptr(ndr, "info4", r->info4);
9841 ndr->depth++;
9842 if (r->info4) {
9843 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
9845 ndr->depth--;
9846 break;
9848 case 6:
9849 ndr_print_ptr(ndr, "info6", r->info6);
9850 ndr->depth++;
9851 if (r->info6) {
9852 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
9854 ndr->depth--;
9855 break;
9857 case 8:
9858 ndr_print_ptr(ndr, "info8", r->info8);
9859 ndr->depth++;
9860 if (r->info8) {
9861 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
9863 ndr->depth--;
9864 break;
9866 default:
9867 ndr_print_bad_level(ndr, name, level);
9871 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
9873 if (ndr_flags & NDR_SCALARS) {
9874 NDR_CHECK(ndr_push_align(ndr, 4));
9875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
9876 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
9877 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
9879 if (ndr_flags & NDR_BUFFERS) {
9880 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
9882 return NDR_ERR_SUCCESS;
9885 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
9887 if (ndr_flags & NDR_SCALARS) {
9888 NDR_CHECK(ndr_pull_align(ndr, 4));
9889 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
9890 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
9891 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
9893 if (ndr_flags & NDR_BUFFERS) {
9894 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
9896 return NDR_ERR_SUCCESS;
9899 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
9901 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
9902 ndr->depth++;
9903 ndr_print_uint32(ndr, "level", r->level);
9904 ndr_print_set_switch_value(ndr, &r->info, r->level);
9905 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
9906 ndr->depth--;
9909 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
9911 if (ndr_flags & NDR_SCALARS) {
9912 NDR_CHECK(ndr_push_align(ndr, 4));
9914 uint32_t _flags_save_string = ndr->flags;
9915 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9916 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9917 ndr->flags = _flags_save_string;
9920 if (ndr_flags & NDR_BUFFERS) {
9922 uint32_t _flags_save_string = ndr->flags;
9923 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9924 if (r->driver_name) {
9925 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
9926 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9927 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
9929 ndr->flags = _flags_save_string;
9932 return NDR_ERR_SUCCESS;
9935 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
9937 uint32_t _ptr_driver_name;
9938 TALLOC_CTX *_mem_save_driver_name_0;
9939 if (ndr_flags & NDR_SCALARS) {
9940 NDR_CHECK(ndr_pull_align(ndr, 4));
9942 uint32_t _flags_save_string = ndr->flags;
9943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9944 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9945 if (_ptr_driver_name) {
9946 NDR_PULL_ALLOC(ndr, r->driver_name);
9947 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9948 } else {
9949 r->driver_name = NULL;
9951 ndr->flags = _flags_save_string;
9954 if (ndr_flags & NDR_BUFFERS) {
9956 uint32_t _flags_save_string = ndr->flags;
9957 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9958 if (r->driver_name) {
9959 uint32_t _relative_save_offset;
9960 _relative_save_offset = ndr->offset;
9961 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9962 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9963 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9964 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9965 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9966 ndr->offset = _relative_save_offset;
9968 ndr->flags = _flags_save_string;
9971 return NDR_ERR_SUCCESS;
9974 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
9976 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
9977 ndr->depth++;
9978 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9979 ndr->depth++;
9980 if (r->driver_name) {
9981 ndr_print_string(ndr, "driver_name", r->driver_name);
9983 ndr->depth--;
9984 ndr->depth--;
9987 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
9989 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
9992 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
9994 if (ndr_flags & NDR_SCALARS) {
9995 NDR_CHECK(ndr_push_align(ndr, 4));
9996 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9998 uint32_t _flags_save_string = ndr->flags;
9999 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10000 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10001 ndr->flags = _flags_save_string;
10004 uint32_t _flags_save_string = ndr->flags;
10005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10006 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10007 ndr->flags = _flags_save_string;
10010 uint32_t _flags_save_string = ndr->flags;
10011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10012 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10013 ndr->flags = _flags_save_string;
10016 uint32_t _flags_save_string = ndr->flags;
10017 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10018 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10019 ndr->flags = _flags_save_string;
10022 uint32_t _flags_save_string = ndr->flags;
10023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10024 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10025 ndr->flags = _flags_save_string;
10028 if (ndr_flags & NDR_BUFFERS) {
10030 uint32_t _flags_save_string = ndr->flags;
10031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10032 if (r->driver_name) {
10033 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10034 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10035 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10037 ndr->flags = _flags_save_string;
10040 uint32_t _flags_save_string = ndr->flags;
10041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10042 if (r->architecture) {
10043 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
10044 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10045 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
10047 ndr->flags = _flags_save_string;
10050 uint32_t _flags_save_string = ndr->flags;
10051 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10052 if (r->driver_path) {
10053 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
10054 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10055 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
10057 ndr->flags = _flags_save_string;
10060 uint32_t _flags_save_string = ndr->flags;
10061 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10062 if (r->data_file) {
10063 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
10064 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10065 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
10067 ndr->flags = _flags_save_string;
10070 uint32_t _flags_save_string = ndr->flags;
10071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10072 if (r->config_file) {
10073 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
10074 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10075 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
10077 ndr->flags = _flags_save_string;
10080 return NDR_ERR_SUCCESS;
10083 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
10085 uint32_t _ptr_driver_name;
10086 TALLOC_CTX *_mem_save_driver_name_0;
10087 uint32_t _ptr_architecture;
10088 TALLOC_CTX *_mem_save_architecture_0;
10089 uint32_t _ptr_driver_path;
10090 TALLOC_CTX *_mem_save_driver_path_0;
10091 uint32_t _ptr_data_file;
10092 TALLOC_CTX *_mem_save_data_file_0;
10093 uint32_t _ptr_config_file;
10094 TALLOC_CTX *_mem_save_config_file_0;
10095 if (ndr_flags & NDR_SCALARS) {
10096 NDR_CHECK(ndr_pull_align(ndr, 4));
10097 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10099 uint32_t _flags_save_string = ndr->flags;
10100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10101 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10102 if (_ptr_driver_name) {
10103 NDR_PULL_ALLOC(ndr, r->driver_name);
10104 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10105 } else {
10106 r->driver_name = NULL;
10108 ndr->flags = _flags_save_string;
10111 uint32_t _flags_save_string = ndr->flags;
10112 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10113 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10114 if (_ptr_architecture) {
10115 NDR_PULL_ALLOC(ndr, r->architecture);
10116 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10117 } else {
10118 r->architecture = NULL;
10120 ndr->flags = _flags_save_string;
10123 uint32_t _flags_save_string = ndr->flags;
10124 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10125 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10126 if (_ptr_driver_path) {
10127 NDR_PULL_ALLOC(ndr, r->driver_path);
10128 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10129 } else {
10130 r->driver_path = NULL;
10132 ndr->flags = _flags_save_string;
10135 uint32_t _flags_save_string = ndr->flags;
10136 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10137 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10138 if (_ptr_data_file) {
10139 NDR_PULL_ALLOC(ndr, r->data_file);
10140 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10141 } else {
10142 r->data_file = NULL;
10144 ndr->flags = _flags_save_string;
10147 uint32_t _flags_save_string = ndr->flags;
10148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10149 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10150 if (_ptr_config_file) {
10151 NDR_PULL_ALLOC(ndr, r->config_file);
10152 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10153 } else {
10154 r->config_file = NULL;
10156 ndr->flags = _flags_save_string;
10159 if (ndr_flags & NDR_BUFFERS) {
10161 uint32_t _flags_save_string = ndr->flags;
10162 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10163 if (r->driver_name) {
10164 uint32_t _relative_save_offset;
10165 _relative_save_offset = ndr->offset;
10166 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10167 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10168 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10169 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10170 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10171 ndr->offset = _relative_save_offset;
10173 ndr->flags = _flags_save_string;
10176 uint32_t _flags_save_string = ndr->flags;
10177 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10178 if (r->architecture) {
10179 uint32_t _relative_save_offset;
10180 _relative_save_offset = ndr->offset;
10181 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10182 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10183 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10184 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10185 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10186 ndr->offset = _relative_save_offset;
10188 ndr->flags = _flags_save_string;
10191 uint32_t _flags_save_string = ndr->flags;
10192 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10193 if (r->driver_path) {
10194 uint32_t _relative_save_offset;
10195 _relative_save_offset = ndr->offset;
10196 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10197 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10198 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10199 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10201 ndr->offset = _relative_save_offset;
10203 ndr->flags = _flags_save_string;
10206 uint32_t _flags_save_string = ndr->flags;
10207 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10208 if (r->data_file) {
10209 uint32_t _relative_save_offset;
10210 _relative_save_offset = ndr->offset;
10211 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10212 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10213 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10214 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10216 ndr->offset = _relative_save_offset;
10218 ndr->flags = _flags_save_string;
10221 uint32_t _flags_save_string = ndr->flags;
10222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10223 if (r->config_file) {
10224 uint32_t _relative_save_offset;
10225 _relative_save_offset = ndr->offset;
10226 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10227 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10228 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10229 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10230 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10231 ndr->offset = _relative_save_offset;
10233 ndr->flags = _flags_save_string;
10236 return NDR_ERR_SUCCESS;
10239 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10241 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10242 ndr->depth++;
10243 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10244 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10245 ndr->depth++;
10246 if (r->driver_name) {
10247 ndr_print_string(ndr, "driver_name", r->driver_name);
10249 ndr->depth--;
10250 ndr_print_ptr(ndr, "architecture", r->architecture);
10251 ndr->depth++;
10252 if (r->architecture) {
10253 ndr_print_string(ndr, "architecture", r->architecture);
10255 ndr->depth--;
10256 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10257 ndr->depth++;
10258 if (r->driver_path) {
10259 ndr_print_string(ndr, "driver_path", r->driver_path);
10261 ndr->depth--;
10262 ndr_print_ptr(ndr, "data_file", r->data_file);
10263 ndr->depth++;
10264 if (r->data_file) {
10265 ndr_print_string(ndr, "data_file", r->data_file);
10267 ndr->depth--;
10268 ndr_print_ptr(ndr, "config_file", r->config_file);
10269 ndr->depth++;
10270 if (r->config_file) {
10271 ndr_print_string(ndr, "config_file", r->config_file);
10273 ndr->depth--;
10274 ndr->depth--;
10277 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10279 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10282 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10284 if (ndr_flags & NDR_SCALARS) {
10285 NDR_CHECK(ndr_push_align(ndr, 4));
10286 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10288 uint32_t _flags_save_string = ndr->flags;
10289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10290 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10291 ndr->flags = _flags_save_string;
10294 uint32_t _flags_save_string = ndr->flags;
10295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10296 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10297 ndr->flags = _flags_save_string;
10300 uint32_t _flags_save_string = ndr->flags;
10301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10302 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10303 ndr->flags = _flags_save_string;
10306 uint32_t _flags_save_string = ndr->flags;
10307 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10308 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10309 ndr->flags = _flags_save_string;
10312 uint32_t _flags_save_string = ndr->flags;
10313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10314 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10315 ndr->flags = _flags_save_string;
10318 uint32_t _flags_save_string = ndr->flags;
10319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10320 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10321 ndr->flags = _flags_save_string;
10324 uint32_t _flags_save_string_array = ndr->flags;
10325 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10326 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10327 ndr->flags = _flags_save_string_array;
10330 uint32_t _flags_save_string = ndr->flags;
10331 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10332 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10333 ndr->flags = _flags_save_string;
10336 uint32_t _flags_save_string = ndr->flags;
10337 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10338 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10339 ndr->flags = _flags_save_string;
10342 if (ndr_flags & NDR_BUFFERS) {
10344 uint32_t _flags_save_string = ndr->flags;
10345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10346 if (r->driver_name) {
10347 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10348 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10349 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10351 ndr->flags = _flags_save_string;
10354 uint32_t _flags_save_string = ndr->flags;
10355 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10356 if (r->architecture) {
10357 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
10358 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10359 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
10361 ndr->flags = _flags_save_string;
10364 uint32_t _flags_save_string = ndr->flags;
10365 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10366 if (r->driver_path) {
10367 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
10368 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10369 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
10371 ndr->flags = _flags_save_string;
10374 uint32_t _flags_save_string = ndr->flags;
10375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10376 if (r->data_file) {
10377 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
10378 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10379 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
10381 ndr->flags = _flags_save_string;
10384 uint32_t _flags_save_string = ndr->flags;
10385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10386 if (r->config_file) {
10387 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
10388 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10389 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
10391 ndr->flags = _flags_save_string;
10394 uint32_t _flags_save_string = ndr->flags;
10395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10396 if (r->help_file) {
10397 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
10398 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10399 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
10401 ndr->flags = _flags_save_string;
10404 uint32_t _flags_save_string_array = ndr->flags;
10405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10406 if (r->dependent_files) {
10407 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
10408 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10409 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
10411 ndr->flags = _flags_save_string_array;
10414 uint32_t _flags_save_string = ndr->flags;
10415 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10416 if (r->monitor_name) {
10417 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
10418 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10419 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
10421 ndr->flags = _flags_save_string;
10424 uint32_t _flags_save_string = ndr->flags;
10425 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10426 if (r->default_datatype) {
10427 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
10428 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10429 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
10431 ndr->flags = _flags_save_string;
10434 return NDR_ERR_SUCCESS;
10437 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
10439 uint32_t _ptr_driver_name;
10440 TALLOC_CTX *_mem_save_driver_name_0;
10441 uint32_t _ptr_architecture;
10442 TALLOC_CTX *_mem_save_architecture_0;
10443 uint32_t _ptr_driver_path;
10444 TALLOC_CTX *_mem_save_driver_path_0;
10445 uint32_t _ptr_data_file;
10446 TALLOC_CTX *_mem_save_data_file_0;
10447 uint32_t _ptr_config_file;
10448 TALLOC_CTX *_mem_save_config_file_0;
10449 uint32_t _ptr_help_file;
10450 TALLOC_CTX *_mem_save_help_file_0;
10451 uint32_t _ptr_dependent_files;
10452 TALLOC_CTX *_mem_save_dependent_files_0;
10453 uint32_t _ptr_monitor_name;
10454 TALLOC_CTX *_mem_save_monitor_name_0;
10455 uint32_t _ptr_default_datatype;
10456 TALLOC_CTX *_mem_save_default_datatype_0;
10457 if (ndr_flags & NDR_SCALARS) {
10458 NDR_CHECK(ndr_pull_align(ndr, 4));
10459 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10461 uint32_t _flags_save_string = ndr->flags;
10462 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10463 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10464 if (_ptr_driver_name) {
10465 NDR_PULL_ALLOC(ndr, r->driver_name);
10466 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10467 } else {
10468 r->driver_name = NULL;
10470 ndr->flags = _flags_save_string;
10473 uint32_t _flags_save_string = ndr->flags;
10474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10475 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10476 if (_ptr_architecture) {
10477 NDR_PULL_ALLOC(ndr, r->architecture);
10478 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10479 } else {
10480 r->architecture = NULL;
10482 ndr->flags = _flags_save_string;
10485 uint32_t _flags_save_string = ndr->flags;
10486 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10487 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10488 if (_ptr_driver_path) {
10489 NDR_PULL_ALLOC(ndr, r->driver_path);
10490 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10491 } else {
10492 r->driver_path = NULL;
10494 ndr->flags = _flags_save_string;
10497 uint32_t _flags_save_string = ndr->flags;
10498 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10499 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10500 if (_ptr_data_file) {
10501 NDR_PULL_ALLOC(ndr, r->data_file);
10502 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10503 } else {
10504 r->data_file = NULL;
10506 ndr->flags = _flags_save_string;
10509 uint32_t _flags_save_string = ndr->flags;
10510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10511 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10512 if (_ptr_config_file) {
10513 NDR_PULL_ALLOC(ndr, r->config_file);
10514 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10515 } else {
10516 r->config_file = NULL;
10518 ndr->flags = _flags_save_string;
10521 uint32_t _flags_save_string = ndr->flags;
10522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10523 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10524 if (_ptr_help_file) {
10525 NDR_PULL_ALLOC(ndr, r->help_file);
10526 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10527 } else {
10528 r->help_file = NULL;
10530 ndr->flags = _flags_save_string;
10533 uint32_t _flags_save_string_array = ndr->flags;
10534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10535 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10536 if (_ptr_dependent_files) {
10537 NDR_PULL_ALLOC(ndr, r->dependent_files);
10538 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10539 } else {
10540 r->dependent_files = NULL;
10542 ndr->flags = _flags_save_string_array;
10545 uint32_t _flags_save_string = ndr->flags;
10546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10548 if (_ptr_monitor_name) {
10549 NDR_PULL_ALLOC(ndr, r->monitor_name);
10550 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10551 } else {
10552 r->monitor_name = NULL;
10554 ndr->flags = _flags_save_string;
10557 uint32_t _flags_save_string = ndr->flags;
10558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10560 if (_ptr_default_datatype) {
10561 NDR_PULL_ALLOC(ndr, r->default_datatype);
10562 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10563 } else {
10564 r->default_datatype = NULL;
10566 ndr->flags = _flags_save_string;
10569 if (ndr_flags & NDR_BUFFERS) {
10571 uint32_t _flags_save_string = ndr->flags;
10572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10573 if (r->driver_name) {
10574 uint32_t _relative_save_offset;
10575 _relative_save_offset = ndr->offset;
10576 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10577 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10578 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10579 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10580 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10581 ndr->offset = _relative_save_offset;
10583 ndr->flags = _flags_save_string;
10586 uint32_t _flags_save_string = ndr->flags;
10587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10588 if (r->architecture) {
10589 uint32_t _relative_save_offset;
10590 _relative_save_offset = ndr->offset;
10591 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10592 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10593 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10594 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10596 ndr->offset = _relative_save_offset;
10598 ndr->flags = _flags_save_string;
10601 uint32_t _flags_save_string = ndr->flags;
10602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10603 if (r->driver_path) {
10604 uint32_t _relative_save_offset;
10605 _relative_save_offset = ndr->offset;
10606 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10607 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10608 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10609 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10611 ndr->offset = _relative_save_offset;
10613 ndr->flags = _flags_save_string;
10616 uint32_t _flags_save_string = ndr->flags;
10617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10618 if (r->data_file) {
10619 uint32_t _relative_save_offset;
10620 _relative_save_offset = ndr->offset;
10621 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10622 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10623 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10624 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10626 ndr->offset = _relative_save_offset;
10628 ndr->flags = _flags_save_string;
10631 uint32_t _flags_save_string = ndr->flags;
10632 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10633 if (r->config_file) {
10634 uint32_t _relative_save_offset;
10635 _relative_save_offset = ndr->offset;
10636 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10637 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10638 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10639 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10641 ndr->offset = _relative_save_offset;
10643 ndr->flags = _flags_save_string;
10646 uint32_t _flags_save_string = ndr->flags;
10647 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10648 if (r->help_file) {
10649 uint32_t _relative_save_offset;
10650 _relative_save_offset = ndr->offset;
10651 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10652 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10653 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10654 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10655 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10656 ndr->offset = _relative_save_offset;
10658 ndr->flags = _flags_save_string;
10661 uint32_t _flags_save_string_array = ndr->flags;
10662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10663 if (r->dependent_files) {
10664 uint32_t _relative_save_offset;
10665 _relative_save_offset = ndr->offset;
10666 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10667 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10668 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10669 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
10670 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10671 ndr->offset = _relative_save_offset;
10673 ndr->flags = _flags_save_string_array;
10676 uint32_t _flags_save_string = ndr->flags;
10677 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10678 if (r->monitor_name) {
10679 uint32_t _relative_save_offset;
10680 _relative_save_offset = ndr->offset;
10681 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10682 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10683 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10684 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10686 ndr->offset = _relative_save_offset;
10688 ndr->flags = _flags_save_string;
10691 uint32_t _flags_save_string = ndr->flags;
10692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10693 if (r->default_datatype) {
10694 uint32_t _relative_save_offset;
10695 _relative_save_offset = ndr->offset;
10696 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
10697 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10698 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10699 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
10700 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10701 ndr->offset = _relative_save_offset;
10703 ndr->flags = _flags_save_string;
10706 return NDR_ERR_SUCCESS;
10709 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
10711 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
10712 ndr->depth++;
10713 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10714 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10715 ndr->depth++;
10716 if (r->driver_name) {
10717 ndr_print_string(ndr, "driver_name", r->driver_name);
10719 ndr->depth--;
10720 ndr_print_ptr(ndr, "architecture", r->architecture);
10721 ndr->depth++;
10722 if (r->architecture) {
10723 ndr_print_string(ndr, "architecture", r->architecture);
10725 ndr->depth--;
10726 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10727 ndr->depth++;
10728 if (r->driver_path) {
10729 ndr_print_string(ndr, "driver_path", r->driver_path);
10731 ndr->depth--;
10732 ndr_print_ptr(ndr, "data_file", r->data_file);
10733 ndr->depth++;
10734 if (r->data_file) {
10735 ndr_print_string(ndr, "data_file", r->data_file);
10737 ndr->depth--;
10738 ndr_print_ptr(ndr, "config_file", r->config_file);
10739 ndr->depth++;
10740 if (r->config_file) {
10741 ndr_print_string(ndr, "config_file", r->config_file);
10743 ndr->depth--;
10744 ndr_print_ptr(ndr, "help_file", r->help_file);
10745 ndr->depth++;
10746 if (r->help_file) {
10747 ndr_print_string(ndr, "help_file", r->help_file);
10749 ndr->depth--;
10750 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10751 ndr->depth++;
10752 if (r->dependent_files) {
10753 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
10755 ndr->depth--;
10756 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10757 ndr->depth++;
10758 if (r->monitor_name) {
10759 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10761 ndr->depth--;
10762 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10763 ndr->depth++;
10764 if (r->default_datatype) {
10765 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10767 ndr->depth--;
10768 ndr->depth--;
10771 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
10773 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
10776 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
10778 if (ndr_flags & NDR_SCALARS) {
10779 NDR_CHECK(ndr_push_align(ndr, 4));
10780 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10782 uint32_t _flags_save_string = ndr->flags;
10783 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10784 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10785 ndr->flags = _flags_save_string;
10788 uint32_t _flags_save_string = ndr->flags;
10789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10790 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10791 ndr->flags = _flags_save_string;
10794 uint32_t _flags_save_string = ndr->flags;
10795 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10796 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10797 ndr->flags = _flags_save_string;
10800 uint32_t _flags_save_string = ndr->flags;
10801 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10802 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10803 ndr->flags = _flags_save_string;
10806 uint32_t _flags_save_string = ndr->flags;
10807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10808 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10809 ndr->flags = _flags_save_string;
10812 uint32_t _flags_save_string = ndr->flags;
10813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10814 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10815 ndr->flags = _flags_save_string;
10818 uint32_t _flags_save_string_array = ndr->flags;
10819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10820 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10821 ndr->flags = _flags_save_string_array;
10824 uint32_t _flags_save_string = ndr->flags;
10825 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10826 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10827 ndr->flags = _flags_save_string;
10830 uint32_t _flags_save_string = ndr->flags;
10831 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10832 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10833 ndr->flags = _flags_save_string;
10836 uint32_t _flags_save_string_array = ndr->flags;
10837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10838 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
10839 ndr->flags = _flags_save_string_array;
10842 if (ndr_flags & NDR_BUFFERS) {
10844 uint32_t _flags_save_string = ndr->flags;
10845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10846 if (r->driver_name) {
10847 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10848 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10849 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10851 ndr->flags = _flags_save_string;
10854 uint32_t _flags_save_string = ndr->flags;
10855 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10856 if (r->architecture) {
10857 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
10858 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10859 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
10861 ndr->flags = _flags_save_string;
10864 uint32_t _flags_save_string = ndr->flags;
10865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10866 if (r->driver_path) {
10867 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
10868 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10869 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
10871 ndr->flags = _flags_save_string;
10874 uint32_t _flags_save_string = ndr->flags;
10875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10876 if (r->data_file) {
10877 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
10878 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10879 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
10881 ndr->flags = _flags_save_string;
10884 uint32_t _flags_save_string = ndr->flags;
10885 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10886 if (r->config_file) {
10887 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
10888 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10889 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
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->help_file) {
10897 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
10898 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10899 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
10901 ndr->flags = _flags_save_string;
10904 uint32_t _flags_save_string_array = ndr->flags;
10905 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10906 if (r->dependent_files) {
10907 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
10908 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10909 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
10911 ndr->flags = _flags_save_string_array;
10914 uint32_t _flags_save_string = ndr->flags;
10915 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10916 if (r->monitor_name) {
10917 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
10918 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10919 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
10921 ndr->flags = _flags_save_string;
10924 uint32_t _flags_save_string = ndr->flags;
10925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10926 if (r->default_datatype) {
10927 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
10928 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10929 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
10931 ndr->flags = _flags_save_string;
10934 uint32_t _flags_save_string_array = ndr->flags;
10935 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10936 if (r->previous_names) {
10937 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
10938 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
10939 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
10941 ndr->flags = _flags_save_string_array;
10944 return NDR_ERR_SUCCESS;
10947 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
10949 uint32_t _ptr_driver_name;
10950 TALLOC_CTX *_mem_save_driver_name_0;
10951 uint32_t _ptr_architecture;
10952 TALLOC_CTX *_mem_save_architecture_0;
10953 uint32_t _ptr_driver_path;
10954 TALLOC_CTX *_mem_save_driver_path_0;
10955 uint32_t _ptr_data_file;
10956 TALLOC_CTX *_mem_save_data_file_0;
10957 uint32_t _ptr_config_file;
10958 TALLOC_CTX *_mem_save_config_file_0;
10959 uint32_t _ptr_help_file;
10960 TALLOC_CTX *_mem_save_help_file_0;
10961 uint32_t _ptr_dependent_files;
10962 TALLOC_CTX *_mem_save_dependent_files_0;
10963 uint32_t _ptr_monitor_name;
10964 TALLOC_CTX *_mem_save_monitor_name_0;
10965 uint32_t _ptr_default_datatype;
10966 TALLOC_CTX *_mem_save_default_datatype_0;
10967 uint32_t _ptr_previous_names;
10968 TALLOC_CTX *_mem_save_previous_names_0;
10969 if (ndr_flags & NDR_SCALARS) {
10970 NDR_CHECK(ndr_pull_align(ndr, 4));
10971 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10973 uint32_t _flags_save_string = ndr->flags;
10974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10975 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10976 if (_ptr_driver_name) {
10977 NDR_PULL_ALLOC(ndr, r->driver_name);
10978 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10979 } else {
10980 r->driver_name = NULL;
10982 ndr->flags = _flags_save_string;
10985 uint32_t _flags_save_string = ndr->flags;
10986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10987 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10988 if (_ptr_architecture) {
10989 NDR_PULL_ALLOC(ndr, r->architecture);
10990 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10991 } else {
10992 r->architecture = NULL;
10994 ndr->flags = _flags_save_string;
10997 uint32_t _flags_save_string = ndr->flags;
10998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10999 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11000 if (_ptr_driver_path) {
11001 NDR_PULL_ALLOC(ndr, r->driver_path);
11002 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11003 } else {
11004 r->driver_path = NULL;
11006 ndr->flags = _flags_save_string;
11009 uint32_t _flags_save_string = ndr->flags;
11010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11011 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11012 if (_ptr_data_file) {
11013 NDR_PULL_ALLOC(ndr, r->data_file);
11014 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11015 } else {
11016 r->data_file = NULL;
11018 ndr->flags = _flags_save_string;
11021 uint32_t _flags_save_string = ndr->flags;
11022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11023 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11024 if (_ptr_config_file) {
11025 NDR_PULL_ALLOC(ndr, r->config_file);
11026 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11027 } else {
11028 r->config_file = NULL;
11030 ndr->flags = _flags_save_string;
11033 uint32_t _flags_save_string = ndr->flags;
11034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11035 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11036 if (_ptr_help_file) {
11037 NDR_PULL_ALLOC(ndr, r->help_file);
11038 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11039 } else {
11040 r->help_file = NULL;
11042 ndr->flags = _flags_save_string;
11045 uint32_t _flags_save_string_array = ndr->flags;
11046 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11047 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11048 if (_ptr_dependent_files) {
11049 NDR_PULL_ALLOC(ndr, r->dependent_files);
11050 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11051 } else {
11052 r->dependent_files = NULL;
11054 ndr->flags = _flags_save_string_array;
11057 uint32_t _flags_save_string = ndr->flags;
11058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11059 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11060 if (_ptr_monitor_name) {
11061 NDR_PULL_ALLOC(ndr, r->monitor_name);
11062 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11063 } else {
11064 r->monitor_name = NULL;
11066 ndr->flags = _flags_save_string;
11069 uint32_t _flags_save_string = ndr->flags;
11070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11071 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11072 if (_ptr_default_datatype) {
11073 NDR_PULL_ALLOC(ndr, r->default_datatype);
11074 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11075 } else {
11076 r->default_datatype = NULL;
11078 ndr->flags = _flags_save_string;
11081 uint32_t _flags_save_string_array = ndr->flags;
11082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11083 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11084 if (_ptr_previous_names) {
11085 NDR_PULL_ALLOC(ndr, r->previous_names);
11086 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11087 } else {
11088 r->previous_names = NULL;
11090 ndr->flags = _flags_save_string_array;
11093 if (ndr_flags & NDR_BUFFERS) {
11095 uint32_t _flags_save_string = ndr->flags;
11096 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11097 if (r->driver_name) {
11098 uint32_t _relative_save_offset;
11099 _relative_save_offset = ndr->offset;
11100 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11101 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11102 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11103 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11105 ndr->offset = _relative_save_offset;
11107 ndr->flags = _flags_save_string;
11110 uint32_t _flags_save_string = ndr->flags;
11111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11112 if (r->architecture) {
11113 uint32_t _relative_save_offset;
11114 _relative_save_offset = ndr->offset;
11115 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11116 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11117 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11118 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11120 ndr->offset = _relative_save_offset;
11122 ndr->flags = _flags_save_string;
11125 uint32_t _flags_save_string = ndr->flags;
11126 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11127 if (r->driver_path) {
11128 uint32_t _relative_save_offset;
11129 _relative_save_offset = ndr->offset;
11130 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11131 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11132 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11133 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11134 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11135 ndr->offset = _relative_save_offset;
11137 ndr->flags = _flags_save_string;
11140 uint32_t _flags_save_string = ndr->flags;
11141 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11142 if (r->data_file) {
11143 uint32_t _relative_save_offset;
11144 _relative_save_offset = ndr->offset;
11145 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11146 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11147 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11148 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11149 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11150 ndr->offset = _relative_save_offset;
11152 ndr->flags = _flags_save_string;
11155 uint32_t _flags_save_string = ndr->flags;
11156 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11157 if (r->config_file) {
11158 uint32_t _relative_save_offset;
11159 _relative_save_offset = ndr->offset;
11160 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11161 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11162 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11163 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11164 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11165 ndr->offset = _relative_save_offset;
11167 ndr->flags = _flags_save_string;
11170 uint32_t _flags_save_string = ndr->flags;
11171 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11172 if (r->help_file) {
11173 uint32_t _relative_save_offset;
11174 _relative_save_offset = ndr->offset;
11175 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11176 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11177 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11178 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11180 ndr->offset = _relative_save_offset;
11182 ndr->flags = _flags_save_string;
11185 uint32_t _flags_save_string_array = ndr->flags;
11186 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11187 if (r->dependent_files) {
11188 uint32_t _relative_save_offset;
11189 _relative_save_offset = ndr->offset;
11190 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11191 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11192 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11193 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11194 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11195 ndr->offset = _relative_save_offset;
11197 ndr->flags = _flags_save_string_array;
11200 uint32_t _flags_save_string = ndr->flags;
11201 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11202 if (r->monitor_name) {
11203 uint32_t _relative_save_offset;
11204 _relative_save_offset = ndr->offset;
11205 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11206 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11207 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11208 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11209 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11210 ndr->offset = _relative_save_offset;
11212 ndr->flags = _flags_save_string;
11215 uint32_t _flags_save_string = ndr->flags;
11216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11217 if (r->default_datatype) {
11218 uint32_t _relative_save_offset;
11219 _relative_save_offset = ndr->offset;
11220 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11221 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11222 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11223 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11225 ndr->offset = _relative_save_offset;
11227 ndr->flags = _flags_save_string;
11230 uint32_t _flags_save_string_array = ndr->flags;
11231 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11232 if (r->previous_names) {
11233 uint32_t _relative_save_offset;
11234 _relative_save_offset = ndr->offset;
11235 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11236 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11237 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11238 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11240 ndr->offset = _relative_save_offset;
11242 ndr->flags = _flags_save_string_array;
11245 return NDR_ERR_SUCCESS;
11248 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11250 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11251 ndr->depth++;
11252 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11253 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11254 ndr->depth++;
11255 if (r->driver_name) {
11256 ndr_print_string(ndr, "driver_name", r->driver_name);
11258 ndr->depth--;
11259 ndr_print_ptr(ndr, "architecture", r->architecture);
11260 ndr->depth++;
11261 if (r->architecture) {
11262 ndr_print_string(ndr, "architecture", r->architecture);
11264 ndr->depth--;
11265 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11266 ndr->depth++;
11267 if (r->driver_path) {
11268 ndr_print_string(ndr, "driver_path", r->driver_path);
11270 ndr->depth--;
11271 ndr_print_ptr(ndr, "data_file", r->data_file);
11272 ndr->depth++;
11273 if (r->data_file) {
11274 ndr_print_string(ndr, "data_file", r->data_file);
11276 ndr->depth--;
11277 ndr_print_ptr(ndr, "config_file", r->config_file);
11278 ndr->depth++;
11279 if (r->config_file) {
11280 ndr_print_string(ndr, "config_file", r->config_file);
11282 ndr->depth--;
11283 ndr_print_ptr(ndr, "help_file", r->help_file);
11284 ndr->depth++;
11285 if (r->help_file) {
11286 ndr_print_string(ndr, "help_file", r->help_file);
11288 ndr->depth--;
11289 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11290 ndr->depth++;
11291 if (r->dependent_files) {
11292 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11294 ndr->depth--;
11295 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11296 ndr->depth++;
11297 if (r->monitor_name) {
11298 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11300 ndr->depth--;
11301 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11302 ndr->depth++;
11303 if (r->default_datatype) {
11304 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11306 ndr->depth--;
11307 ndr_print_ptr(ndr, "previous_names", r->previous_names);
11308 ndr->depth++;
11309 if (r->previous_names) {
11310 ndr_print_string_array(ndr, "previous_names", r->previous_names);
11312 ndr->depth--;
11313 ndr->depth--;
11316 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
11318 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
11321 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
11323 if (ndr_flags & NDR_SCALARS) {
11324 NDR_CHECK(ndr_push_align(ndr, 4));
11325 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11327 uint32_t _flags_save_string = ndr->flags;
11328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11329 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11330 ndr->flags = _flags_save_string;
11333 uint32_t _flags_save_string = ndr->flags;
11334 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11335 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11336 ndr->flags = _flags_save_string;
11339 uint32_t _flags_save_string = ndr->flags;
11340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11341 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11342 ndr->flags = _flags_save_string;
11345 uint32_t _flags_save_string = ndr->flags;
11346 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11347 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11348 ndr->flags = _flags_save_string;
11351 uint32_t _flags_save_string = ndr->flags;
11352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11353 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11354 ndr->flags = _flags_save_string;
11356 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
11357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
11358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
11360 if (ndr_flags & NDR_BUFFERS) {
11362 uint32_t _flags_save_string = ndr->flags;
11363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11364 if (r->driver_name) {
11365 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11366 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11367 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11369 ndr->flags = _flags_save_string;
11372 uint32_t _flags_save_string = ndr->flags;
11373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11374 if (r->architecture) {
11375 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11376 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11377 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11379 ndr->flags = _flags_save_string;
11382 uint32_t _flags_save_string = ndr->flags;
11383 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11384 if (r->driver_path) {
11385 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11386 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11387 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11389 ndr->flags = _flags_save_string;
11392 uint32_t _flags_save_string = ndr->flags;
11393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11394 if (r->data_file) {
11395 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11396 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11397 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
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->config_file) {
11405 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11406 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11407 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11409 ndr->flags = _flags_save_string;
11412 return NDR_ERR_SUCCESS;
11415 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
11417 uint32_t _ptr_driver_name;
11418 TALLOC_CTX *_mem_save_driver_name_0;
11419 uint32_t _ptr_architecture;
11420 TALLOC_CTX *_mem_save_architecture_0;
11421 uint32_t _ptr_driver_path;
11422 TALLOC_CTX *_mem_save_driver_path_0;
11423 uint32_t _ptr_data_file;
11424 TALLOC_CTX *_mem_save_data_file_0;
11425 uint32_t _ptr_config_file;
11426 TALLOC_CTX *_mem_save_config_file_0;
11427 if (ndr_flags & NDR_SCALARS) {
11428 NDR_CHECK(ndr_pull_align(ndr, 4));
11429 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11431 uint32_t _flags_save_string = ndr->flags;
11432 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11434 if (_ptr_driver_name) {
11435 NDR_PULL_ALLOC(ndr, r->driver_name);
11436 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11437 } else {
11438 r->driver_name = NULL;
11440 ndr->flags = _flags_save_string;
11443 uint32_t _flags_save_string = ndr->flags;
11444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11445 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11446 if (_ptr_architecture) {
11447 NDR_PULL_ALLOC(ndr, r->architecture);
11448 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11449 } else {
11450 r->architecture = NULL;
11452 ndr->flags = _flags_save_string;
11455 uint32_t _flags_save_string = ndr->flags;
11456 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11457 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11458 if (_ptr_driver_path) {
11459 NDR_PULL_ALLOC(ndr, r->driver_path);
11460 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11461 } else {
11462 r->driver_path = NULL;
11464 ndr->flags = _flags_save_string;
11467 uint32_t _flags_save_string = ndr->flags;
11468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11469 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11470 if (_ptr_data_file) {
11471 NDR_PULL_ALLOC(ndr, r->data_file);
11472 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11473 } else {
11474 r->data_file = NULL;
11476 ndr->flags = _flags_save_string;
11479 uint32_t _flags_save_string = ndr->flags;
11480 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11481 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11482 if (_ptr_config_file) {
11483 NDR_PULL_ALLOC(ndr, r->config_file);
11484 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11485 } else {
11486 r->config_file = NULL;
11488 ndr->flags = _flags_save_string;
11490 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
11491 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
11492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
11494 if (ndr_flags & NDR_BUFFERS) {
11496 uint32_t _flags_save_string = ndr->flags;
11497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11498 if (r->driver_name) {
11499 uint32_t _relative_save_offset;
11500 _relative_save_offset = ndr->offset;
11501 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11502 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11503 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11504 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11505 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11506 ndr->offset = _relative_save_offset;
11508 ndr->flags = _flags_save_string;
11511 uint32_t _flags_save_string = ndr->flags;
11512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11513 if (r->architecture) {
11514 uint32_t _relative_save_offset;
11515 _relative_save_offset = ndr->offset;
11516 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11517 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11518 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11519 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11521 ndr->offset = _relative_save_offset;
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 if (r->driver_path) {
11529 uint32_t _relative_save_offset;
11530 _relative_save_offset = ndr->offset;
11531 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11532 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11533 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11534 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11536 ndr->offset = _relative_save_offset;
11538 ndr->flags = _flags_save_string;
11541 uint32_t _flags_save_string = ndr->flags;
11542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11543 if (r->data_file) {
11544 uint32_t _relative_save_offset;
11545 _relative_save_offset = ndr->offset;
11546 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11547 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11548 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11549 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11551 ndr->offset = _relative_save_offset;
11553 ndr->flags = _flags_save_string;
11556 uint32_t _flags_save_string = ndr->flags;
11557 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11558 if (r->config_file) {
11559 uint32_t _relative_save_offset;
11560 _relative_save_offset = ndr->offset;
11561 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11562 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11563 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11564 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11566 ndr->offset = _relative_save_offset;
11568 ndr->flags = _flags_save_string;
11571 return NDR_ERR_SUCCESS;
11574 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
11576 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
11577 ndr->depth++;
11578 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11579 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11580 ndr->depth++;
11581 if (r->driver_name) {
11582 ndr_print_string(ndr, "driver_name", r->driver_name);
11584 ndr->depth--;
11585 ndr_print_ptr(ndr, "architecture", r->architecture);
11586 ndr->depth++;
11587 if (r->architecture) {
11588 ndr_print_string(ndr, "architecture", r->architecture);
11590 ndr->depth--;
11591 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11592 ndr->depth++;
11593 if (r->driver_path) {
11594 ndr_print_string(ndr, "driver_path", r->driver_path);
11596 ndr->depth--;
11597 ndr_print_ptr(ndr, "data_file", r->data_file);
11598 ndr->depth++;
11599 if (r->data_file) {
11600 ndr_print_string(ndr, "data_file", r->data_file);
11602 ndr->depth--;
11603 ndr_print_ptr(ndr, "config_file", r->config_file);
11604 ndr->depth++;
11605 if (r->config_file) {
11606 ndr_print_string(ndr, "config_file", r->config_file);
11608 ndr->depth--;
11609 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
11610 ndr_print_uint32(ndr, "config_version", r->config_version);
11611 ndr_print_uint32(ndr, "driver_version", r->driver_version);
11612 ndr->depth--;
11615 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
11617 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
11620 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
11622 if (ndr_flags & NDR_SCALARS) {
11623 NDR_CHECK(ndr_push_align(ndr, 8));
11624 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11626 uint32_t _flags_save_string = ndr->flags;
11627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11628 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11629 ndr->flags = _flags_save_string;
11632 uint32_t _flags_save_string = ndr->flags;
11633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11634 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11635 ndr->flags = _flags_save_string;
11638 uint32_t _flags_save_string = ndr->flags;
11639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11640 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11641 ndr->flags = _flags_save_string;
11644 uint32_t _flags_save_string = ndr->flags;
11645 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11646 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11647 ndr->flags = _flags_save_string;
11650 uint32_t _flags_save_string = ndr->flags;
11651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11652 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11653 ndr->flags = _flags_save_string;
11656 uint32_t _flags_save_string = ndr->flags;
11657 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11658 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11659 ndr->flags = _flags_save_string;
11662 uint32_t _flags_save_string_array = ndr->flags;
11663 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11664 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11665 ndr->flags = _flags_save_string_array;
11668 uint32_t _flags_save_string = ndr->flags;
11669 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11670 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11671 ndr->flags = _flags_save_string;
11674 uint32_t _flags_save_string = ndr->flags;
11675 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11676 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11677 ndr->flags = _flags_save_string;
11680 uint32_t _flags_save_string_array = ndr->flags;
11681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11682 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11683 ndr->flags = _flags_save_string_array;
11685 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
11686 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
11688 uint32_t _flags_save_string = ndr->flags;
11689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11690 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
11691 ndr->flags = _flags_save_string;
11694 uint32_t _flags_save_string = ndr->flags;
11695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11696 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
11697 ndr->flags = _flags_save_string;
11700 uint32_t _flags_save_string = ndr->flags;
11701 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11702 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
11703 ndr->flags = _flags_save_string;
11706 uint32_t _flags_save_string = ndr->flags;
11707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11708 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
11709 ndr->flags = _flags_save_string;
11712 if (ndr_flags & NDR_BUFFERS) {
11714 uint32_t _flags_save_string = ndr->flags;
11715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11716 if (r->driver_name) {
11717 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11718 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11719 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11721 ndr->flags = _flags_save_string;
11724 uint32_t _flags_save_string = ndr->flags;
11725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11726 if (r->architecture) {
11727 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11728 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11729 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11731 ndr->flags = _flags_save_string;
11734 uint32_t _flags_save_string = ndr->flags;
11735 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11736 if (r->driver_path) {
11737 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11738 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11739 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11741 ndr->flags = _flags_save_string;
11744 uint32_t _flags_save_string = ndr->flags;
11745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11746 if (r->data_file) {
11747 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11748 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11749 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11751 ndr->flags = _flags_save_string;
11754 uint32_t _flags_save_string = ndr->flags;
11755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11756 if (r->config_file) {
11757 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11758 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11759 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11761 ndr->flags = _flags_save_string;
11764 uint32_t _flags_save_string = ndr->flags;
11765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11766 if (r->help_file) {
11767 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
11768 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11769 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
11771 ndr->flags = _flags_save_string;
11774 uint32_t _flags_save_string_array = ndr->flags;
11775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11776 if (r->dependent_files) {
11777 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
11778 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11779 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
11781 ndr->flags = _flags_save_string_array;
11784 uint32_t _flags_save_string = ndr->flags;
11785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11786 if (r->monitor_name) {
11787 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
11788 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11789 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
11791 ndr->flags = _flags_save_string;
11794 uint32_t _flags_save_string = ndr->flags;
11795 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11796 if (r->default_datatype) {
11797 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
11798 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11799 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
11801 ndr->flags = _flags_save_string;
11804 uint32_t _flags_save_string_array = ndr->flags;
11805 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11806 if (r->previous_names) {
11807 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
11808 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11809 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
11811 ndr->flags = _flags_save_string_array;
11814 uint32_t _flags_save_string = ndr->flags;
11815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11816 if (r->manufacturer_name) {
11817 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
11818 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
11819 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
11821 ndr->flags = _flags_save_string;
11824 uint32_t _flags_save_string = ndr->flags;
11825 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11826 if (r->manufacturer_url) {
11827 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
11828 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
11829 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
11831 ndr->flags = _flags_save_string;
11834 uint32_t _flags_save_string = ndr->flags;
11835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11836 if (r->hardware_id) {
11837 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
11838 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
11839 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
11841 ndr->flags = _flags_save_string;
11844 uint32_t _flags_save_string = ndr->flags;
11845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11846 if (r->provider) {
11847 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
11848 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
11849 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
11851 ndr->flags = _flags_save_string;
11854 return NDR_ERR_SUCCESS;
11857 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
11859 uint32_t _ptr_driver_name;
11860 TALLOC_CTX *_mem_save_driver_name_0;
11861 uint32_t _ptr_architecture;
11862 TALLOC_CTX *_mem_save_architecture_0;
11863 uint32_t _ptr_driver_path;
11864 TALLOC_CTX *_mem_save_driver_path_0;
11865 uint32_t _ptr_data_file;
11866 TALLOC_CTX *_mem_save_data_file_0;
11867 uint32_t _ptr_config_file;
11868 TALLOC_CTX *_mem_save_config_file_0;
11869 uint32_t _ptr_help_file;
11870 TALLOC_CTX *_mem_save_help_file_0;
11871 uint32_t _ptr_dependent_files;
11872 TALLOC_CTX *_mem_save_dependent_files_0;
11873 uint32_t _ptr_monitor_name;
11874 TALLOC_CTX *_mem_save_monitor_name_0;
11875 uint32_t _ptr_default_datatype;
11876 TALLOC_CTX *_mem_save_default_datatype_0;
11877 uint32_t _ptr_previous_names;
11878 TALLOC_CTX *_mem_save_previous_names_0;
11879 uint32_t _ptr_manufacturer_name;
11880 TALLOC_CTX *_mem_save_manufacturer_name_0;
11881 uint32_t _ptr_manufacturer_url;
11882 TALLOC_CTX *_mem_save_manufacturer_url_0;
11883 uint32_t _ptr_hardware_id;
11884 TALLOC_CTX *_mem_save_hardware_id_0;
11885 uint32_t _ptr_provider;
11886 TALLOC_CTX *_mem_save_provider_0;
11887 if (ndr_flags & NDR_SCALARS) {
11888 NDR_CHECK(ndr_pull_align(ndr, 8));
11889 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11891 uint32_t _flags_save_string = ndr->flags;
11892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11893 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11894 if (_ptr_driver_name) {
11895 NDR_PULL_ALLOC(ndr, r->driver_name);
11896 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11897 } else {
11898 r->driver_name = NULL;
11900 ndr->flags = _flags_save_string;
11903 uint32_t _flags_save_string = ndr->flags;
11904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11905 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11906 if (_ptr_architecture) {
11907 NDR_PULL_ALLOC(ndr, r->architecture);
11908 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11909 } else {
11910 r->architecture = NULL;
11912 ndr->flags = _flags_save_string;
11915 uint32_t _flags_save_string = ndr->flags;
11916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11917 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11918 if (_ptr_driver_path) {
11919 NDR_PULL_ALLOC(ndr, r->driver_path);
11920 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11921 } else {
11922 r->driver_path = NULL;
11924 ndr->flags = _flags_save_string;
11927 uint32_t _flags_save_string = ndr->flags;
11928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11929 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11930 if (_ptr_data_file) {
11931 NDR_PULL_ALLOC(ndr, r->data_file);
11932 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11933 } else {
11934 r->data_file = NULL;
11936 ndr->flags = _flags_save_string;
11939 uint32_t _flags_save_string = ndr->flags;
11940 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11941 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11942 if (_ptr_config_file) {
11943 NDR_PULL_ALLOC(ndr, r->config_file);
11944 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11945 } else {
11946 r->config_file = NULL;
11948 ndr->flags = _flags_save_string;
11951 uint32_t _flags_save_string = ndr->flags;
11952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11954 if (_ptr_help_file) {
11955 NDR_PULL_ALLOC(ndr, r->help_file);
11956 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11957 } else {
11958 r->help_file = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11966 if (_ptr_dependent_files) {
11967 NDR_PULL_ALLOC(ndr, r->dependent_files);
11968 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11969 } else {
11970 r->dependent_files = NULL;
11972 ndr->flags = _flags_save_string_array;
11975 uint32_t _flags_save_string = ndr->flags;
11976 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11977 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11978 if (_ptr_monitor_name) {
11979 NDR_PULL_ALLOC(ndr, r->monitor_name);
11980 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11981 } else {
11982 r->monitor_name = NULL;
11984 ndr->flags = _flags_save_string;
11987 uint32_t _flags_save_string = ndr->flags;
11988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11989 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11990 if (_ptr_default_datatype) {
11991 NDR_PULL_ALLOC(ndr, r->default_datatype);
11992 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11993 } else {
11994 r->default_datatype = NULL;
11996 ndr->flags = _flags_save_string;
11999 uint32_t _flags_save_string_array = ndr->flags;
12000 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12001 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12002 if (_ptr_previous_names) {
12003 NDR_PULL_ALLOC(ndr, r->previous_names);
12004 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12005 } else {
12006 r->previous_names = NULL;
12008 ndr->flags = _flags_save_string_array;
12010 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12011 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12013 uint32_t _flags_save_string = ndr->flags;
12014 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12015 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12016 if (_ptr_manufacturer_name) {
12017 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12018 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12019 } else {
12020 r->manufacturer_name = NULL;
12022 ndr->flags = _flags_save_string;
12025 uint32_t _flags_save_string = ndr->flags;
12026 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12027 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12028 if (_ptr_manufacturer_url) {
12029 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12030 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12031 } else {
12032 r->manufacturer_url = NULL;
12034 ndr->flags = _flags_save_string;
12037 uint32_t _flags_save_string = ndr->flags;
12038 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12039 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12040 if (_ptr_hardware_id) {
12041 NDR_PULL_ALLOC(ndr, r->hardware_id);
12042 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12043 } else {
12044 r->hardware_id = NULL;
12046 ndr->flags = _flags_save_string;
12049 uint32_t _flags_save_string = ndr->flags;
12050 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12051 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12052 if (_ptr_provider) {
12053 NDR_PULL_ALLOC(ndr, r->provider);
12054 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12055 } else {
12056 r->provider = NULL;
12058 ndr->flags = _flags_save_string;
12061 if (ndr_flags & NDR_BUFFERS) {
12063 uint32_t _flags_save_string = ndr->flags;
12064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12065 if (r->driver_name) {
12066 uint32_t _relative_save_offset;
12067 _relative_save_offset = ndr->offset;
12068 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12069 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12070 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12071 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12073 ndr->offset = _relative_save_offset;
12075 ndr->flags = _flags_save_string;
12078 uint32_t _flags_save_string = ndr->flags;
12079 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12080 if (r->architecture) {
12081 uint32_t _relative_save_offset;
12082 _relative_save_offset = ndr->offset;
12083 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12084 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12085 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12086 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12088 ndr->offset = _relative_save_offset;
12090 ndr->flags = _flags_save_string;
12093 uint32_t _flags_save_string = ndr->flags;
12094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12095 if (r->driver_path) {
12096 uint32_t _relative_save_offset;
12097 _relative_save_offset = ndr->offset;
12098 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12099 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12100 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12101 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12103 ndr->offset = _relative_save_offset;
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->data_file) {
12111 uint32_t _relative_save_offset;
12112 _relative_save_offset = ndr->offset;
12113 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12114 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12115 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12116 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12118 ndr->offset = _relative_save_offset;
12120 ndr->flags = _flags_save_string;
12123 uint32_t _flags_save_string = ndr->flags;
12124 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12125 if (r->config_file) {
12126 uint32_t _relative_save_offset;
12127 _relative_save_offset = ndr->offset;
12128 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12129 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12130 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12131 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12133 ndr->offset = _relative_save_offset;
12135 ndr->flags = _flags_save_string;
12138 uint32_t _flags_save_string = ndr->flags;
12139 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12140 if (r->help_file) {
12141 uint32_t _relative_save_offset;
12142 _relative_save_offset = ndr->offset;
12143 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12144 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12145 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12146 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12148 ndr->offset = _relative_save_offset;
12150 ndr->flags = _flags_save_string;
12153 uint32_t _flags_save_string_array = ndr->flags;
12154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12155 if (r->dependent_files) {
12156 uint32_t _relative_save_offset;
12157 _relative_save_offset = ndr->offset;
12158 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12159 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12160 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12161 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12162 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12163 ndr->offset = _relative_save_offset;
12165 ndr->flags = _flags_save_string_array;
12168 uint32_t _flags_save_string = ndr->flags;
12169 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12170 if (r->monitor_name) {
12171 uint32_t _relative_save_offset;
12172 _relative_save_offset = ndr->offset;
12173 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12174 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12175 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12176 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12177 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12178 ndr->offset = _relative_save_offset;
12180 ndr->flags = _flags_save_string;
12183 uint32_t _flags_save_string = ndr->flags;
12184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12185 if (r->default_datatype) {
12186 uint32_t _relative_save_offset;
12187 _relative_save_offset = ndr->offset;
12188 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12189 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12190 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12191 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12193 ndr->offset = _relative_save_offset;
12195 ndr->flags = _flags_save_string;
12198 uint32_t _flags_save_string_array = ndr->flags;
12199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12200 if (r->previous_names) {
12201 uint32_t _relative_save_offset;
12202 _relative_save_offset = ndr->offset;
12203 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12204 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12205 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12206 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12208 ndr->offset = _relative_save_offset;
12210 ndr->flags = _flags_save_string_array;
12213 uint32_t _flags_save_string = ndr->flags;
12214 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12215 if (r->manufacturer_name) {
12216 uint32_t _relative_save_offset;
12217 _relative_save_offset = ndr->offset;
12218 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12219 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12220 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12221 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12222 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12223 ndr->offset = _relative_save_offset;
12225 ndr->flags = _flags_save_string;
12228 uint32_t _flags_save_string = ndr->flags;
12229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12230 if (r->manufacturer_url) {
12231 uint32_t _relative_save_offset;
12232 _relative_save_offset = ndr->offset;
12233 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12234 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12235 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12236 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12238 ndr->offset = _relative_save_offset;
12240 ndr->flags = _flags_save_string;
12243 uint32_t _flags_save_string = ndr->flags;
12244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12245 if (r->hardware_id) {
12246 uint32_t _relative_save_offset;
12247 _relative_save_offset = ndr->offset;
12248 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
12249 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
12250 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
12251 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
12252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
12253 ndr->offset = _relative_save_offset;
12255 ndr->flags = _flags_save_string;
12258 uint32_t _flags_save_string = ndr->flags;
12259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12260 if (r->provider) {
12261 uint32_t _relative_save_offset;
12262 _relative_save_offset = ndr->offset;
12263 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
12264 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
12265 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
12266 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
12267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
12268 ndr->offset = _relative_save_offset;
12270 ndr->flags = _flags_save_string;
12273 return NDR_ERR_SUCCESS;
12276 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
12278 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
12279 ndr->depth++;
12280 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12281 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12282 ndr->depth++;
12283 if (r->driver_name) {
12284 ndr_print_string(ndr, "driver_name", r->driver_name);
12286 ndr->depth--;
12287 ndr_print_ptr(ndr, "architecture", r->architecture);
12288 ndr->depth++;
12289 if (r->architecture) {
12290 ndr_print_string(ndr, "architecture", r->architecture);
12292 ndr->depth--;
12293 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12294 ndr->depth++;
12295 if (r->driver_path) {
12296 ndr_print_string(ndr, "driver_path", r->driver_path);
12298 ndr->depth--;
12299 ndr_print_ptr(ndr, "data_file", r->data_file);
12300 ndr->depth++;
12301 if (r->data_file) {
12302 ndr_print_string(ndr, "data_file", r->data_file);
12304 ndr->depth--;
12305 ndr_print_ptr(ndr, "config_file", r->config_file);
12306 ndr->depth++;
12307 if (r->config_file) {
12308 ndr_print_string(ndr, "config_file", r->config_file);
12310 ndr->depth--;
12311 ndr_print_ptr(ndr, "help_file", r->help_file);
12312 ndr->depth++;
12313 if (r->help_file) {
12314 ndr_print_string(ndr, "help_file", r->help_file);
12316 ndr->depth--;
12317 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12318 ndr->depth++;
12319 if (r->dependent_files) {
12320 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12322 ndr->depth--;
12323 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12324 ndr->depth++;
12325 if (r->monitor_name) {
12326 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12328 ndr->depth--;
12329 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12330 ndr->depth++;
12331 if (r->default_datatype) {
12332 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12334 ndr->depth--;
12335 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12336 ndr->depth++;
12337 if (r->previous_names) {
12338 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12340 ndr->depth--;
12341 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
12342 ndr_print_hyper(ndr, "driver_version", r->driver_version);
12343 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
12344 ndr->depth++;
12345 if (r->manufacturer_name) {
12346 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
12348 ndr->depth--;
12349 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
12350 ndr->depth++;
12351 if (r->manufacturer_url) {
12352 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
12354 ndr->depth--;
12355 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
12356 ndr->depth++;
12357 if (r->hardware_id) {
12358 ndr_print_string(ndr, "hardware_id", r->hardware_id);
12360 ndr->depth--;
12361 ndr_print_ptr(ndr, "provider", r->provider);
12362 ndr->depth++;
12363 if (r->provider) {
12364 ndr_print_string(ndr, "provider", r->provider);
12366 ndr->depth--;
12367 ndr->depth--;
12370 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
12372 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
12375 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
12377 if (ndr_flags & NDR_SCALARS) {
12378 NDR_CHECK(ndr_push_align(ndr, 8));
12379 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12381 uint32_t _flags_save_string = ndr->flags;
12382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12383 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12384 ndr->flags = _flags_save_string;
12387 uint32_t _flags_save_string = ndr->flags;
12388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12389 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12390 ndr->flags = _flags_save_string;
12393 uint32_t _flags_save_string = ndr->flags;
12394 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12395 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12396 ndr->flags = _flags_save_string;
12399 uint32_t _flags_save_string = ndr->flags;
12400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12401 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12402 ndr->flags = _flags_save_string;
12405 uint32_t _flags_save_string = ndr->flags;
12406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12407 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12408 ndr->flags = _flags_save_string;
12411 uint32_t _flags_save_string = ndr->flags;
12412 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12413 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12414 ndr->flags = _flags_save_string;
12417 uint32_t _flags_save_string = ndr->flags;
12418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12419 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12420 ndr->flags = _flags_save_string;
12423 uint32_t _flags_save_string = ndr->flags;
12424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12425 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12426 ndr->flags = _flags_save_string;
12429 uint32_t _flags_save_string_array = ndr->flags;
12430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12431 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12432 ndr->flags = _flags_save_string_array;
12435 uint32_t _flags_save_string_array = ndr->flags;
12436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12437 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12438 ndr->flags = _flags_save_string_array;
12440 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12441 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12443 uint32_t _flags_save_string = ndr->flags;
12444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12445 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12446 ndr->flags = _flags_save_string;
12449 uint32_t _flags_save_string = ndr->flags;
12450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12451 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12452 ndr->flags = _flags_save_string;
12455 uint32_t _flags_save_string = ndr->flags;
12456 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12457 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12458 ndr->flags = _flags_save_string;
12461 uint32_t _flags_save_string = ndr->flags;
12462 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12463 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12464 ndr->flags = _flags_save_string;
12467 uint32_t _flags_save_string = ndr->flags;
12468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12469 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
12470 ndr->flags = _flags_save_string;
12473 uint32_t _flags_save_string = ndr->flags;
12474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12475 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
12476 ndr->flags = _flags_save_string;
12479 uint32_t _flags_save_string_array = ndr->flags;
12480 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12481 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
12482 ndr->flags = _flags_save_string_array;
12485 uint32_t _flags_save_string = ndr->flags;
12486 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12487 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
12488 ndr->flags = _flags_save_string;
12490 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
12492 uint32_t _flags_save_string_array = ndr->flags;
12493 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12494 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
12495 ndr->flags = _flags_save_string_array;
12497 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
12498 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
12500 if (ndr_flags & NDR_BUFFERS) {
12502 uint32_t _flags_save_string = ndr->flags;
12503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12504 if (r->driver_name) {
12505 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12506 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12507 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12509 ndr->flags = _flags_save_string;
12512 uint32_t _flags_save_string = ndr->flags;
12513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12514 if (r->architecture) {
12515 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12516 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12517 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12519 ndr->flags = _flags_save_string;
12522 uint32_t _flags_save_string = ndr->flags;
12523 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12524 if (r->driver_path) {
12525 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12526 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12527 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
12529 ndr->flags = _flags_save_string;
12532 uint32_t _flags_save_string = ndr->flags;
12533 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12534 if (r->data_file) {
12535 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12536 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12537 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12539 ndr->flags = _flags_save_string;
12542 uint32_t _flags_save_string = ndr->flags;
12543 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12544 if (r->config_file) {
12545 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12546 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12547 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12549 ndr->flags = _flags_save_string;
12552 uint32_t _flags_save_string = ndr->flags;
12553 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12554 if (r->help_file) {
12555 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
12556 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12557 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
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->monitor_name) {
12565 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
12566 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12567 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
12569 ndr->flags = _flags_save_string;
12572 uint32_t _flags_save_string = ndr->flags;
12573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12574 if (r->default_datatype) {
12575 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
12576 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12577 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
12579 ndr->flags = _flags_save_string;
12582 uint32_t _flags_save_string_array = ndr->flags;
12583 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12584 if (r->dependent_files) {
12585 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
12586 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12587 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
12589 ndr->flags = _flags_save_string_array;
12592 uint32_t _flags_save_string_array = ndr->flags;
12593 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12594 if (r->previous_names) {
12595 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
12596 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12597 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
12599 ndr->flags = _flags_save_string_array;
12602 uint32_t _flags_save_string = ndr->flags;
12603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12604 if (r->manufacturer_name) {
12605 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
12606 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12607 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
12609 ndr->flags = _flags_save_string;
12612 uint32_t _flags_save_string = ndr->flags;
12613 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12614 if (r->manufacturer_url) {
12615 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
12616 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12617 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
12619 ndr->flags = _flags_save_string;
12622 uint32_t _flags_save_string = ndr->flags;
12623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12624 if (r->hardware_id) {
12625 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
12626 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12627 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
12629 ndr->flags = _flags_save_string;
12632 uint32_t _flags_save_string = ndr->flags;
12633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12634 if (r->provider) {
12635 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
12636 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12637 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
12639 ndr->flags = _flags_save_string;
12642 uint32_t _flags_save_string = ndr->flags;
12643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12644 if (r->print_processor) {
12645 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
12646 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
12647 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
12649 ndr->flags = _flags_save_string;
12652 uint32_t _flags_save_string = ndr->flags;
12653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12654 if (r->vendor_setup) {
12655 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->vendor_setup));
12656 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
12657 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->vendor_setup));
12659 ndr->flags = _flags_save_string;
12662 uint32_t _flags_save_string_array = ndr->flags;
12663 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12664 if (r->color_profiles) {
12665 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->color_profiles));
12666 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
12667 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->color_profiles));
12669 ndr->flags = _flags_save_string_array;
12672 uint32_t _flags_save_string = ndr->flags;
12673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12674 if (r->inf_path) {
12675 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_path));
12676 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
12677 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_path));
12679 ndr->flags = _flags_save_string;
12682 uint32_t _flags_save_string_array = ndr->flags;
12683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12684 if (r->core_driver_dependencies) {
12685 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->core_driver_dependencies));
12686 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
12687 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->core_driver_dependencies));
12689 ndr->flags = _flags_save_string_array;
12692 return NDR_ERR_SUCCESS;
12695 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
12697 uint32_t _ptr_driver_name;
12698 TALLOC_CTX *_mem_save_driver_name_0;
12699 uint32_t _ptr_architecture;
12700 TALLOC_CTX *_mem_save_architecture_0;
12701 uint32_t _ptr_driver_path;
12702 TALLOC_CTX *_mem_save_driver_path_0;
12703 uint32_t _ptr_data_file;
12704 TALLOC_CTX *_mem_save_data_file_0;
12705 uint32_t _ptr_config_file;
12706 TALLOC_CTX *_mem_save_config_file_0;
12707 uint32_t _ptr_help_file;
12708 TALLOC_CTX *_mem_save_help_file_0;
12709 uint32_t _ptr_monitor_name;
12710 TALLOC_CTX *_mem_save_monitor_name_0;
12711 uint32_t _ptr_default_datatype;
12712 TALLOC_CTX *_mem_save_default_datatype_0;
12713 uint32_t _ptr_dependent_files;
12714 TALLOC_CTX *_mem_save_dependent_files_0;
12715 uint32_t _ptr_previous_names;
12716 TALLOC_CTX *_mem_save_previous_names_0;
12717 uint32_t _ptr_manufacturer_name;
12718 TALLOC_CTX *_mem_save_manufacturer_name_0;
12719 uint32_t _ptr_manufacturer_url;
12720 TALLOC_CTX *_mem_save_manufacturer_url_0;
12721 uint32_t _ptr_hardware_id;
12722 TALLOC_CTX *_mem_save_hardware_id_0;
12723 uint32_t _ptr_provider;
12724 TALLOC_CTX *_mem_save_provider_0;
12725 uint32_t _ptr_print_processor;
12726 TALLOC_CTX *_mem_save_print_processor_0;
12727 uint32_t _ptr_vendor_setup;
12728 TALLOC_CTX *_mem_save_vendor_setup_0;
12729 uint32_t _ptr_color_profiles;
12730 TALLOC_CTX *_mem_save_color_profiles_0;
12731 uint32_t _ptr_inf_path;
12732 TALLOC_CTX *_mem_save_inf_path_0;
12733 uint32_t _ptr_core_driver_dependencies;
12734 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
12735 if (ndr_flags & NDR_SCALARS) {
12736 NDR_CHECK(ndr_pull_align(ndr, 8));
12737 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12739 uint32_t _flags_save_string = ndr->flags;
12740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12742 if (_ptr_driver_name) {
12743 NDR_PULL_ALLOC(ndr, r->driver_name);
12744 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12745 } else {
12746 r->driver_name = NULL;
12748 ndr->flags = _flags_save_string;
12751 uint32_t _flags_save_string = ndr->flags;
12752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12754 if (_ptr_architecture) {
12755 NDR_PULL_ALLOC(ndr, r->architecture);
12756 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12757 } else {
12758 r->architecture = NULL;
12760 ndr->flags = _flags_save_string;
12763 uint32_t _flags_save_string = ndr->flags;
12764 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12766 if (_ptr_driver_path) {
12767 NDR_PULL_ALLOC(ndr, r->driver_path);
12768 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12769 } else {
12770 r->driver_path = NULL;
12772 ndr->flags = _flags_save_string;
12775 uint32_t _flags_save_string = ndr->flags;
12776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12777 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12778 if (_ptr_data_file) {
12779 NDR_PULL_ALLOC(ndr, r->data_file);
12780 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12781 } else {
12782 r->data_file = NULL;
12784 ndr->flags = _flags_save_string;
12787 uint32_t _flags_save_string = ndr->flags;
12788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12790 if (_ptr_config_file) {
12791 NDR_PULL_ALLOC(ndr, r->config_file);
12792 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12793 } else {
12794 r->config_file = NULL;
12796 ndr->flags = _flags_save_string;
12799 uint32_t _flags_save_string = ndr->flags;
12800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12801 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12802 if (_ptr_help_file) {
12803 NDR_PULL_ALLOC(ndr, r->help_file);
12804 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12805 } else {
12806 r->help_file = NULL;
12808 ndr->flags = _flags_save_string;
12811 uint32_t _flags_save_string = ndr->flags;
12812 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12813 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12814 if (_ptr_monitor_name) {
12815 NDR_PULL_ALLOC(ndr, r->monitor_name);
12816 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12817 } else {
12818 r->monitor_name = NULL;
12820 ndr->flags = _flags_save_string;
12823 uint32_t _flags_save_string = ndr->flags;
12824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12825 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12826 if (_ptr_default_datatype) {
12827 NDR_PULL_ALLOC(ndr, r->default_datatype);
12828 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12829 } else {
12830 r->default_datatype = NULL;
12832 ndr->flags = _flags_save_string;
12835 uint32_t _flags_save_string_array = ndr->flags;
12836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12837 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12838 if (_ptr_dependent_files) {
12839 NDR_PULL_ALLOC(ndr, r->dependent_files);
12840 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12841 } else {
12842 r->dependent_files = NULL;
12844 ndr->flags = _flags_save_string_array;
12847 uint32_t _flags_save_string_array = ndr->flags;
12848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12850 if (_ptr_previous_names) {
12851 NDR_PULL_ALLOC(ndr, r->previous_names);
12852 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12853 } else {
12854 r->previous_names = NULL;
12856 ndr->flags = _flags_save_string_array;
12858 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12859 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12861 uint32_t _flags_save_string = ndr->flags;
12862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12863 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12864 if (_ptr_manufacturer_name) {
12865 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12866 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12867 } else {
12868 r->manufacturer_name = NULL;
12870 ndr->flags = _flags_save_string;
12873 uint32_t _flags_save_string = ndr->flags;
12874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12875 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12876 if (_ptr_manufacturer_url) {
12877 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12878 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12879 } else {
12880 r->manufacturer_url = NULL;
12882 ndr->flags = _flags_save_string;
12885 uint32_t _flags_save_string = ndr->flags;
12886 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12887 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12888 if (_ptr_hardware_id) {
12889 NDR_PULL_ALLOC(ndr, r->hardware_id);
12890 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12891 } else {
12892 r->hardware_id = NULL;
12894 ndr->flags = _flags_save_string;
12897 uint32_t _flags_save_string = ndr->flags;
12898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12900 if (_ptr_provider) {
12901 NDR_PULL_ALLOC(ndr, r->provider);
12902 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12903 } else {
12904 r->provider = NULL;
12906 ndr->flags = _flags_save_string;
12909 uint32_t _flags_save_string = ndr->flags;
12910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12911 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
12912 if (_ptr_print_processor) {
12913 NDR_PULL_ALLOC(ndr, r->print_processor);
12914 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
12915 } else {
12916 r->print_processor = NULL;
12918 ndr->flags = _flags_save_string;
12921 uint32_t _flags_save_string = ndr->flags;
12922 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12923 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
12924 if (_ptr_vendor_setup) {
12925 NDR_PULL_ALLOC(ndr, r->vendor_setup);
12926 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
12927 } else {
12928 r->vendor_setup = NULL;
12930 ndr->flags = _flags_save_string;
12933 uint32_t _flags_save_string_array = ndr->flags;
12934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12935 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
12936 if (_ptr_color_profiles) {
12937 NDR_PULL_ALLOC(ndr, r->color_profiles);
12938 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
12939 } else {
12940 r->color_profiles = NULL;
12942 ndr->flags = _flags_save_string_array;
12945 uint32_t _flags_save_string = ndr->flags;
12946 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12947 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
12948 if (_ptr_inf_path) {
12949 NDR_PULL_ALLOC(ndr, r->inf_path);
12950 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
12951 } else {
12952 r->inf_path = NULL;
12954 ndr->flags = _flags_save_string;
12956 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
12958 uint32_t _flags_save_string_array = ndr->flags;
12959 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12960 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
12961 if (_ptr_core_driver_dependencies) {
12962 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
12963 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
12964 } else {
12965 r->core_driver_dependencies = NULL;
12967 ndr->flags = _flags_save_string_array;
12969 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
12970 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
12972 if (ndr_flags & NDR_BUFFERS) {
12974 uint32_t _flags_save_string = ndr->flags;
12975 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12976 if (r->driver_name) {
12977 uint32_t _relative_save_offset;
12978 _relative_save_offset = ndr->offset;
12979 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12980 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12981 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12982 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12983 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12984 ndr->offset = _relative_save_offset;
12986 ndr->flags = _flags_save_string;
12989 uint32_t _flags_save_string = ndr->flags;
12990 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12991 if (r->architecture) {
12992 uint32_t _relative_save_offset;
12993 _relative_save_offset = ndr->offset;
12994 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12995 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12996 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12997 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12998 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12999 ndr->offset = _relative_save_offset;
13001 ndr->flags = _flags_save_string;
13004 uint32_t _flags_save_string = ndr->flags;
13005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13006 if (r->driver_path) {
13007 uint32_t _relative_save_offset;
13008 _relative_save_offset = ndr->offset;
13009 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13010 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13011 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13012 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13014 ndr->offset = _relative_save_offset;
13016 ndr->flags = _flags_save_string;
13019 uint32_t _flags_save_string = ndr->flags;
13020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13021 if (r->data_file) {
13022 uint32_t _relative_save_offset;
13023 _relative_save_offset = ndr->offset;
13024 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13025 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13026 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13027 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13029 ndr->offset = _relative_save_offset;
13031 ndr->flags = _flags_save_string;
13034 uint32_t _flags_save_string = ndr->flags;
13035 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13036 if (r->config_file) {
13037 uint32_t _relative_save_offset;
13038 _relative_save_offset = ndr->offset;
13039 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13040 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13041 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13042 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13043 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13044 ndr->offset = _relative_save_offset;
13046 ndr->flags = _flags_save_string;
13049 uint32_t _flags_save_string = ndr->flags;
13050 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13051 if (r->help_file) {
13052 uint32_t _relative_save_offset;
13053 _relative_save_offset = ndr->offset;
13054 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
13055 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13056 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
13057 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
13058 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
13059 ndr->offset = _relative_save_offset;
13061 ndr->flags = _flags_save_string;
13064 uint32_t _flags_save_string = ndr->flags;
13065 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13066 if (r->monitor_name) {
13067 uint32_t _relative_save_offset;
13068 _relative_save_offset = ndr->offset;
13069 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13070 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13071 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13072 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13073 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13074 ndr->offset = _relative_save_offset;
13076 ndr->flags = _flags_save_string;
13079 uint32_t _flags_save_string = ndr->flags;
13080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13081 if (r->default_datatype) {
13082 uint32_t _relative_save_offset;
13083 _relative_save_offset = ndr->offset;
13084 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13085 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13086 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13087 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13089 ndr->offset = _relative_save_offset;
13091 ndr->flags = _flags_save_string;
13094 uint32_t _flags_save_string_array = ndr->flags;
13095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13096 if (r->dependent_files) {
13097 uint32_t _relative_save_offset;
13098 _relative_save_offset = ndr->offset;
13099 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13100 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13101 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13102 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13104 ndr->offset = _relative_save_offset;
13106 ndr->flags = _flags_save_string_array;
13109 uint32_t _flags_save_string_array = ndr->flags;
13110 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13111 if (r->previous_names) {
13112 uint32_t _relative_save_offset;
13113 _relative_save_offset = ndr->offset;
13114 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13115 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13116 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13117 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13118 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13119 ndr->offset = _relative_save_offset;
13121 ndr->flags = _flags_save_string_array;
13124 uint32_t _flags_save_string = ndr->flags;
13125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13126 if (r->manufacturer_name) {
13127 uint32_t _relative_save_offset;
13128 _relative_save_offset = ndr->offset;
13129 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13130 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13131 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13132 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13134 ndr->offset = _relative_save_offset;
13136 ndr->flags = _flags_save_string;
13139 uint32_t _flags_save_string = ndr->flags;
13140 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13141 if (r->manufacturer_url) {
13142 uint32_t _relative_save_offset;
13143 _relative_save_offset = ndr->offset;
13144 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13145 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13146 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13147 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13148 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13149 ndr->offset = _relative_save_offset;
13151 ndr->flags = _flags_save_string;
13154 uint32_t _flags_save_string = ndr->flags;
13155 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13156 if (r->hardware_id) {
13157 uint32_t _relative_save_offset;
13158 _relative_save_offset = ndr->offset;
13159 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13160 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13161 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13162 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13163 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13164 ndr->offset = _relative_save_offset;
13166 ndr->flags = _flags_save_string;
13169 uint32_t _flags_save_string = ndr->flags;
13170 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13171 if (r->provider) {
13172 uint32_t _relative_save_offset;
13173 _relative_save_offset = ndr->offset;
13174 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13175 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13176 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13177 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13179 ndr->offset = _relative_save_offset;
13181 ndr->flags = _flags_save_string;
13184 uint32_t _flags_save_string = ndr->flags;
13185 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13186 if (r->print_processor) {
13187 uint32_t _relative_save_offset;
13188 _relative_save_offset = ndr->offset;
13189 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
13190 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
13191 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
13192 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
13193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
13194 ndr->offset = _relative_save_offset;
13196 ndr->flags = _flags_save_string;
13199 uint32_t _flags_save_string = ndr->flags;
13200 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13201 if (r->vendor_setup) {
13202 uint32_t _relative_save_offset;
13203 _relative_save_offset = ndr->offset;
13204 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
13205 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
13206 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
13207 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
13208 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
13209 ndr->offset = _relative_save_offset;
13211 ndr->flags = _flags_save_string;
13214 uint32_t _flags_save_string_array = ndr->flags;
13215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13216 if (r->color_profiles) {
13217 uint32_t _relative_save_offset;
13218 _relative_save_offset = ndr->offset;
13219 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
13220 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
13221 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
13222 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
13223 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
13224 ndr->offset = _relative_save_offset;
13226 ndr->flags = _flags_save_string_array;
13229 uint32_t _flags_save_string = ndr->flags;
13230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13231 if (r->inf_path) {
13232 uint32_t _relative_save_offset;
13233 _relative_save_offset = ndr->offset;
13234 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
13235 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13236 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
13237 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
13238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
13239 ndr->offset = _relative_save_offset;
13241 ndr->flags = _flags_save_string;
13244 uint32_t _flags_save_string_array = ndr->flags;
13245 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13246 if (r->core_driver_dependencies) {
13247 uint32_t _relative_save_offset;
13248 _relative_save_offset = ndr->offset;
13249 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
13250 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13251 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
13252 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
13253 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
13254 ndr->offset = _relative_save_offset;
13256 ndr->flags = _flags_save_string_array;
13259 return NDR_ERR_SUCCESS;
13262 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
13264 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
13265 ndr->depth++;
13266 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13267 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13268 ndr->depth++;
13269 if (r->driver_name) {
13270 ndr_print_string(ndr, "driver_name", r->driver_name);
13272 ndr->depth--;
13273 ndr_print_ptr(ndr, "architecture", r->architecture);
13274 ndr->depth++;
13275 if (r->architecture) {
13276 ndr_print_string(ndr, "architecture", r->architecture);
13278 ndr->depth--;
13279 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13280 ndr->depth++;
13281 if (r->driver_path) {
13282 ndr_print_string(ndr, "driver_path", r->driver_path);
13284 ndr->depth--;
13285 ndr_print_ptr(ndr, "data_file", r->data_file);
13286 ndr->depth++;
13287 if (r->data_file) {
13288 ndr_print_string(ndr, "data_file", r->data_file);
13290 ndr->depth--;
13291 ndr_print_ptr(ndr, "config_file", r->config_file);
13292 ndr->depth++;
13293 if (r->config_file) {
13294 ndr_print_string(ndr, "config_file", r->config_file);
13296 ndr->depth--;
13297 ndr_print_ptr(ndr, "help_file", r->help_file);
13298 ndr->depth++;
13299 if (r->help_file) {
13300 ndr_print_string(ndr, "help_file", r->help_file);
13302 ndr->depth--;
13303 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13304 ndr->depth++;
13305 if (r->monitor_name) {
13306 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13308 ndr->depth--;
13309 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13310 ndr->depth++;
13311 if (r->default_datatype) {
13312 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13314 ndr->depth--;
13315 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13316 ndr->depth++;
13317 if (r->dependent_files) {
13318 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13320 ndr->depth--;
13321 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13322 ndr->depth++;
13323 if (r->previous_names) {
13324 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13326 ndr->depth--;
13327 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13328 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13329 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13330 ndr->depth++;
13331 if (r->manufacturer_name) {
13332 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13334 ndr->depth--;
13335 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13336 ndr->depth++;
13337 if (r->manufacturer_url) {
13338 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13340 ndr->depth--;
13341 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13342 ndr->depth++;
13343 if (r->hardware_id) {
13344 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13346 ndr->depth--;
13347 ndr_print_ptr(ndr, "provider", r->provider);
13348 ndr->depth++;
13349 if (r->provider) {
13350 ndr_print_string(ndr, "provider", r->provider);
13352 ndr->depth--;
13353 ndr_print_ptr(ndr, "print_processor", r->print_processor);
13354 ndr->depth++;
13355 if (r->print_processor) {
13356 ndr_print_string(ndr, "print_processor", r->print_processor);
13358 ndr->depth--;
13359 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
13360 ndr->depth++;
13361 if (r->vendor_setup) {
13362 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
13364 ndr->depth--;
13365 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
13366 ndr->depth++;
13367 if (r->color_profiles) {
13368 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
13370 ndr->depth--;
13371 ndr_print_ptr(ndr, "inf_path", r->inf_path);
13372 ndr->depth++;
13373 if (r->inf_path) {
13374 ndr_print_string(ndr, "inf_path", r->inf_path);
13376 ndr->depth--;
13377 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
13378 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13379 ndr->depth++;
13380 if (r->core_driver_dependencies) {
13381 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13383 ndr->depth--;
13384 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
13385 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
13386 ndr->depth--;
13389 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
13391 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
13394 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
13396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13397 return NDR_ERR_SUCCESS;
13400 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
13402 uint32_t v;
13403 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13404 *r = v;
13405 return NDR_ERR_SUCCESS;
13408 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
13410 const char *val = NULL;
13412 switch (r) {
13413 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13414 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13415 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13416 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13417 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13419 ndr_print_enum(ndr, name, "ENUM", val, r);
13422 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
13424 if (ndr_flags & NDR_SCALARS) {
13425 NDR_CHECK(ndr_push_align(ndr, 4));
13427 uint32_t _flags_save_string = ndr->flags;
13428 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13429 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
13430 ndr->flags = _flags_save_string;
13432 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
13433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
13435 if (ndr_flags & NDR_BUFFERS) {
13437 uint32_t _flags_save_string = ndr->flags;
13438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13439 if (r->file_name) {
13440 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->file_name));
13441 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
13442 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->file_name));
13444 ndr->flags = _flags_save_string;
13447 return NDR_ERR_SUCCESS;
13450 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
13452 uint32_t _ptr_file_name;
13453 TALLOC_CTX *_mem_save_file_name_0;
13454 if (ndr_flags & NDR_SCALARS) {
13455 NDR_CHECK(ndr_pull_align(ndr, 4));
13457 uint32_t _flags_save_string = ndr->flags;
13458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13459 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
13460 if (_ptr_file_name) {
13461 NDR_PULL_ALLOC(ndr, r->file_name);
13462 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
13463 } else {
13464 r->file_name = NULL;
13466 ndr->flags = _flags_save_string;
13468 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
13469 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
13471 if (ndr_flags & NDR_BUFFERS) {
13473 uint32_t _flags_save_string = ndr->flags;
13474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13475 if (r->file_name) {
13476 uint32_t _relative_save_offset;
13477 _relative_save_offset = ndr->offset;
13478 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
13479 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13480 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
13481 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
13482 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
13483 ndr->offset = _relative_save_offset;
13485 ndr->flags = _flags_save_string;
13488 return NDR_ERR_SUCCESS;
13491 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
13493 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
13494 ndr->depth++;
13495 ndr_print_ptr(ndr, "file_name", r->file_name);
13496 ndr->depth++;
13497 if (r->file_name) {
13498 ndr_print_string(ndr, "file_name", r->file_name);
13500 ndr->depth--;
13501 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
13502 ndr_print_uint32(ndr, "file_version", r->file_version);
13503 ndr->depth--;
13506 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
13508 uint32_t cntr_file_info_1;
13509 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
13510 ndr->depth++;
13511 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13512 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13513 ndr->depth++;
13514 if (r->driver_name) {
13515 ndr_print_string(ndr, "driver_name", r->driver_name);
13517 ndr->depth--;
13518 ndr_print_ptr(ndr, "architecture", r->architecture);
13519 ndr->depth++;
13520 if (r->architecture) {
13521 ndr_print_string(ndr, "architecture", r->architecture);
13523 ndr->depth--;
13524 ndr_print_ptr(ndr, "file_info", r->file_info);
13525 ndr->depth++;
13526 if (r->file_info) {
13527 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
13528 ndr->depth++;
13529 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
13530 char *idx_1=NULL;
13531 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
13532 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
13533 free(idx_1);
13536 ndr->depth--;
13538 ndr->depth--;
13539 ndr_print_uint32(ndr, "file_count", r->file_count);
13540 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13541 ndr->depth++;
13542 if (r->monitor_name) {
13543 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13545 ndr->depth--;
13546 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13547 ndr->depth++;
13548 if (r->default_datatype) {
13549 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13551 ndr->depth--;
13552 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13553 ndr->depth++;
13554 if (r->previous_names) {
13555 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13557 ndr->depth--;
13558 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13559 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13560 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13561 ndr->depth++;
13562 if (r->manufacturer_name) {
13563 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13565 ndr->depth--;
13566 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13567 ndr->depth++;
13568 if (r->manufacturer_url) {
13569 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13571 ndr->depth--;
13572 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13573 ndr->depth++;
13574 if (r->hardware_id) {
13575 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13577 ndr->depth--;
13578 ndr_print_ptr(ndr, "provider", r->provider);
13579 ndr->depth++;
13580 if (r->provider) {
13581 ndr_print_string(ndr, "provider", r->provider);
13583 ndr->depth--;
13584 ndr->depth--;
13587 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
13589 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
13592 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
13594 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13596 uint32_t _flags_save_UNION = ndr->flags;
13597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
13598 if (ndr_flags & NDR_SCALARS) {
13599 int level = ndr_push_get_switch_value(ndr, r);
13600 switch (level) {
13601 case 1: {
13602 NDR_CHECK(ndr_push_align(ndr, 4));
13603 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13604 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13605 break; }
13607 case 2: {
13608 NDR_CHECK(ndr_push_align(ndr, 4));
13609 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13610 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13611 break; }
13613 case 3: {
13614 NDR_CHECK(ndr_push_align(ndr, 4));
13615 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13616 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13617 break; }
13619 case 4: {
13620 NDR_CHECK(ndr_push_align(ndr, 4));
13621 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13622 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13623 break; }
13625 case 5: {
13626 NDR_CHECK(ndr_push_align(ndr, 4));
13627 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13628 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13629 break; }
13631 case 6: {
13632 NDR_CHECK(ndr_push_align(ndr, 8));
13633 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13634 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13635 break; }
13637 case 8: {
13638 NDR_CHECK(ndr_push_align(ndr, 8));
13639 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13640 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13641 break; }
13643 case 101: {
13644 NDR_CHECK(ndr_push_align(ndr, 8));
13645 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13646 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
13647 break; }
13649 default: {
13650 break; }
13654 if (ndr_flags & NDR_BUFFERS) {
13655 int level = ndr_push_get_switch_value(ndr, r);
13656 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13657 switch (level) {
13658 case 1:
13659 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
13660 break;
13662 case 2:
13663 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
13664 break;
13666 case 3:
13667 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
13668 break;
13670 case 4:
13671 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
13672 break;
13674 case 5:
13675 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
13676 break;
13678 case 6:
13679 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
13680 break;
13682 case 8:
13683 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
13684 break;
13686 case 101:
13687 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
13688 break;
13690 default:
13691 break;
13695 ndr->flags = _flags_save_UNION;
13697 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13698 return NDR_ERR_SUCCESS;
13701 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
13703 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13704 int level;
13706 uint32_t _flags_save_UNION = ndr->flags;
13707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
13708 level = ndr_pull_get_switch_value(ndr, r);
13709 if (ndr_flags & NDR_SCALARS) {
13710 switch (level) {
13711 case 1: {
13712 NDR_CHECK(ndr_pull_align(ndr, 4));
13713 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13714 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13715 break; }
13717 case 2: {
13718 NDR_CHECK(ndr_pull_align(ndr, 4));
13719 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13720 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13721 break; }
13723 case 3: {
13724 NDR_CHECK(ndr_pull_align(ndr, 4));
13725 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13726 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13727 break; }
13729 case 4: {
13730 NDR_CHECK(ndr_pull_align(ndr, 4));
13731 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13732 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13733 break; }
13735 case 5: {
13736 NDR_CHECK(ndr_pull_align(ndr, 4));
13737 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13738 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13739 break; }
13741 case 6: {
13742 NDR_CHECK(ndr_pull_align(ndr, 8));
13743 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13744 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13745 break; }
13747 case 8: {
13748 NDR_CHECK(ndr_pull_align(ndr, 8));
13749 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13750 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13751 break; }
13753 case 101: {
13754 NDR_CHECK(ndr_pull_align(ndr, 8));
13755 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13756 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
13757 break; }
13759 default: {
13760 break; }
13764 if (ndr_flags & NDR_BUFFERS) {
13765 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13766 switch (level) {
13767 case 1:
13768 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
13769 break;
13771 case 2:
13772 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
13773 break;
13775 case 3:
13776 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
13777 break;
13779 case 4:
13780 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
13781 break;
13783 case 5:
13784 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
13785 break;
13787 case 6:
13788 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
13789 break;
13791 case 8:
13792 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
13793 break;
13795 case 101:
13796 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
13797 break;
13799 default:
13800 break;
13804 ndr->flags = _flags_save_UNION;
13806 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13807 return NDR_ERR_SUCCESS;
13810 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
13812 int level;
13814 uint32_t _flags_save_UNION = ndr->flags;
13815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
13816 level = ndr_print_get_switch_value(ndr, r);
13817 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
13818 switch (level) {
13819 case 1:
13820 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
13821 break;
13823 case 2:
13824 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
13825 break;
13827 case 3:
13828 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
13829 break;
13831 case 4:
13832 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
13833 break;
13835 case 5:
13836 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
13837 break;
13839 case 6:
13840 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
13841 break;
13843 case 8:
13844 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
13845 break;
13847 case 101:
13848 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
13849 break;
13851 default:
13852 break;
13855 ndr->flags = _flags_save_UNION;
13859 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
13861 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
13862 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
13865 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
13867 if (ndr_flags & NDR_SCALARS) {
13868 NDR_CHECK(ndr_push_align(ndr, 4));
13870 uint32_t _flags_save_string = ndr->flags;
13871 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13872 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
13873 ndr->flags = _flags_save_string;
13876 if (ndr_flags & NDR_BUFFERS) {
13878 return NDR_ERR_SUCCESS;
13881 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
13883 if (ndr_flags & NDR_SCALARS) {
13884 NDR_CHECK(ndr_pull_align(ndr, 4));
13886 uint32_t _flags_save_string = ndr->flags;
13887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13888 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
13889 ndr->flags = _flags_save_string;
13892 if (ndr_flags & NDR_BUFFERS) {
13894 return NDR_ERR_SUCCESS;
13897 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
13899 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
13900 ndr->depth++;
13901 ndr_print_string(ndr, "directory_name", r->directory_name);
13902 ndr->depth--;
13905 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
13907 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
13910 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
13912 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13914 uint32_t _flags_save_UNION = ndr->flags;
13915 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
13916 if (ndr_flags & NDR_SCALARS) {
13917 int level = ndr_push_get_switch_value(ndr, r);
13918 switch (level) {
13919 case 1: {
13920 NDR_CHECK(ndr_push_align(ndr, 4));
13921 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13922 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13923 break; }
13925 default: {
13926 NDR_CHECK(ndr_push_align(ndr, 4));
13927 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13928 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13929 break; }
13933 if (ndr_flags & NDR_BUFFERS) {
13934 int level = ndr_push_get_switch_value(ndr, r);
13935 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13936 switch (level) {
13937 case 1:
13938 break;
13940 default:
13941 break;
13945 ndr->flags = _flags_save_UNION;
13947 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13948 return NDR_ERR_SUCCESS;
13951 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
13953 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13954 int level;
13956 uint32_t _flags_save_UNION = ndr->flags;
13957 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
13958 level = ndr_pull_get_switch_value(ndr, r);
13959 if (ndr_flags & NDR_SCALARS) {
13960 switch (level) {
13961 case 1: {
13962 NDR_CHECK(ndr_pull_align(ndr, 4));
13963 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13964 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13965 break; }
13967 default: {
13968 NDR_CHECK(ndr_pull_align(ndr, 4));
13969 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13970 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13971 break; }
13975 if (ndr_flags & NDR_BUFFERS) {
13976 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13977 switch (level) {
13978 case 1:
13979 break;
13981 default:
13982 break;
13986 ndr->flags = _flags_save_UNION;
13988 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13989 return NDR_ERR_SUCCESS;
13992 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
13994 int level;
13996 uint32_t _flags_save_UNION = ndr->flags;
13997 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
13998 level = ndr_print_get_switch_value(ndr, r);
13999 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
14000 switch (level) {
14001 case 1:
14002 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14003 break;
14005 default:
14006 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14007 break;
14010 ndr->flags = _flags_save_UNION;
14014 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14016 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
14017 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
14020 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
14022 if (ndr_flags & NDR_SCALARS) {
14023 NDR_CHECK(ndr_push_align(ndr, 4));
14025 uint32_t _flags_save_string = ndr->flags;
14026 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14027 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
14028 ndr->flags = _flags_save_string;
14031 if (ndr_flags & NDR_BUFFERS) {
14033 uint32_t _flags_save_string = ndr->flags;
14034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14035 if (r->print_processor_name) {
14036 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor_name));
14037 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
14038 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor_name));
14040 ndr->flags = _flags_save_string;
14043 return NDR_ERR_SUCCESS;
14046 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
14048 uint32_t _ptr_print_processor_name;
14049 TALLOC_CTX *_mem_save_print_processor_name_0;
14050 if (ndr_flags & NDR_SCALARS) {
14051 NDR_CHECK(ndr_pull_align(ndr, 4));
14053 uint32_t _flags_save_string = ndr->flags;
14054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14055 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
14056 if (_ptr_print_processor_name) {
14057 NDR_PULL_ALLOC(ndr, r->print_processor_name);
14058 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
14059 } else {
14060 r->print_processor_name = NULL;
14062 ndr->flags = _flags_save_string;
14065 if (ndr_flags & NDR_BUFFERS) {
14067 uint32_t _flags_save_string = ndr->flags;
14068 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14069 if (r->print_processor_name) {
14070 uint32_t _relative_save_offset;
14071 _relative_save_offset = ndr->offset;
14072 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
14073 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14074 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
14075 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
14076 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
14077 ndr->offset = _relative_save_offset;
14079 ndr->flags = _flags_save_string;
14082 return NDR_ERR_SUCCESS;
14085 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
14087 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
14088 ndr->depth++;
14089 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
14090 ndr->depth++;
14091 if (r->print_processor_name) {
14092 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
14094 ndr->depth--;
14095 ndr->depth--;
14098 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14100 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
14103 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
14105 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14107 uint32_t _flags_save_UNION = ndr->flags;
14108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14109 if (ndr_flags & NDR_SCALARS) {
14110 int level = ndr_push_get_switch_value(ndr, r);
14111 switch (level) {
14112 case 1: {
14113 NDR_CHECK(ndr_push_align(ndr, 4));
14114 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14115 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14116 break; }
14118 default: {
14119 break; }
14123 if (ndr_flags & NDR_BUFFERS) {
14124 int level = ndr_push_get_switch_value(ndr, r);
14125 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14126 switch (level) {
14127 case 1:
14128 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14129 break;
14131 default:
14132 break;
14136 ndr->flags = _flags_save_UNION;
14138 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14139 return NDR_ERR_SUCCESS;
14142 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
14144 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14145 int level;
14147 uint32_t _flags_save_UNION = ndr->flags;
14148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14149 level = ndr_pull_get_switch_value(ndr, r);
14150 if (ndr_flags & NDR_SCALARS) {
14151 switch (level) {
14152 case 1: {
14153 NDR_CHECK(ndr_pull_align(ndr, 4));
14154 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14155 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14156 break; }
14158 default: {
14159 break; }
14163 if (ndr_flags & NDR_BUFFERS) {
14164 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14165 switch (level) {
14166 case 1:
14167 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14168 break;
14170 default:
14171 break;
14175 ndr->flags = _flags_save_UNION;
14177 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14178 return NDR_ERR_SUCCESS;
14181 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
14183 int level;
14185 uint32_t _flags_save_UNION = ndr->flags;
14186 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14187 level = ndr_print_get_switch_value(ndr, r);
14188 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
14189 switch (level) {
14190 case 1:
14191 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
14192 break;
14194 default:
14195 break;
14198 ndr->flags = _flags_save_UNION;
14202 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14204 if (ndr_flags & NDR_SCALARS) {
14205 NDR_CHECK(ndr_push_align(ndr, 4));
14207 uint32_t _flags_save_string = ndr->flags;
14208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14209 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14210 ndr->flags = _flags_save_string;
14213 if (ndr_flags & NDR_BUFFERS) {
14215 return NDR_ERR_SUCCESS;
14218 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
14220 if (ndr_flags & NDR_SCALARS) {
14221 NDR_CHECK(ndr_pull_align(ndr, 4));
14223 uint32_t _flags_save_string = ndr->flags;
14224 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14225 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14226 ndr->flags = _flags_save_string;
14229 if (ndr_flags & NDR_BUFFERS) {
14231 return NDR_ERR_SUCCESS;
14234 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14236 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
14237 ndr->depth++;
14238 ndr_print_string(ndr, "directory_name", r->directory_name);
14239 ndr->depth--;
14242 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14244 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
14247 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
14249 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14251 uint32_t _flags_save_UNION = ndr->flags;
14252 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14253 if (ndr_flags & NDR_SCALARS) {
14254 int level = ndr_push_get_switch_value(ndr, r);
14255 switch (level) {
14256 case 1: {
14257 NDR_CHECK(ndr_push_align(ndr, 4));
14258 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14259 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14260 break; }
14262 default: {
14263 NDR_CHECK(ndr_push_align(ndr, 4));
14264 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14265 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14266 break; }
14270 if (ndr_flags & NDR_BUFFERS) {
14271 int level = ndr_push_get_switch_value(ndr, r);
14272 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14273 switch (level) {
14274 case 1:
14275 break;
14277 default:
14278 break;
14282 ndr->flags = _flags_save_UNION;
14284 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14285 return NDR_ERR_SUCCESS;
14288 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
14290 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14291 int level;
14293 uint32_t _flags_save_UNION = ndr->flags;
14294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14295 level = ndr_pull_get_switch_value(ndr, r);
14296 if (ndr_flags & NDR_SCALARS) {
14297 switch (level) {
14298 case 1: {
14299 NDR_CHECK(ndr_pull_align(ndr, 4));
14300 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14301 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14302 break; }
14304 default: {
14305 NDR_CHECK(ndr_pull_align(ndr, 4));
14306 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14307 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14308 break; }
14312 if (ndr_flags & NDR_BUFFERS) {
14313 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14314 switch (level) {
14315 case 1:
14316 break;
14318 default:
14319 break;
14323 ndr->flags = _flags_save_UNION;
14325 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14326 return NDR_ERR_SUCCESS;
14329 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
14331 int level;
14333 uint32_t _flags_save_UNION = ndr->flags;
14334 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14335 level = ndr_print_get_switch_value(ndr, r);
14336 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
14337 switch (level) {
14338 case 1:
14339 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14340 break;
14342 default:
14343 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14344 break;
14347 ndr->flags = _flags_save_UNION;
14351 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14353 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
14354 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
14357 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
14359 if (ndr_flags & NDR_SCALARS) {
14360 NDR_CHECK(ndr_push_align(ndr, 4));
14361 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
14362 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
14363 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
14365 if (ndr_flags & NDR_BUFFERS) {
14366 if (r->document_name) {
14367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14370 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14372 if (r->output_file) {
14373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14376 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14378 if (r->datatype) {
14379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14382 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14385 return NDR_ERR_SUCCESS;
14388 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
14390 uint32_t _ptr_document_name;
14391 TALLOC_CTX *_mem_save_document_name_0;
14392 uint32_t _ptr_output_file;
14393 TALLOC_CTX *_mem_save_output_file_0;
14394 uint32_t _ptr_datatype;
14395 TALLOC_CTX *_mem_save_datatype_0;
14396 if (ndr_flags & NDR_SCALARS) {
14397 NDR_CHECK(ndr_pull_align(ndr, 4));
14398 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
14399 if (_ptr_document_name) {
14400 NDR_PULL_ALLOC(ndr, r->document_name);
14401 } else {
14402 r->document_name = NULL;
14404 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
14405 if (_ptr_output_file) {
14406 NDR_PULL_ALLOC(ndr, r->output_file);
14407 } else {
14408 r->output_file = NULL;
14410 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14411 if (_ptr_datatype) {
14412 NDR_PULL_ALLOC(ndr, r->datatype);
14413 } else {
14414 r->datatype = NULL;
14417 if (ndr_flags & NDR_BUFFERS) {
14418 if (r->document_name) {
14419 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14420 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
14421 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
14422 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
14423 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
14424 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));
14426 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
14427 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
14428 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
14430 if (r->output_file) {
14431 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14432 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
14433 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
14434 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
14435 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
14436 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));
14438 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
14439 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
14440 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
14442 if (r->datatype) {
14443 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14444 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
14445 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
14446 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
14447 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
14448 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));
14450 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
14451 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
14452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14455 return NDR_ERR_SUCCESS;
14458 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
14460 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
14461 ndr->depth++;
14462 ndr_print_ptr(ndr, "document_name", r->document_name);
14463 ndr->depth++;
14464 if (r->document_name) {
14465 ndr_print_string(ndr, "document_name", r->document_name);
14467 ndr->depth--;
14468 ndr_print_ptr(ndr, "output_file", r->output_file);
14469 ndr->depth++;
14470 if (r->output_file) {
14471 ndr_print_string(ndr, "output_file", r->output_file);
14473 ndr->depth--;
14474 ndr_print_ptr(ndr, "datatype", r->datatype);
14475 ndr->depth++;
14476 if (r->datatype) {
14477 ndr_print_string(ndr, "datatype", r->datatype);
14479 ndr->depth--;
14480 ndr->depth--;
14483 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
14485 if (ndr_flags & NDR_SCALARS) {
14486 int level = ndr_push_get_switch_value(ndr, r);
14487 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14488 switch (level) {
14489 case 1: {
14490 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
14491 break; }
14493 case 2: {
14494 break; }
14496 case 3: {
14497 break; }
14499 default: {
14500 break; }
14504 if (ndr_flags & NDR_BUFFERS) {
14505 int level = ndr_push_get_switch_value(ndr, r);
14506 switch (level) {
14507 case 1:
14508 if (r->info1) {
14509 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14511 break;
14513 case 2:
14514 break;
14516 case 3:
14517 break;
14519 default:
14520 break;
14524 return NDR_ERR_SUCCESS;
14527 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
14529 int level;
14530 uint32_t _level;
14531 TALLOC_CTX *_mem_save_info1_0;
14532 level = ndr_pull_get_switch_value(ndr, r);
14533 if (ndr_flags & NDR_SCALARS) {
14534 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14535 if (_level != level) {
14536 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14538 switch (level) {
14539 case 1: {
14540 uint32_t _ptr_info1;
14541 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
14542 if (_ptr_info1) {
14543 NDR_PULL_ALLOC(ndr, r->info1);
14544 } else {
14545 r->info1 = NULL;
14547 break; }
14549 case 2: {
14550 break; }
14552 case 3: {
14553 break; }
14555 default: {
14556 break; }
14560 if (ndr_flags & NDR_BUFFERS) {
14561 switch (level) {
14562 case 1:
14563 if (r->info1) {
14564 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14565 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
14566 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14567 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
14569 break;
14571 case 2:
14572 break;
14574 case 3:
14575 break;
14577 default:
14578 break;
14582 return NDR_ERR_SUCCESS;
14585 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
14587 int level;
14588 level = ndr_print_get_switch_value(ndr, r);
14589 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
14590 switch (level) {
14591 case 1:
14592 ndr_print_ptr(ndr, "info1", r->info1);
14593 ndr->depth++;
14594 if (r->info1) {
14595 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
14597 ndr->depth--;
14598 break;
14600 case 2:
14601 break;
14603 case 3:
14604 break;
14606 default:
14607 break;
14612 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
14614 if (ndr_flags & NDR_SCALARS) {
14615 NDR_CHECK(ndr_push_align(ndr, 4));
14616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
14617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14620 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14622 uint32_t _flags_save_string = ndr->flags;
14623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14625 struct ndr_push *_ndr_extra_string;
14626 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14627 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14628 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14630 ndr->flags = _flags_save_string;
14633 if (ndr_flags & NDR_BUFFERS) {
14635 return NDR_ERR_SUCCESS;
14638 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
14640 if (ndr_flags & NDR_SCALARS) {
14641 NDR_CHECK(ndr_pull_align(ndr, 4));
14642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14643 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14644 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14645 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14646 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
14648 uint32_t _flags_save_string = ndr->flags;
14649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14651 struct ndr_pull *_ndr_extra_string;
14652 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14653 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14654 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14656 ndr->flags = _flags_save_string;
14659 if (ndr_flags & NDR_BUFFERS) {
14661 return NDR_ERR_SUCCESS;
14664 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
14666 ndr_print_struct(ndr, name, "spoolss_OSVersion");
14667 ndr->depth++;
14668 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);
14669 ndr_print_uint32(ndr, "major", r->major);
14670 ndr_print_uint32(ndr, "minor", r->minor);
14671 ndr_print_uint32(ndr, "build", r->build);
14672 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
14673 ndr_print_string(ndr, "extra_string", r->extra_string);
14674 ndr->depth--;
14677 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
14679 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
14682 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
14684 if (ndr_flags & NDR_SCALARS) {
14685 NDR_CHECK(ndr_push_align(ndr, 4));
14686 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
14687 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14688 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14692 uint32_t _flags_save_string = ndr->flags;
14693 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14695 struct ndr_push *_ndr_extra_string;
14696 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14697 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14698 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14700 ndr->flags = _flags_save_string;
14702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
14703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
14705 if (ndr_flags & NDR_BUFFERS) {
14707 return NDR_ERR_SUCCESS;
14710 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
14712 if (ndr_flags & NDR_SCALARS) {
14713 NDR_CHECK(ndr_pull_align(ndr, 4));
14714 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14715 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14716 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14718 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
14720 uint32_t _flags_save_string = ndr->flags;
14721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14723 struct ndr_pull *_ndr_extra_string;
14724 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14725 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14726 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14728 ndr->flags = _flags_save_string;
14730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
14731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
14733 if (ndr_flags & NDR_BUFFERS) {
14735 return NDR_ERR_SUCCESS;
14738 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
14740 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
14741 ndr->depth++;
14742 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);
14743 ndr_print_uint32(ndr, "major", r->major);
14744 ndr_print_uint32(ndr, "minor", r->minor);
14745 ndr_print_uint32(ndr, "build", r->build);
14746 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
14747 ndr_print_string(ndr, "extra_string", r->extra_string);
14748 ndr_print_uint32(ndr, "unknown2", r->unknown2);
14749 ndr_print_uint32(ndr, "unknown3", r->unknown3);
14750 ndr->depth--;
14753 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
14755 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
14758 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
14760 if (ndr_flags & NDR_SCALARS) {
14761 int level = ndr_push_get_switch_value(ndr, r);
14762 switch (level) {
14763 case REG_NONE: {
14764 break; }
14766 case REG_SZ: {
14768 uint32_t _flags_save_string = ndr->flags;
14769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14770 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
14771 ndr->flags = _flags_save_string;
14773 break; }
14775 case REG_BINARY: {
14777 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14779 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
14780 ndr->flags = _flags_save_DATA_BLOB;
14782 break; }
14784 case REG_DWORD: {
14785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
14786 break; }
14788 case REG_MULTI_SZ: {
14790 uint32_t _flags_save_string_array = ndr->flags;
14791 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14792 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
14793 ndr->flags = _flags_save_string_array;
14795 break; }
14797 default: {
14799 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14801 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
14802 ndr->flags = _flags_save_DATA_BLOB;
14804 break; }
14808 if (ndr_flags & NDR_BUFFERS) {
14809 int level = ndr_push_get_switch_value(ndr, r);
14810 switch (level) {
14811 case REG_NONE:
14812 break;
14814 case REG_SZ:
14815 break;
14817 case REG_BINARY:
14818 break;
14820 case REG_DWORD:
14821 break;
14823 case REG_MULTI_SZ:
14824 break;
14826 default:
14827 break;
14831 return NDR_ERR_SUCCESS;
14834 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
14836 int level;
14837 level = ndr_pull_get_switch_value(ndr, r);
14838 if (ndr_flags & NDR_SCALARS) {
14839 switch (level) {
14840 case REG_NONE: {
14841 break; }
14843 case REG_SZ: {
14845 uint32_t _flags_save_string = ndr->flags;
14846 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14847 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
14848 ndr->flags = _flags_save_string;
14850 break; }
14852 case REG_BINARY: {
14854 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14855 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14856 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
14857 ndr->flags = _flags_save_DATA_BLOB;
14859 break; }
14861 case REG_DWORD: {
14862 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
14863 break; }
14865 case REG_MULTI_SZ: {
14867 uint32_t _flags_save_string_array = ndr->flags;
14868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14869 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
14870 ndr->flags = _flags_save_string_array;
14872 break; }
14874 default: {
14876 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14878 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
14879 ndr->flags = _flags_save_DATA_BLOB;
14881 break; }
14885 if (ndr_flags & NDR_BUFFERS) {
14886 switch (level) {
14887 case REG_NONE:
14888 break;
14890 case REG_SZ:
14891 break;
14893 case REG_BINARY:
14894 break;
14896 case REG_DWORD:
14897 break;
14899 case REG_MULTI_SZ:
14900 break;
14902 default:
14903 break;
14907 return NDR_ERR_SUCCESS;
14910 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
14912 int level;
14913 level = ndr_print_get_switch_value(ndr, r);
14914 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
14915 switch (level) {
14916 case REG_NONE:
14917 break;
14919 case REG_SZ:
14920 ndr_print_string(ndr, "string", r->string);
14921 break;
14923 case REG_BINARY:
14924 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
14925 break;
14927 case REG_DWORD:
14928 ndr_print_uint32(ndr, "value", r->value);
14929 break;
14931 case REG_MULTI_SZ:
14932 ndr_print_string_array(ndr, "string_array", r->string_array);
14933 break;
14935 default:
14936 ndr_print_DATA_BLOB(ndr, "data", r->data);
14937 break;
14942 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14944 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
14947 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
14949 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14950 return NDR_ERR_SUCCESS;
14953 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
14955 uint32_t v;
14956 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14957 *r = v;
14958 return NDR_ERR_SUCCESS;
14961 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
14963 const char *val = NULL;
14965 switch (r) {
14966 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
14967 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
14968 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
14970 ndr_print_enum(ndr, name, "ENUM", val, r);
14973 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
14975 if (ndr_flags & NDR_SCALARS) {
14976 NDR_CHECK(ndr_push_align(ndr, 4));
14977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
14978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
14980 if (ndr_flags & NDR_BUFFERS) {
14982 return NDR_ERR_SUCCESS;
14985 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
14987 if (ndr_flags & NDR_SCALARS) {
14988 NDR_CHECK(ndr_pull_align(ndr, 4));
14989 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
14990 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
14992 if (ndr_flags & NDR_BUFFERS) {
14994 return NDR_ERR_SUCCESS;
14997 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
14999 ndr_print_struct(ndr, name, "spoolss_FormSize");
15000 ndr->depth++;
15001 ndr_print_uint32(ndr, "width", r->width);
15002 ndr_print_uint32(ndr, "height", r->height);
15003 ndr->depth--;
15006 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
15008 if (ndr_flags & NDR_SCALARS) {
15009 NDR_CHECK(ndr_push_align(ndr, 4));
15010 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
15011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
15012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
15013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
15015 if (ndr_flags & NDR_BUFFERS) {
15017 return NDR_ERR_SUCCESS;
15020 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
15022 if (ndr_flags & NDR_SCALARS) {
15023 NDR_CHECK(ndr_pull_align(ndr, 4));
15024 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
15025 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
15026 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
15027 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
15029 if (ndr_flags & NDR_BUFFERS) {
15031 return NDR_ERR_SUCCESS;
15034 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
15036 ndr_print_struct(ndr, name, "spoolss_FormArea");
15037 ndr->depth++;
15038 ndr_print_uint32(ndr, "left", r->left);
15039 ndr_print_uint32(ndr, "top", r->top);
15040 ndr_print_uint32(ndr, "right", r->right);
15041 ndr_print_uint32(ndr, "bottom", r->bottom);
15042 ndr->depth--;
15045 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
15047 if (ndr_flags & NDR_SCALARS) {
15048 NDR_CHECK(ndr_push_align(ndr, 4));
15049 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15051 uint32_t _flags_save_string = ndr->flags;
15052 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15053 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15054 ndr->flags = _flags_save_string;
15056 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15057 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15059 if (ndr_flags & NDR_BUFFERS) {
15061 uint32_t _flags_save_string = ndr->flags;
15062 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15063 if (r->form_name) {
15064 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
15065 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15066 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
15068 ndr->flags = _flags_save_string;
15071 return NDR_ERR_SUCCESS;
15074 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
15076 uint32_t _ptr_form_name;
15077 TALLOC_CTX *_mem_save_form_name_0;
15078 if (ndr_flags & NDR_SCALARS) {
15079 NDR_CHECK(ndr_pull_align(ndr, 4));
15080 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15082 uint32_t _flags_save_string = ndr->flags;
15083 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15085 if (_ptr_form_name) {
15086 NDR_PULL_ALLOC(ndr, r->form_name);
15087 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15088 } else {
15089 r->form_name = NULL;
15091 ndr->flags = _flags_save_string;
15093 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15094 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15096 if (ndr_flags & NDR_BUFFERS) {
15098 uint32_t _flags_save_string = ndr->flags;
15099 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15100 if (r->form_name) {
15101 uint32_t _relative_save_offset;
15102 _relative_save_offset = ndr->offset;
15103 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15104 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15105 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15106 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15108 ndr->offset = _relative_save_offset;
15110 ndr->flags = _flags_save_string;
15113 return NDR_ERR_SUCCESS;
15116 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
15118 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
15119 ndr->depth++;
15120 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15121 ndr_print_ptr(ndr, "form_name", r->form_name);
15122 ndr->depth++;
15123 if (r->form_name) {
15124 ndr_print_string(ndr, "form_name", r->form_name);
15126 ndr->depth--;
15127 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15128 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15129 ndr->depth--;
15132 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15134 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
15137 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15140 return NDR_ERR_SUCCESS;
15143 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15145 uint32_t v;
15146 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15147 *r = v;
15148 return NDR_ERR_SUCCESS;
15151 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
15153 ndr_print_uint32(ndr, name, r);
15154 ndr->depth++;
15155 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
15156 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
15157 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
15158 ndr->depth--;
15161 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
15163 if (ndr_flags & NDR_SCALARS) {
15164 NDR_CHECK(ndr_push_align(ndr, 4));
15165 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15167 uint32_t _flags_save_string = ndr->flags;
15168 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15169 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15170 ndr->flags = _flags_save_string;
15172 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15173 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15175 uint32_t _flags_save_string = ndr->flags;
15176 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15177 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
15178 ndr->flags = _flags_save_string;
15180 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15182 uint32_t _flags_save_string = ndr->flags;
15183 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15184 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
15185 ndr->flags = _flags_save_string;
15187 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15189 uint32_t _flags_save_string = ndr->flags;
15190 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15191 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
15192 ndr->flags = _flags_save_string;
15194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15196 if (ndr_flags & NDR_BUFFERS) {
15198 uint32_t _flags_save_string = ndr->flags;
15199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15200 if (r->form_name) {
15201 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
15202 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15203 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
15205 ndr->flags = _flags_save_string;
15208 uint32_t _flags_save_string = ndr->flags;
15209 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15210 if (r->keyword) {
15211 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->keyword));
15212 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
15213 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->keyword));
15215 ndr->flags = _flags_save_string;
15218 uint32_t _flags_save_string = ndr->flags;
15219 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15220 if (r->mui_dll) {
15221 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->mui_dll));
15222 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
15223 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->mui_dll));
15225 ndr->flags = _flags_save_string;
15228 uint32_t _flags_save_string = ndr->flags;
15229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15230 if (r->display_name) {
15231 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->display_name));
15232 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
15233 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->display_name));
15235 ndr->flags = _flags_save_string;
15238 return NDR_ERR_SUCCESS;
15241 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
15243 uint32_t _ptr_form_name;
15244 TALLOC_CTX *_mem_save_form_name_0;
15245 uint32_t _ptr_keyword;
15246 TALLOC_CTX *_mem_save_keyword_0;
15247 uint32_t _ptr_mui_dll;
15248 TALLOC_CTX *_mem_save_mui_dll_0;
15249 uint32_t _ptr_display_name;
15250 TALLOC_CTX *_mem_save_display_name_0;
15251 if (ndr_flags & NDR_SCALARS) {
15252 NDR_CHECK(ndr_pull_align(ndr, 4));
15253 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15255 uint32_t _flags_save_string = ndr->flags;
15256 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15257 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15258 if (_ptr_form_name) {
15259 NDR_PULL_ALLOC(ndr, r->form_name);
15260 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15261 } else {
15262 r->form_name = NULL;
15264 ndr->flags = _flags_save_string;
15266 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15267 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15269 uint32_t _flags_save_string = ndr->flags;
15270 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15271 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15272 if (_ptr_keyword) {
15273 NDR_PULL_ALLOC(ndr, r->keyword);
15274 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
15275 } else {
15276 r->keyword = NULL;
15278 ndr->flags = _flags_save_string;
15280 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15282 uint32_t _flags_save_string = ndr->flags;
15283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15284 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15285 if (_ptr_mui_dll) {
15286 NDR_PULL_ALLOC(ndr, r->mui_dll);
15287 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
15288 } else {
15289 r->mui_dll = NULL;
15291 ndr->flags = _flags_save_string;
15293 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15295 uint32_t _flags_save_string = ndr->flags;
15296 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15298 if (_ptr_display_name) {
15299 NDR_PULL_ALLOC(ndr, r->display_name);
15300 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
15301 } else {
15302 r->display_name = NULL;
15304 ndr->flags = _flags_save_string;
15306 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15308 if (ndr_flags & NDR_BUFFERS) {
15310 uint32_t _flags_save_string = ndr->flags;
15311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15312 if (r->form_name) {
15313 uint32_t _relative_save_offset;
15314 _relative_save_offset = ndr->offset;
15315 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15316 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15317 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15318 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15320 ndr->offset = _relative_save_offset;
15322 ndr->flags = _flags_save_string;
15325 uint32_t _flags_save_string = ndr->flags;
15326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15327 if (r->keyword) {
15328 uint32_t _relative_save_offset;
15329 _relative_save_offset = ndr->offset;
15330 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
15331 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15332 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15333 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
15334 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15335 ndr->offset = _relative_save_offset;
15337 ndr->flags = _flags_save_string;
15340 uint32_t _flags_save_string = ndr->flags;
15341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15342 if (r->mui_dll) {
15343 uint32_t _relative_save_offset;
15344 _relative_save_offset = ndr->offset;
15345 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
15346 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15347 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15348 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
15349 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15350 ndr->offset = _relative_save_offset;
15352 ndr->flags = _flags_save_string;
15355 uint32_t _flags_save_string = ndr->flags;
15356 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15357 if (r->display_name) {
15358 uint32_t _relative_save_offset;
15359 _relative_save_offset = ndr->offset;
15360 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
15361 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15362 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15363 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
15364 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15365 ndr->offset = _relative_save_offset;
15367 ndr->flags = _flags_save_string;
15370 return NDR_ERR_SUCCESS;
15373 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
15375 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
15376 ndr->depth++;
15377 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15378 ndr_print_ptr(ndr, "form_name", r->form_name);
15379 ndr->depth++;
15380 if (r->form_name) {
15381 ndr_print_string(ndr, "form_name", r->form_name);
15383 ndr->depth--;
15384 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15385 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15386 ndr_print_ptr(ndr, "keyword", r->keyword);
15387 ndr->depth++;
15388 if (r->keyword) {
15389 ndr_print_string(ndr, "keyword", r->keyword);
15391 ndr->depth--;
15392 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15393 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15394 ndr->depth++;
15395 if (r->mui_dll) {
15396 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15398 ndr->depth--;
15399 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15400 ndr_print_ptr(ndr, "display_name", r->display_name);
15401 ndr->depth++;
15402 if (r->display_name) {
15403 ndr_print_string(ndr, "display_name", r->display_name);
15405 ndr->depth--;
15406 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15407 ndr->depth--;
15410 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
15412 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
15415 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
15417 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15419 uint32_t _flags_save_UNION = ndr->flags;
15420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15421 if (ndr_flags & NDR_SCALARS) {
15422 int level = ndr_push_get_switch_value(ndr, r);
15423 switch (level) {
15424 case 1: {
15425 NDR_CHECK(ndr_push_align(ndr, 4));
15426 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15427 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15428 break; }
15430 case 2: {
15431 NDR_CHECK(ndr_push_align(ndr, 4));
15432 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15433 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15434 break; }
15436 default: {
15437 break; }
15441 if (ndr_flags & NDR_BUFFERS) {
15442 int level = ndr_push_get_switch_value(ndr, r);
15443 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15444 switch (level) {
15445 case 1:
15446 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15447 break;
15449 case 2:
15450 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15451 break;
15453 default:
15454 break;
15458 ndr->flags = _flags_save_UNION;
15460 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15461 return NDR_ERR_SUCCESS;
15464 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
15466 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15467 int level;
15469 uint32_t _flags_save_UNION = ndr->flags;
15470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15471 level = ndr_pull_get_switch_value(ndr, r);
15472 if (ndr_flags & NDR_SCALARS) {
15473 switch (level) {
15474 case 1: {
15475 NDR_CHECK(ndr_pull_align(ndr, 4));
15476 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15477 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15478 break; }
15480 case 2: {
15481 NDR_CHECK(ndr_pull_align(ndr, 4));
15482 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15483 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15484 break; }
15486 default: {
15487 break; }
15491 if (ndr_flags & NDR_BUFFERS) {
15492 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15493 switch (level) {
15494 case 1:
15495 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15496 break;
15498 case 2:
15499 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15500 break;
15502 default:
15503 break;
15507 ndr->flags = _flags_save_UNION;
15509 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15510 return NDR_ERR_SUCCESS;
15513 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
15515 int level;
15517 uint32_t _flags_save_UNION = ndr->flags;
15518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15519 level = ndr_print_get_switch_value(ndr, r);
15520 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
15521 switch (level) {
15522 case 1:
15523 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
15524 break;
15526 case 2:
15527 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
15528 break;
15530 default:
15531 break;
15534 ndr->flags = _flags_save_UNION;
15538 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15540 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
15541 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
15544 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
15546 if (ndr_flags & NDR_SCALARS) {
15547 NDR_CHECK(ndr_push_align(ndr, 4));
15548 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15549 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15550 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15551 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15553 if (ndr_flags & NDR_BUFFERS) {
15554 if (r->form_name) {
15555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15558 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15561 return NDR_ERR_SUCCESS;
15564 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
15566 uint32_t _ptr_form_name;
15567 TALLOC_CTX *_mem_save_form_name_0;
15568 if (ndr_flags & NDR_SCALARS) {
15569 NDR_CHECK(ndr_pull_align(ndr, 4));
15570 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15572 if (_ptr_form_name) {
15573 NDR_PULL_ALLOC(ndr, r->form_name);
15574 } else {
15575 r->form_name = NULL;
15577 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15578 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15580 if (ndr_flags & NDR_BUFFERS) {
15581 if (r->form_name) {
15582 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15583 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15584 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15585 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15586 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15587 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));
15589 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15590 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15594 return NDR_ERR_SUCCESS;
15597 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
15599 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
15600 ndr->depth++;
15601 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15602 ndr_print_ptr(ndr, "form_name", r->form_name);
15603 ndr->depth++;
15604 if (r->form_name) {
15605 ndr_print_string(ndr, "form_name", r->form_name);
15607 ndr->depth--;
15608 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15609 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15610 ndr->depth--;
15613 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
15615 if (ndr_flags & NDR_SCALARS) {
15616 NDR_CHECK(ndr_push_align(ndr, 4));
15617 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15618 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15619 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15620 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15621 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
15622 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15623 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
15624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15625 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
15626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15628 if (ndr_flags & NDR_BUFFERS) {
15629 if (r->form_name) {
15630 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15633 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15635 if (r->keyword) {
15636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15639 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
15641 if (r->mui_dll) {
15642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15645 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15647 if (r->display_name) {
15648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15651 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15654 return NDR_ERR_SUCCESS;
15657 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
15659 uint32_t _ptr_form_name;
15660 TALLOC_CTX *_mem_save_form_name_0;
15661 uint32_t _ptr_keyword;
15662 TALLOC_CTX *_mem_save_keyword_0;
15663 uint32_t _ptr_mui_dll;
15664 TALLOC_CTX *_mem_save_mui_dll_0;
15665 uint32_t _ptr_display_name;
15666 TALLOC_CTX *_mem_save_display_name_0;
15667 if (ndr_flags & NDR_SCALARS) {
15668 NDR_CHECK(ndr_pull_align(ndr, 4));
15669 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15670 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15671 if (_ptr_form_name) {
15672 NDR_PULL_ALLOC(ndr, r->form_name);
15673 } else {
15674 r->form_name = NULL;
15676 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15677 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15678 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15679 if (_ptr_keyword) {
15680 NDR_PULL_ALLOC(ndr, r->keyword);
15681 } else {
15682 r->keyword = NULL;
15684 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15686 if (_ptr_mui_dll) {
15687 NDR_PULL_ALLOC(ndr, r->mui_dll);
15688 } else {
15689 r->mui_dll = NULL;
15691 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15692 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15693 if (_ptr_display_name) {
15694 NDR_PULL_ALLOC(ndr, r->display_name);
15695 } else {
15696 r->display_name = NULL;
15698 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15700 if (ndr_flags & NDR_BUFFERS) {
15701 if (r->form_name) {
15702 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15703 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15704 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15705 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15706 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15707 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));
15709 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15710 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15713 if (r->keyword) {
15714 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15715 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15716 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
15717 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
15718 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
15719 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));
15721 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
15722 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
15723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15725 if (r->mui_dll) {
15726 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15727 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15728 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
15729 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
15730 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
15731 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));
15733 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
15734 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
15735 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15737 if (r->display_name) {
15738 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15739 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15740 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
15741 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
15742 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
15743 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));
15745 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
15746 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
15747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15750 return NDR_ERR_SUCCESS;
15753 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
15755 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
15756 ndr->depth++;
15757 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15758 ndr_print_ptr(ndr, "form_name", r->form_name);
15759 ndr->depth++;
15760 if (r->form_name) {
15761 ndr_print_string(ndr, "form_name", r->form_name);
15763 ndr->depth--;
15764 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15765 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15766 ndr_print_ptr(ndr, "keyword", r->keyword);
15767 ndr->depth++;
15768 if (r->keyword) {
15769 ndr_print_string(ndr, "keyword", r->keyword);
15771 ndr->depth--;
15772 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15773 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15774 ndr->depth++;
15775 if (r->mui_dll) {
15776 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15778 ndr->depth--;
15779 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15780 ndr_print_ptr(ndr, "display_name", r->display_name);
15781 ndr->depth++;
15782 if (r->display_name) {
15783 ndr_print_string(ndr, "display_name", r->display_name);
15785 ndr->depth--;
15786 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15787 ndr->depth--;
15790 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
15792 if (ndr_flags & NDR_SCALARS) {
15793 int level = ndr_push_get_switch_value(ndr, r);
15794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15795 switch (level) {
15796 case 1: {
15797 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15798 break; }
15800 case 2: {
15801 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
15802 break; }
15804 default:
15805 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15808 if (ndr_flags & NDR_BUFFERS) {
15809 int level = ndr_push_get_switch_value(ndr, r);
15810 switch (level) {
15811 case 1:
15812 if (r->info1) {
15813 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15815 break;
15817 case 2:
15818 if (r->info2) {
15819 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
15821 break;
15823 default:
15824 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15827 return NDR_ERR_SUCCESS;
15830 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
15832 int level;
15833 uint32_t _level;
15834 TALLOC_CTX *_mem_save_info1_0;
15835 TALLOC_CTX *_mem_save_info2_0;
15836 level = ndr_pull_get_switch_value(ndr, r);
15837 if (ndr_flags & NDR_SCALARS) {
15838 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15839 if (_level != level) {
15840 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
15842 switch (level) {
15843 case 1: {
15844 uint32_t _ptr_info1;
15845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15846 if (_ptr_info1) {
15847 NDR_PULL_ALLOC(ndr, r->info1);
15848 } else {
15849 r->info1 = NULL;
15851 break; }
15853 case 2: {
15854 uint32_t _ptr_info2;
15855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
15856 if (_ptr_info2) {
15857 NDR_PULL_ALLOC(ndr, r->info2);
15858 } else {
15859 r->info2 = NULL;
15861 break; }
15863 default:
15864 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15867 if (ndr_flags & NDR_BUFFERS) {
15868 switch (level) {
15869 case 1:
15870 if (r->info1) {
15871 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15872 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15873 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15876 break;
15878 case 2:
15879 if (r->info2) {
15880 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
15881 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
15882 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
15883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
15885 break;
15887 default:
15888 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15891 return NDR_ERR_SUCCESS;
15894 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
15896 int level;
15897 level = ndr_print_get_switch_value(ndr, r);
15898 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
15899 switch (level) {
15900 case 1:
15901 ndr_print_ptr(ndr, "info1", r->info1);
15902 ndr->depth++;
15903 if (r->info1) {
15904 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
15906 ndr->depth--;
15907 break;
15909 case 2:
15910 ndr_print_ptr(ndr, "info2", r->info2);
15911 ndr->depth++;
15912 if (r->info2) {
15913 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
15915 ndr->depth--;
15916 break;
15918 default:
15919 ndr_print_bad_level(ndr, name, level);
15923 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
15925 if (ndr_flags & NDR_SCALARS) {
15926 NDR_CHECK(ndr_push_align(ndr, 4));
15928 uint32_t _flags_save_string = ndr->flags;
15929 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15930 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
15931 ndr->flags = _flags_save_string;
15934 if (ndr_flags & NDR_BUFFERS) {
15936 uint32_t _flags_save_string = ndr->flags;
15937 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15938 if (r->port_name) {
15939 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
15940 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
15941 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
15943 ndr->flags = _flags_save_string;
15946 return NDR_ERR_SUCCESS;
15949 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
15951 uint32_t _ptr_port_name;
15952 TALLOC_CTX *_mem_save_port_name_0;
15953 if (ndr_flags & NDR_SCALARS) {
15954 NDR_CHECK(ndr_pull_align(ndr, 4));
15956 uint32_t _flags_save_string = ndr->flags;
15957 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15958 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
15959 if (_ptr_port_name) {
15960 NDR_PULL_ALLOC(ndr, r->port_name);
15961 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
15962 } else {
15963 r->port_name = NULL;
15965 ndr->flags = _flags_save_string;
15968 if (ndr_flags & NDR_BUFFERS) {
15970 uint32_t _flags_save_string = ndr->flags;
15971 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15972 if (r->port_name) {
15973 uint32_t _relative_save_offset;
15974 _relative_save_offset = ndr->offset;
15975 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
15976 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15977 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
15978 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
15979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
15980 ndr->offset = _relative_save_offset;
15982 ndr->flags = _flags_save_string;
15985 return NDR_ERR_SUCCESS;
15988 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
15990 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
15991 ndr->depth++;
15992 ndr_print_ptr(ndr, "port_name", r->port_name);
15993 ndr->depth++;
15994 if (r->port_name) {
15995 ndr_print_string(ndr, "port_name", r->port_name);
15997 ndr->depth--;
15998 ndr->depth--;
16001 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16003 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
16006 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16008 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16009 return NDR_ERR_SUCCESS;
16012 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16014 uint32_t v;
16015 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16016 *r = v;
16017 return NDR_ERR_SUCCESS;
16020 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
16022 ndr_print_uint32(ndr, name, r);
16023 ndr->depth++;
16024 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
16025 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
16026 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
16027 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
16028 ndr->depth--;
16031 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
16033 if (ndr_flags & NDR_SCALARS) {
16034 NDR_CHECK(ndr_push_align(ndr, 4));
16036 uint32_t _flags_save_string = ndr->flags;
16037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16038 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16039 ndr->flags = _flags_save_string;
16042 uint32_t _flags_save_string = ndr->flags;
16043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16044 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16045 ndr->flags = _flags_save_string;
16048 uint32_t _flags_save_string = ndr->flags;
16049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16050 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
16051 ndr->flags = _flags_save_string;
16053 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
16054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
16056 if (ndr_flags & NDR_BUFFERS) {
16058 uint32_t _flags_save_string = ndr->flags;
16059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16060 if (r->port_name) {
16061 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
16062 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16063 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
16065 ndr->flags = _flags_save_string;
16068 uint32_t _flags_save_string = ndr->flags;
16069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16070 if (r->monitor_name) {
16071 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
16072 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16073 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
16075 ndr->flags = _flags_save_string;
16078 uint32_t _flags_save_string = ndr->flags;
16079 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16080 if (r->description) {
16081 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
16082 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
16083 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
16085 ndr->flags = _flags_save_string;
16088 return NDR_ERR_SUCCESS;
16091 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
16093 uint32_t _ptr_port_name;
16094 TALLOC_CTX *_mem_save_port_name_0;
16095 uint32_t _ptr_monitor_name;
16096 TALLOC_CTX *_mem_save_monitor_name_0;
16097 uint32_t _ptr_description;
16098 TALLOC_CTX *_mem_save_description_0;
16099 if (ndr_flags & NDR_SCALARS) {
16100 NDR_CHECK(ndr_pull_align(ndr, 4));
16102 uint32_t _flags_save_string = ndr->flags;
16103 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16104 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16105 if (_ptr_port_name) {
16106 NDR_PULL_ALLOC(ndr, r->port_name);
16107 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16108 } else {
16109 r->port_name = NULL;
16111 ndr->flags = _flags_save_string;
16114 uint32_t _flags_save_string = ndr->flags;
16115 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16116 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16117 if (_ptr_monitor_name) {
16118 NDR_PULL_ALLOC(ndr, r->monitor_name);
16119 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16120 } else {
16121 r->monitor_name = NULL;
16123 ndr->flags = _flags_save_string;
16126 uint32_t _flags_save_string = ndr->flags;
16127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16128 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
16129 if (_ptr_description) {
16130 NDR_PULL_ALLOC(ndr, r->description);
16131 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
16132 } else {
16133 r->description = NULL;
16135 ndr->flags = _flags_save_string;
16137 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
16138 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
16140 if (ndr_flags & NDR_BUFFERS) {
16142 uint32_t _flags_save_string = ndr->flags;
16143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16144 if (r->port_name) {
16145 uint32_t _relative_save_offset;
16146 _relative_save_offset = ndr->offset;
16147 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16148 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16149 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16150 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16152 ndr->offset = _relative_save_offset;
16154 ndr->flags = _flags_save_string;
16157 uint32_t _flags_save_string = ndr->flags;
16158 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16159 if (r->monitor_name) {
16160 uint32_t _relative_save_offset;
16161 _relative_save_offset = ndr->offset;
16162 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16163 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16164 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16165 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16167 ndr->offset = _relative_save_offset;
16169 ndr->flags = _flags_save_string;
16172 uint32_t _flags_save_string = ndr->flags;
16173 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16174 if (r->description) {
16175 uint32_t _relative_save_offset;
16176 _relative_save_offset = ndr->offset;
16177 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
16178 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
16179 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
16180 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
16181 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
16182 ndr->offset = _relative_save_offset;
16184 ndr->flags = _flags_save_string;
16187 return NDR_ERR_SUCCESS;
16190 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
16192 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
16193 ndr->depth++;
16194 ndr_print_ptr(ndr, "port_name", r->port_name);
16195 ndr->depth++;
16196 if (r->port_name) {
16197 ndr_print_string(ndr, "port_name", r->port_name);
16199 ndr->depth--;
16200 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16201 ndr->depth++;
16202 if (r->monitor_name) {
16203 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16205 ndr->depth--;
16206 ndr_print_ptr(ndr, "description", r->description);
16207 ndr->depth++;
16208 if (r->description) {
16209 ndr_print_string(ndr, "description", r->description);
16211 ndr->depth--;
16212 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
16213 ndr_print_uint32(ndr, "reserved", r->reserved);
16214 ndr->depth--;
16217 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16219 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
16222 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
16224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16225 return NDR_ERR_SUCCESS;
16228 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
16230 uint32_t v;
16231 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16232 *r = v;
16233 return NDR_ERR_SUCCESS;
16236 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
16238 const char *val = NULL;
16240 switch (r) {
16241 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
16242 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
16243 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
16244 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
16245 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16246 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
16247 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
16248 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
16249 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
16250 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
16251 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
16252 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
16253 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
16255 ndr_print_enum(ndr, name, "ENUM", val, r);
16258 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
16260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16261 return NDR_ERR_SUCCESS;
16264 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
16266 uint32_t v;
16267 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16268 *r = v;
16269 return NDR_ERR_SUCCESS;
16272 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
16274 const char *val = NULL;
16276 switch (r) {
16277 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
16278 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
16279 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
16281 ndr_print_enum(ndr, name, "ENUM", val, r);
16284 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
16286 if (ndr_flags & NDR_SCALARS) {
16287 NDR_CHECK(ndr_push_align(ndr, 4));
16288 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
16290 uint32_t _flags_save_string = ndr->flags;
16291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16292 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
16293 ndr->flags = _flags_save_string;
16295 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
16297 if (ndr_flags & NDR_BUFFERS) {
16299 uint32_t _flags_save_string = ndr->flags;
16300 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16301 if (r->status_string) {
16302 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->status_string));
16303 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
16304 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->status_string));
16306 ndr->flags = _flags_save_string;
16309 return NDR_ERR_SUCCESS;
16312 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
16314 uint32_t _ptr_status_string;
16315 TALLOC_CTX *_mem_save_status_string_0;
16316 if (ndr_flags & NDR_SCALARS) {
16317 NDR_CHECK(ndr_pull_align(ndr, 4));
16318 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
16320 uint32_t _flags_save_string = ndr->flags;
16321 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16322 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
16323 if (_ptr_status_string) {
16324 NDR_PULL_ALLOC(ndr, r->status_string);
16325 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
16326 } else {
16327 r->status_string = NULL;
16329 ndr->flags = _flags_save_string;
16331 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
16333 if (ndr_flags & NDR_BUFFERS) {
16335 uint32_t _flags_save_string = ndr->flags;
16336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16337 if (r->status_string) {
16338 uint32_t _relative_save_offset;
16339 _relative_save_offset = ndr->offset;
16340 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
16341 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
16342 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
16343 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
16344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
16345 ndr->offset = _relative_save_offset;
16347 ndr->flags = _flags_save_string;
16350 return NDR_ERR_SUCCESS;
16353 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
16355 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
16356 ndr->depth++;
16357 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
16358 ndr_print_ptr(ndr, "status_string", r->status_string);
16359 ndr->depth++;
16360 if (r->status_string) {
16361 ndr_print_string(ndr, "status_string", r->status_string);
16363 ndr->depth--;
16364 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
16365 ndr->depth--;
16368 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
16370 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
16373 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
16375 if (ndr_flags & NDR_SCALARS) {
16376 NDR_CHECK(ndr_push_align(ndr, 4));
16378 uint32_t _flags_save_string = ndr->flags;
16379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16380 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16381 ndr->flags = _flags_save_string;
16383 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
16385 if (ndr_flags & NDR_BUFFERS) {
16387 uint32_t _flags_save_string = ndr->flags;
16388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16389 if (r->port_name) {
16390 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
16391 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16392 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
16394 ndr->flags = _flags_save_string;
16397 return NDR_ERR_SUCCESS;
16400 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
16402 uint32_t _ptr_port_name;
16403 TALLOC_CTX *_mem_save_port_name_0;
16404 if (ndr_flags & NDR_SCALARS) {
16405 NDR_CHECK(ndr_pull_align(ndr, 4));
16407 uint32_t _flags_save_string = ndr->flags;
16408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16409 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16410 if (_ptr_port_name) {
16411 NDR_PULL_ALLOC(ndr, r->port_name);
16412 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16413 } else {
16414 r->port_name = NULL;
16416 ndr->flags = _flags_save_string;
16418 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
16420 if (ndr_flags & NDR_BUFFERS) {
16422 uint32_t _flags_save_string = ndr->flags;
16423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16424 if (r->port_name) {
16425 uint32_t _relative_save_offset;
16426 _relative_save_offset = ndr->offset;
16427 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16428 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16429 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16430 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16431 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16432 ndr->offset = _relative_save_offset;
16434 ndr->flags = _flags_save_string;
16437 return NDR_ERR_SUCCESS;
16440 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
16442 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
16443 ndr->depth++;
16444 ndr_print_ptr(ndr, "port_name", r->port_name);
16445 ndr->depth++;
16446 if (r->port_name) {
16447 ndr_print_string(ndr, "port_name", r->port_name);
16449 ndr->depth--;
16450 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
16451 ndr->depth--;
16454 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
16456 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
16459 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
16461 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16463 uint32_t _flags_save_UNION = ndr->flags;
16464 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16465 if (ndr_flags & NDR_SCALARS) {
16466 int level = ndr_push_get_switch_value(ndr, r);
16467 switch (level) {
16468 case 1: {
16469 NDR_CHECK(ndr_push_align(ndr, 4));
16470 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16471 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16472 break; }
16474 case 2: {
16475 NDR_CHECK(ndr_push_align(ndr, 4));
16476 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16477 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16478 break; }
16480 case 3: {
16481 NDR_CHECK(ndr_push_align(ndr, 4));
16482 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16483 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16484 break; }
16486 case 0xff: {
16487 NDR_CHECK(ndr_push_align(ndr, 4));
16488 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16489 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16490 break; }
16492 default: {
16493 break; }
16497 if (ndr_flags & NDR_BUFFERS) {
16498 int level = ndr_push_get_switch_value(ndr, r);
16499 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16500 switch (level) {
16501 case 1:
16502 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16503 break;
16505 case 2:
16506 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16507 break;
16509 case 3:
16510 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16511 break;
16513 case 0xff:
16514 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16515 break;
16517 default:
16518 break;
16522 ndr->flags = _flags_save_UNION;
16524 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16525 return NDR_ERR_SUCCESS;
16528 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
16530 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16531 int level;
16533 uint32_t _flags_save_UNION = ndr->flags;
16534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16535 level = ndr_pull_get_switch_value(ndr, r);
16536 if (ndr_flags & NDR_SCALARS) {
16537 switch (level) {
16538 case 1: {
16539 NDR_CHECK(ndr_pull_align(ndr, 4));
16540 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16541 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16542 break; }
16544 case 2: {
16545 NDR_CHECK(ndr_pull_align(ndr, 4));
16546 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16547 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16548 break; }
16550 case 3: {
16551 NDR_CHECK(ndr_pull_align(ndr, 4));
16552 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16553 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16554 break; }
16556 case 0xff: {
16557 NDR_CHECK(ndr_pull_align(ndr, 4));
16558 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16559 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16560 break; }
16562 default: {
16563 break; }
16567 if (ndr_flags & NDR_BUFFERS) {
16568 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16569 switch (level) {
16570 case 1:
16571 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16572 break;
16574 case 2:
16575 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16576 break;
16578 case 3:
16579 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16580 break;
16582 case 0xff:
16583 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16584 break;
16586 default:
16587 break;
16591 ndr->flags = _flags_save_UNION;
16593 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16594 return NDR_ERR_SUCCESS;
16597 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
16599 int level;
16601 uint32_t _flags_save_UNION = ndr->flags;
16602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16603 level = ndr_print_get_switch_value(ndr, r);
16604 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
16605 switch (level) {
16606 case 1:
16607 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
16608 break;
16610 case 2:
16611 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
16612 break;
16614 case 3:
16615 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
16616 break;
16618 case 0xff:
16619 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
16620 break;
16622 default:
16623 break;
16626 ndr->flags = _flags_save_UNION;
16630 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
16632 if (ndr_flags & NDR_SCALARS) {
16633 NDR_CHECK(ndr_push_align(ndr, 4));
16635 uint32_t _flags_save_string = ndr->flags;
16636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16637 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16638 ndr->flags = _flags_save_string;
16641 if (ndr_flags & NDR_BUFFERS) {
16643 uint32_t _flags_save_string = ndr->flags;
16644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16645 if (r->monitor_name) {
16646 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
16647 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16648 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
16650 ndr->flags = _flags_save_string;
16653 return NDR_ERR_SUCCESS;
16656 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
16658 uint32_t _ptr_monitor_name;
16659 TALLOC_CTX *_mem_save_monitor_name_0;
16660 if (ndr_flags & NDR_SCALARS) {
16661 NDR_CHECK(ndr_pull_align(ndr, 4));
16663 uint32_t _flags_save_string = ndr->flags;
16664 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16665 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16666 if (_ptr_monitor_name) {
16667 NDR_PULL_ALLOC(ndr, r->monitor_name);
16668 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16669 } else {
16670 r->monitor_name = NULL;
16672 ndr->flags = _flags_save_string;
16675 if (ndr_flags & NDR_BUFFERS) {
16677 uint32_t _flags_save_string = ndr->flags;
16678 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16679 if (r->monitor_name) {
16680 uint32_t _relative_save_offset;
16681 _relative_save_offset = ndr->offset;
16682 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16683 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16684 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16685 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16686 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16687 ndr->offset = _relative_save_offset;
16689 ndr->flags = _flags_save_string;
16692 return NDR_ERR_SUCCESS;
16695 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
16697 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
16698 ndr->depth++;
16699 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16700 ndr->depth++;
16701 if (r->monitor_name) {
16702 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16704 ndr->depth--;
16705 ndr->depth--;
16708 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16710 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
16713 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
16715 if (ndr_flags & NDR_SCALARS) {
16716 NDR_CHECK(ndr_push_align(ndr, 4));
16718 uint32_t _flags_save_string = ndr->flags;
16719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16720 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16721 ndr->flags = _flags_save_string;
16724 uint32_t _flags_save_string = ndr->flags;
16725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16726 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
16727 ndr->flags = _flags_save_string;
16730 uint32_t _flags_save_string = ndr->flags;
16731 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16732 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
16733 ndr->flags = _flags_save_string;
16736 if (ndr_flags & NDR_BUFFERS) {
16738 uint32_t _flags_save_string = ndr->flags;
16739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16740 if (r->monitor_name) {
16741 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
16742 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16743 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
16745 ndr->flags = _flags_save_string;
16748 uint32_t _flags_save_string = ndr->flags;
16749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16750 if (r->environment) {
16751 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->environment));
16752 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
16753 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->environment));
16755 ndr->flags = _flags_save_string;
16758 uint32_t _flags_save_string = ndr->flags;
16759 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16760 if (r->dll_name) {
16761 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dll_name));
16762 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
16763 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dll_name));
16765 ndr->flags = _flags_save_string;
16768 return NDR_ERR_SUCCESS;
16771 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
16773 uint32_t _ptr_monitor_name;
16774 TALLOC_CTX *_mem_save_monitor_name_0;
16775 uint32_t _ptr_environment;
16776 TALLOC_CTX *_mem_save_environment_0;
16777 uint32_t _ptr_dll_name;
16778 TALLOC_CTX *_mem_save_dll_name_0;
16779 if (ndr_flags & NDR_SCALARS) {
16780 NDR_CHECK(ndr_pull_align(ndr, 4));
16782 uint32_t _flags_save_string = ndr->flags;
16783 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16784 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16785 if (_ptr_monitor_name) {
16786 NDR_PULL_ALLOC(ndr, r->monitor_name);
16787 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16788 } else {
16789 r->monitor_name = NULL;
16791 ndr->flags = _flags_save_string;
16794 uint32_t _flags_save_string = ndr->flags;
16795 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16796 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16797 if (_ptr_environment) {
16798 NDR_PULL_ALLOC(ndr, r->environment);
16799 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
16800 } else {
16801 r->environment = NULL;
16803 ndr->flags = _flags_save_string;
16806 uint32_t _flags_save_string = ndr->flags;
16807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16808 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
16809 if (_ptr_dll_name) {
16810 NDR_PULL_ALLOC(ndr, r->dll_name);
16811 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
16812 } else {
16813 r->dll_name = NULL;
16815 ndr->flags = _flags_save_string;
16818 if (ndr_flags & NDR_BUFFERS) {
16820 uint32_t _flags_save_string = ndr->flags;
16821 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16822 if (r->monitor_name) {
16823 uint32_t _relative_save_offset;
16824 _relative_save_offset = ndr->offset;
16825 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16826 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16827 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16828 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16829 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16830 ndr->offset = _relative_save_offset;
16832 ndr->flags = _flags_save_string;
16835 uint32_t _flags_save_string = ndr->flags;
16836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16837 if (r->environment) {
16838 uint32_t _relative_save_offset;
16839 _relative_save_offset = ndr->offset;
16840 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
16841 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16842 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
16843 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
16844 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16845 ndr->offset = _relative_save_offset;
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 if (r->dll_name) {
16853 uint32_t _relative_save_offset;
16854 _relative_save_offset = ndr->offset;
16855 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
16856 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16857 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
16858 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
16859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
16860 ndr->offset = _relative_save_offset;
16862 ndr->flags = _flags_save_string;
16865 return NDR_ERR_SUCCESS;
16868 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
16870 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
16871 ndr->depth++;
16872 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16873 ndr->depth++;
16874 if (r->monitor_name) {
16875 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16877 ndr->depth--;
16878 ndr_print_ptr(ndr, "environment", r->environment);
16879 ndr->depth++;
16880 if (r->environment) {
16881 ndr_print_string(ndr, "environment", r->environment);
16883 ndr->depth--;
16884 ndr_print_ptr(ndr, "dll_name", r->dll_name);
16885 ndr->depth++;
16886 if (r->dll_name) {
16887 ndr_print_string(ndr, "dll_name", r->dll_name);
16889 ndr->depth--;
16890 ndr->depth--;
16893 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16895 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
16898 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
16900 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16902 uint32_t _flags_save_UNION = ndr->flags;
16903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16904 if (ndr_flags & NDR_SCALARS) {
16905 int level = ndr_push_get_switch_value(ndr, r);
16906 switch (level) {
16907 case 1: {
16908 NDR_CHECK(ndr_push_align(ndr, 4));
16909 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16910 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16911 break; }
16913 case 2: {
16914 NDR_CHECK(ndr_push_align(ndr, 4));
16915 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16916 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16917 break; }
16919 default: {
16920 break; }
16924 if (ndr_flags & NDR_BUFFERS) {
16925 int level = ndr_push_get_switch_value(ndr, r);
16926 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16927 switch (level) {
16928 case 1:
16929 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16930 break;
16932 case 2:
16933 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16934 break;
16936 default:
16937 break;
16941 ndr->flags = _flags_save_UNION;
16943 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16944 return NDR_ERR_SUCCESS;
16947 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
16949 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16950 int level;
16952 uint32_t _flags_save_UNION = ndr->flags;
16953 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16954 level = ndr_pull_get_switch_value(ndr, r);
16955 if (ndr_flags & NDR_SCALARS) {
16956 switch (level) {
16957 case 1: {
16958 NDR_CHECK(ndr_pull_align(ndr, 4));
16959 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16960 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16961 break; }
16963 case 2: {
16964 NDR_CHECK(ndr_pull_align(ndr, 4));
16965 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16966 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16967 break; }
16969 default: {
16970 break; }
16974 if (ndr_flags & NDR_BUFFERS) {
16975 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16976 switch (level) {
16977 case 1:
16978 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16979 break;
16981 case 2:
16982 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16983 break;
16985 default:
16986 break;
16990 ndr->flags = _flags_save_UNION;
16992 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16993 return NDR_ERR_SUCCESS;
16996 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
16998 int level;
17000 uint32_t _flags_save_UNION = ndr->flags;
17001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17002 level = ndr_print_get_switch_value(ndr, r);
17003 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
17004 switch (level) {
17005 case 1:
17006 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
17007 break;
17009 case 2:
17010 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
17011 break;
17013 default:
17014 break;
17017 ndr->flags = _flags_save_UNION;
17021 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
17023 if (ndr_flags & NDR_SCALARS) {
17024 NDR_CHECK(ndr_push_align(ndr, 4));
17026 uint32_t _flags_save_string = ndr->flags;
17027 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17028 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
17029 ndr->flags = _flags_save_string;
17032 if (ndr_flags & NDR_BUFFERS) {
17034 uint32_t _flags_save_string = ndr->flags;
17035 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17036 if (r->name_array) {
17037 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name_array));
17038 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
17039 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name_array));
17041 ndr->flags = _flags_save_string;
17044 return NDR_ERR_SUCCESS;
17047 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
17049 uint32_t _ptr_name_array;
17050 TALLOC_CTX *_mem_save_name_array_0;
17051 if (ndr_flags & NDR_SCALARS) {
17052 NDR_CHECK(ndr_pull_align(ndr, 4));
17054 uint32_t _flags_save_string = ndr->flags;
17055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17056 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
17057 if (_ptr_name_array) {
17058 NDR_PULL_ALLOC(ndr, r->name_array);
17059 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
17060 } else {
17061 r->name_array = NULL;
17063 ndr->flags = _flags_save_string;
17066 if (ndr_flags & NDR_BUFFERS) {
17068 uint32_t _flags_save_string = ndr->flags;
17069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17070 if (r->name_array) {
17071 uint32_t _relative_save_offset;
17072 _relative_save_offset = ndr->offset;
17073 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
17074 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
17075 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
17076 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
17077 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
17078 ndr->offset = _relative_save_offset;
17080 ndr->flags = _flags_save_string;
17083 return NDR_ERR_SUCCESS;
17086 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
17088 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
17089 ndr->depth++;
17090 ndr_print_ptr(ndr, "name_array", r->name_array);
17091 ndr->depth++;
17092 if (r->name_array) {
17093 ndr_print_string(ndr, "name_array", r->name_array);
17095 ndr->depth--;
17096 ndr->depth--;
17099 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17101 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
17104 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
17106 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17108 uint32_t _flags_save_UNION = ndr->flags;
17109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17110 if (ndr_flags & NDR_SCALARS) {
17111 int level = ndr_push_get_switch_value(ndr, r);
17112 switch (level) {
17113 case 1: {
17114 NDR_CHECK(ndr_push_align(ndr, 4));
17115 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17116 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17117 break; }
17119 default: {
17120 break; }
17124 if (ndr_flags & NDR_BUFFERS) {
17125 int level = ndr_push_get_switch_value(ndr, r);
17126 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17127 switch (level) {
17128 case 1:
17129 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17130 break;
17132 default:
17133 break;
17137 ndr->flags = _flags_save_UNION;
17139 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17140 return NDR_ERR_SUCCESS;
17143 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
17145 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17146 int level;
17148 uint32_t _flags_save_UNION = ndr->flags;
17149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17150 level = ndr_pull_get_switch_value(ndr, r);
17151 if (ndr_flags & NDR_SCALARS) {
17152 switch (level) {
17153 case 1: {
17154 NDR_CHECK(ndr_pull_align(ndr, 4));
17155 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17156 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17157 break; }
17159 default: {
17160 break; }
17164 if (ndr_flags & NDR_BUFFERS) {
17165 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17166 switch (level) {
17167 case 1:
17168 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17169 break;
17171 default:
17172 break;
17176 ndr->flags = _flags_save_UNION;
17178 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17179 return NDR_ERR_SUCCESS;
17182 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
17184 int level;
17186 uint32_t _flags_save_UNION = ndr->flags;
17187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17188 level = ndr_print_get_switch_value(ndr, r);
17189 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
17190 switch (level) {
17191 case 1:
17192 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
17193 break;
17195 default:
17196 break;
17199 ndr->flags = _flags_save_UNION;
17203 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17206 return NDR_ERR_SUCCESS;
17209 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17211 uint32_t v;
17212 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17213 *r = v;
17214 return NDR_ERR_SUCCESS;
17217 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17219 ndr_print_uint32(ndr, name, r);
17220 ndr->depth++;
17221 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
17222 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
17223 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
17224 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
17225 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
17226 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
17227 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
17228 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
17229 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
17230 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
17231 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
17232 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
17233 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
17234 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
17235 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
17236 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
17237 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
17238 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
17239 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
17240 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
17241 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
17242 ndr->depth--;
17245 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
17247 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17248 return NDR_ERR_SUCCESS;
17251 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
17253 uint16_t v;
17254 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17255 *r = v;
17256 return NDR_ERR_SUCCESS;
17259 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
17261 const char *val = NULL;
17263 switch (r) {
17264 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
17265 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
17266 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
17267 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
17268 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
17269 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
17270 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17271 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
17272 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
17273 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
17274 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
17275 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
17276 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17277 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
17278 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
17279 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
17280 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
17281 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
17282 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
17283 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
17284 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
17285 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
17286 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
17287 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
17289 ndr_print_enum(ndr, name, "ENUM", val, r);
17292 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
17294 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17295 return NDR_ERR_SUCCESS;
17298 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
17300 uint16_t v;
17301 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17302 *r = v;
17303 return NDR_ERR_SUCCESS;
17306 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
17308 const char *val = NULL;
17310 switch (r) {
17311 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
17312 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
17313 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
17314 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
17315 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
17316 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
17317 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
17318 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
17319 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
17320 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17321 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
17322 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
17323 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17324 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
17325 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
17326 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
17327 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
17328 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
17329 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
17330 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
17331 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
17332 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
17333 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
17334 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
17335 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
17336 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
17337 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
17338 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
17340 ndr_print_enum(ndr, name, "ENUM", val, r);
17343 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
17345 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17346 return NDR_ERR_SUCCESS;
17349 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
17351 uint16_t v;
17352 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17353 *r = v;
17354 return NDR_ERR_SUCCESS;
17357 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
17359 const char *val = NULL;
17361 switch (r) {
17362 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
17363 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
17365 ndr_print_enum(ndr, name, "ENUM", val, r);
17368 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
17370 if (ndr_flags & NDR_SCALARS) {
17371 int level = ndr_push_get_switch_value(ndr, r);
17372 switch (level) {
17373 case PRINTER_NOTIFY_TYPE: {
17374 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17375 break; }
17377 case JOB_NOTIFY_TYPE: {
17378 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17379 break; }
17381 default: {
17382 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17383 break; }
17387 if (ndr_flags & NDR_BUFFERS) {
17388 int level = ndr_push_get_switch_value(ndr, r);
17389 switch (level) {
17390 case PRINTER_NOTIFY_TYPE:
17391 break;
17393 case JOB_NOTIFY_TYPE:
17394 break;
17396 default:
17397 break;
17401 return NDR_ERR_SUCCESS;
17404 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
17406 int level;
17407 level = ndr_pull_get_switch_value(ndr, r);
17408 if (ndr_flags & NDR_SCALARS) {
17409 switch (level) {
17410 case PRINTER_NOTIFY_TYPE: {
17411 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17412 break; }
17414 case JOB_NOTIFY_TYPE: {
17415 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17416 break; }
17418 default: {
17419 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17420 break; }
17424 if (ndr_flags & NDR_BUFFERS) {
17425 switch (level) {
17426 case PRINTER_NOTIFY_TYPE:
17427 break;
17429 case JOB_NOTIFY_TYPE:
17430 break;
17432 default:
17433 break;
17437 return NDR_ERR_SUCCESS;
17440 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
17442 uint32_t cntr_fields_1;
17443 if (ndr_flags & NDR_SCALARS) {
17444 NDR_CHECK(ndr_push_align(ndr, 4));
17445 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17446 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
17447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
17448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
17449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17450 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
17452 if (ndr_flags & NDR_BUFFERS) {
17453 if (r->fields) {
17454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17455 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17456 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
17457 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17461 return NDR_ERR_SUCCESS;
17464 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
17466 uint32_t _ptr_fields;
17467 uint32_t cntr_fields_1;
17468 TALLOC_CTX *_mem_save_fields_0;
17469 TALLOC_CTX *_mem_save_fields_1;
17470 if (ndr_flags & NDR_SCALARS) {
17471 NDR_CHECK(ndr_pull_align(ndr, 4));
17472 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17473 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
17474 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
17475 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
17476 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17477 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
17478 if (_ptr_fields) {
17479 NDR_PULL_ALLOC(ndr, r->fields);
17480 } else {
17481 r->fields = NULL;
17484 if (ndr_flags & NDR_BUFFERS) {
17485 if (r->fields) {
17486 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
17487 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17488 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
17489 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
17490 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
17491 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17492 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17493 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
17494 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17496 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
17497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
17499 if (r->fields) {
17500 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
17503 return NDR_ERR_SUCCESS;
17506 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
17508 uint32_t cntr_fields_1;
17509 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
17510 ndr->depth++;
17511 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17512 ndr_print_uint16(ndr, "u1", r->u1);
17513 ndr_print_uint32(ndr, "u2", r->u2);
17514 ndr_print_uint32(ndr, "u3", r->u3);
17515 ndr_print_uint32(ndr, "count", r->count);
17516 ndr_print_ptr(ndr, "fields", r->fields);
17517 ndr->depth++;
17518 if (r->fields) {
17519 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
17520 ndr->depth++;
17521 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
17522 char *idx_1=NULL;
17523 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
17524 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
17525 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
17526 free(idx_1);
17529 ndr->depth--;
17531 ndr->depth--;
17532 ndr->depth--;
17535 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17538 return NDR_ERR_SUCCESS;
17541 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17543 uint32_t v;
17544 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17545 *r = v;
17546 return NDR_ERR_SUCCESS;
17549 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17551 ndr_print_uint32(ndr, name, r);
17552 ndr->depth++;
17553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
17554 ndr->depth--;
17557 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
17559 uint32_t cntr_types_1;
17560 if (ndr_flags & NDR_SCALARS) {
17561 NDR_CHECK(ndr_push_align(ndr, 4));
17562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17563 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
17564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17565 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
17567 if (ndr_flags & NDR_BUFFERS) {
17568 if (r->types) {
17569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17570 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17571 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17573 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17574 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17578 return NDR_ERR_SUCCESS;
17581 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
17583 uint32_t _ptr_types;
17584 uint32_t cntr_types_1;
17585 TALLOC_CTX *_mem_save_types_0;
17586 TALLOC_CTX *_mem_save_types_1;
17587 if (ndr_flags & NDR_SCALARS) {
17588 NDR_CHECK(ndr_pull_align(ndr, 4));
17589 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17590 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
17591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17592 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
17593 if (_ptr_types) {
17594 NDR_PULL_ALLOC(ndr, r->types);
17595 } else {
17596 r->types = NULL;
17599 if (ndr_flags & NDR_BUFFERS) {
17600 if (r->types) {
17601 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
17602 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17603 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
17604 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
17605 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
17606 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17607 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17608 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17610 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17611 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17613 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
17614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
17616 if (r->types) {
17617 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
17620 return NDR_ERR_SUCCESS;
17623 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
17625 uint32_t cntr_types_1;
17626 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
17627 ndr->depth++;
17628 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17629 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
17630 ndr_print_uint32(ndr, "count", r->count);
17631 ndr_print_ptr(ndr, "types", r->types);
17632 ndr->depth++;
17633 if (r->types) {
17634 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
17635 ndr->depth++;
17636 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
17637 char *idx_1=NULL;
17638 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
17639 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
17640 free(idx_1);
17643 ndr->depth--;
17645 ndr->depth--;
17646 ndr->depth--;
17649 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
17651 if (ndr_flags & NDR_SCALARS) {
17652 NDR_CHECK(ndr_push_align(ndr, 4));
17653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17654 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
17656 if (ndr_flags & NDR_BUFFERS) {
17657 if (r->string) {
17658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
17659 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
17662 return NDR_ERR_SUCCESS;
17665 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
17667 uint32_t _ptr_string;
17668 TALLOC_CTX *_mem_save_string_0;
17669 if (ndr_flags & NDR_SCALARS) {
17670 NDR_CHECK(ndr_pull_align(ndr, 4));
17671 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17672 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
17673 if (_ptr_string) {
17674 NDR_PULL_ALLOC(ndr, r->string);
17675 } else {
17676 r->string = NULL;
17679 if (ndr_flags & NDR_BUFFERS) {
17680 if (r->string) {
17681 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17682 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
17683 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
17684 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
17685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
17687 if (r->string) {
17688 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
17691 return NDR_ERR_SUCCESS;
17694 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
17696 ndr_print_struct(ndr, name, "spoolss_NotifyString");
17697 ndr->depth++;
17698 ndr_print_uint32(ndr, "size", r->size);
17699 ndr_print_ptr(ndr, "string", r->string);
17700 ndr->depth++;
17701 if (r->string) {
17702 ndr_print_string(ndr, "string", r->string);
17704 ndr->depth--;
17705 ndr->depth--;
17708 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
17710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17711 return NDR_ERR_SUCCESS;
17714 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
17716 uint32_t v;
17717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17718 *r = v;
17719 return NDR_ERR_SUCCESS;
17722 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
17724 const char *val = NULL;
17726 switch (r) {
17727 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
17728 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
17729 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
17730 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
17731 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
17733 ndr_print_enum(ndr, name, "ENUM", val, r);
17736 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
17738 if (ndr_flags & NDR_SCALARS) {
17739 int level = ndr_push_get_switch_value(ndr, r);
17740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17741 switch (level) {
17742 case 1: {
17743 uint32_t cntr_integer_0;
17744 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
17747 break; }
17749 case 2: {
17750 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17751 break; }
17753 case 3: {
17754 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17755 break; }
17757 case 4: {
17758 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17759 break; }
17761 case 5: {
17762 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17763 break; }
17765 default:
17766 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17769 if (ndr_flags & NDR_BUFFERS) {
17770 int level = ndr_push_get_switch_value(ndr, r);
17771 switch (level) {
17772 case 1:
17773 break;
17775 case 2:
17776 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17777 break;
17779 case 3:
17780 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17781 break;
17783 case 4:
17784 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17785 break;
17787 case 5:
17788 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17789 break;
17791 default:
17792 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17795 return NDR_ERR_SUCCESS;
17798 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
17800 int level;
17801 uint32_t _level;
17802 level = ndr_pull_get_switch_value(ndr, r);
17803 if (ndr_flags & NDR_SCALARS) {
17804 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17805 if (_level != level) {
17806 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17808 switch (level) {
17809 case 1: {
17810 uint32_t cntr_integer_0;
17811 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
17814 break; }
17816 case 2: {
17817 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17818 break; }
17820 case 3: {
17821 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17822 break; }
17824 case 4: {
17825 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17826 break; }
17828 case 5: {
17829 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17830 break; }
17832 default:
17833 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17836 if (ndr_flags & NDR_BUFFERS) {
17837 switch (level) {
17838 case 1:
17839 break;
17841 case 2:
17842 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17843 break;
17845 case 3:
17846 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17847 break;
17849 case 4:
17850 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17851 break;
17853 case 5:
17854 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17855 break;
17857 default:
17858 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17861 return NDR_ERR_SUCCESS;
17864 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
17866 int level;
17867 uint32_t cntr_integer_0;
17868 level = ndr_print_get_switch_value(ndr, r);
17869 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
17870 switch (level) {
17871 case 1:
17872 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
17873 ndr->depth++;
17874 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
17875 char *idx_0=NULL;
17876 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
17877 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
17878 free(idx_0);
17881 ndr->depth--;
17882 break;
17884 case 2:
17885 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
17886 break;
17888 case 3:
17889 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
17890 break;
17892 case 4:
17893 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
17894 break;
17896 case 5:
17897 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
17898 break;
17900 default:
17901 ndr_print_bad_level(ndr, name, level);
17905 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
17907 if (ndr_flags & NDR_SCALARS) {
17908 NDR_CHECK(ndr_push_align(ndr, 4));
17909 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17910 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
17911 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
17912 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
17913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
17914 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
17915 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17917 if (ndr_flags & NDR_BUFFERS) {
17918 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17920 return NDR_ERR_SUCCESS;
17923 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
17925 if (ndr_flags & NDR_SCALARS) {
17926 NDR_CHECK(ndr_pull_align(ndr, 4));
17927 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17928 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
17929 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
17930 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
17931 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
17932 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
17933 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17935 if (ndr_flags & NDR_BUFFERS) {
17936 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17938 return NDR_ERR_SUCCESS;
17941 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
17943 ndr_print_struct(ndr, name, "spoolss_Notify");
17944 ndr->depth++;
17945 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17946 ndr_print_set_switch_value(ndr, &r->field, r->type);
17947 ndr_print_spoolss_Field(ndr, "field", &r->field);
17948 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
17949 ndr_print_uint32(ndr, "job_id", r->job_id);
17950 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
17951 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
17952 ndr->depth--;
17955 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
17957 uint32_t cntr_notifies_0;
17958 if (ndr_flags & NDR_SCALARS) {
17959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17960 NDR_CHECK(ndr_push_align(ndr, 4));
17961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17964 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17965 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17968 if (ndr_flags & NDR_BUFFERS) {
17969 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17970 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17973 return NDR_ERR_SUCCESS;
17976 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
17978 uint32_t cntr_notifies_0;
17979 TALLOC_CTX *_mem_save_notifies_0;
17980 if (ndr_flags & NDR_SCALARS) {
17981 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
17982 NDR_CHECK(ndr_pull_align(ndr, 4));
17983 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17984 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17985 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17986 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
17987 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17988 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17989 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17990 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17993 if (r->notifies) {
17994 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
17997 if (ndr_flags & NDR_BUFFERS) {
17998 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17999 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18000 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18001 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18005 return NDR_ERR_SUCCESS;
18008 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
18010 uint32_t cntr_notifies_0;
18011 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
18012 ndr->depth++;
18013 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18014 ndr_print_uint32(ndr, "flags", r->flags);
18015 ndr_print_uint32(ndr, "count", r->count);
18016 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
18017 ndr->depth++;
18018 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
18019 char *idx_0=NULL;
18020 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
18021 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
18022 free(idx_0);
18025 ndr->depth--;
18026 ndr->depth--;
18029 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
18031 if (ndr_flags & NDR_SCALARS) {
18032 int level = ndr_push_get_switch_value(ndr, r);
18033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18034 switch (level) {
18035 case 0: {
18036 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
18037 break; }
18039 default:
18040 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18043 if (ndr_flags & NDR_BUFFERS) {
18044 int level = ndr_push_get_switch_value(ndr, r);
18045 switch (level) {
18046 case 0:
18047 if (r->info0) {
18048 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18050 break;
18052 default:
18053 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18056 return NDR_ERR_SUCCESS;
18059 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
18061 int level;
18062 uint32_t _level;
18063 TALLOC_CTX *_mem_save_info0_0;
18064 level = ndr_pull_get_switch_value(ndr, r);
18065 if (ndr_flags & NDR_SCALARS) {
18066 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18067 if (_level != level) {
18068 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
18070 switch (level) {
18071 case 0: {
18072 uint32_t _ptr_info0;
18073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
18074 if (_ptr_info0) {
18075 NDR_PULL_ALLOC(ndr, r->info0);
18076 } else {
18077 r->info0 = NULL;
18079 break; }
18081 default:
18082 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18085 if (ndr_flags & NDR_BUFFERS) {
18086 switch (level) {
18087 case 0:
18088 if (r->info0) {
18089 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
18090 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
18091 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
18094 break;
18096 default:
18097 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18100 return NDR_ERR_SUCCESS;
18103 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
18105 int level;
18106 level = ndr_print_get_switch_value(ndr, r);
18107 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
18108 switch (level) {
18109 case 0:
18110 ndr_print_ptr(ndr, "info0", r->info0);
18111 ndr->depth++;
18112 if (r->info0) {
18113 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
18115 ndr->depth--;
18116 break;
18118 default:
18119 ndr_print_bad_level(ndr, name, level);
18123 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18126 return NDR_ERR_SUCCESS;
18129 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18131 uint32_t v;
18132 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18133 *r = v;
18134 return NDR_ERR_SUCCESS;
18137 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18139 ndr_print_uint32(ndr, name, r);
18140 ndr->depth++;
18141 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
18142 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
18143 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
18144 ndr->depth--;
18147 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
18149 if (ndr_flags & NDR_SCALARS) {
18150 NDR_CHECK(ndr_push_align(ndr, 4));
18151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18152 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18153 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18155 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18156 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18157 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18159 if (ndr_flags & NDR_BUFFERS) {
18160 if (r->client) {
18161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18164 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18166 if (r->user) {
18167 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18170 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18173 return NDR_ERR_SUCCESS;
18176 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
18178 uint32_t _ptr_client;
18179 TALLOC_CTX *_mem_save_client_0;
18180 uint32_t _ptr_user;
18181 TALLOC_CTX *_mem_save_user_0;
18182 if (ndr_flags & NDR_SCALARS) {
18183 NDR_CHECK(ndr_pull_align(ndr, 4));
18184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18186 if (_ptr_client) {
18187 NDR_PULL_ALLOC(ndr, r->client);
18188 } else {
18189 r->client = NULL;
18191 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
18192 if (_ptr_user) {
18193 NDR_PULL_ALLOC(ndr, r->user);
18194 } else {
18195 r->user = NULL;
18197 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
18198 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
18199 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
18200 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
18202 if (ndr_flags & NDR_BUFFERS) {
18203 if (r->client) {
18204 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
18205 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18206 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18207 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18208 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
18209 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));
18211 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
18212 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
18213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18215 if (r->user) {
18216 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
18217 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18218 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18219 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18220 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
18221 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));
18223 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
18224 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
18225 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18228 return NDR_ERR_SUCCESS;
18231 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
18233 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
18234 ndr->depth++;
18235 ndr_print_uint32(ndr, "size", r->size);
18236 ndr_print_ptr(ndr, "client", r->client);
18237 ndr->depth++;
18238 if (r->client) {
18239 ndr_print_string(ndr, "client", r->client);
18241 ndr->depth--;
18242 ndr_print_ptr(ndr, "user", r->user);
18243 ndr->depth++;
18244 if (r->user) {
18245 ndr_print_string(ndr, "user", r->user);
18247 ndr->depth--;
18248 ndr_print_uint32(ndr, "build", r->build);
18249 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
18250 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
18251 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
18252 ndr->depth--;
18255 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
18257 if (ndr_flags & NDR_SCALARS) {
18258 NDR_CHECK(ndr_push_align(ndr, 4));
18259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
18261 if (ndr_flags & NDR_BUFFERS) {
18263 return NDR_ERR_SUCCESS;
18266 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
18268 if (ndr_flags & NDR_SCALARS) {
18269 NDR_CHECK(ndr_pull_align(ndr, 4));
18270 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
18272 if (ndr_flags & NDR_BUFFERS) {
18274 return NDR_ERR_SUCCESS;
18277 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
18279 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
18280 ndr->depth++;
18281 ndr_print_uint32(ndr, "not_used", r->not_used);
18282 ndr->depth--;
18285 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
18287 if (ndr_flags & NDR_SCALARS) {
18288 NDR_CHECK(ndr_push_align(ndr, 4));
18289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
18292 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18293 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18295 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18296 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18297 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18298 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
18300 if (ndr_flags & NDR_BUFFERS) {
18301 if (r->client) {
18302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18305 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18307 if (r->user) {
18308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18311 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18314 return NDR_ERR_SUCCESS;
18317 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
18319 uint32_t _ptr_client;
18320 TALLOC_CTX *_mem_save_client_0;
18321 uint32_t _ptr_user;
18322 TALLOC_CTX *_mem_save_user_0;
18323 if (ndr_flags & NDR_SCALARS) {
18324 NDR_CHECK(ndr_pull_align(ndr, 4));
18325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
18328 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18329 if (_ptr_client) {
18330 NDR_PULL_ALLOC(ndr, r->client);
18331 } else {
18332 r->client = NULL;
18334 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
18335 if (_ptr_user) {
18336 NDR_PULL_ALLOC(ndr, r->user);
18337 } else {
18338 r->user = NULL;
18340 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
18341 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
18342 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
18343 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
18344 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
18346 if (ndr_flags & NDR_BUFFERS) {
18347 if (r->client) {
18348 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
18349 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18350 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18351 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18352 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
18353 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));
18355 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
18356 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
18357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18359 if (r->user) {
18360 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
18361 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18362 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18363 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18364 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
18365 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));
18367 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
18368 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
18369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18372 return NDR_ERR_SUCCESS;
18375 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
18377 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
18378 ndr->depth++;
18379 ndr_print_uint32(ndr, "size", r->size);
18380 ndr_print_uint32(ndr, "flags", r->flags);
18381 ndr_print_uint32(ndr, "size2", r->size2);
18382 ndr_print_ptr(ndr, "client", r->client);
18383 ndr->depth++;
18384 if (r->client) {
18385 ndr_print_string(ndr, "client", r->client);
18387 ndr->depth--;
18388 ndr_print_ptr(ndr, "user", r->user);
18389 ndr->depth++;
18390 if (r->user) {
18391 ndr_print_string(ndr, "user", r->user);
18393 ndr->depth--;
18394 ndr_print_uint32(ndr, "build", r->build);
18395 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
18396 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
18397 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
18398 ndr_print_udlong(ndr, "reserved", r->reserved);
18399 ndr->depth--;
18402 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
18404 if (ndr_flags & NDR_SCALARS) {
18405 int level = ndr_push_get_switch_value(ndr, r);
18406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18407 switch (level) {
18408 case 1: {
18409 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
18410 break; }
18412 case 2: {
18413 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
18414 break; }
18416 case 3: {
18417 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
18418 break; }
18420 default:
18421 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18424 if (ndr_flags & NDR_BUFFERS) {
18425 int level = ndr_push_get_switch_value(ndr, r);
18426 switch (level) {
18427 case 1:
18428 if (r->level1) {
18429 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18431 break;
18433 case 2:
18434 if (r->level2) {
18435 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18437 break;
18439 case 3:
18440 if (r->level3) {
18441 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18443 break;
18445 default:
18446 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18449 return NDR_ERR_SUCCESS;
18452 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
18454 int level;
18455 uint32_t _level;
18456 TALLOC_CTX *_mem_save_level1_0;
18457 TALLOC_CTX *_mem_save_level2_0;
18458 TALLOC_CTX *_mem_save_level3_0;
18459 level = ndr_pull_get_switch_value(ndr, r);
18460 if (ndr_flags & NDR_SCALARS) {
18461 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18462 if (_level != level) {
18463 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
18465 switch (level) {
18466 case 1: {
18467 uint32_t _ptr_level1;
18468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
18469 if (_ptr_level1) {
18470 NDR_PULL_ALLOC(ndr, r->level1);
18471 } else {
18472 r->level1 = NULL;
18474 break; }
18476 case 2: {
18477 uint32_t _ptr_level2;
18478 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
18479 if (_ptr_level2) {
18480 NDR_PULL_ALLOC(ndr, r->level2);
18481 } else {
18482 r->level2 = NULL;
18484 break; }
18486 case 3: {
18487 uint32_t _ptr_level3;
18488 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
18489 if (_ptr_level3) {
18490 NDR_PULL_ALLOC(ndr, r->level3);
18491 } else {
18492 r->level3 = NULL;
18494 break; }
18496 default:
18497 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18500 if (ndr_flags & NDR_BUFFERS) {
18501 switch (level) {
18502 case 1:
18503 if (r->level1) {
18504 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
18505 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
18506 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
18509 break;
18511 case 2:
18512 if (r->level2) {
18513 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
18514 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
18515 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
18518 break;
18520 case 3:
18521 if (r->level3) {
18522 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
18523 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
18524 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
18527 break;
18529 default:
18530 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18533 return NDR_ERR_SUCCESS;
18536 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
18538 int level;
18539 level = ndr_print_get_switch_value(ndr, r);
18540 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
18541 switch (level) {
18542 case 1:
18543 ndr_print_ptr(ndr, "level1", r->level1);
18544 ndr->depth++;
18545 if (r->level1) {
18546 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
18548 ndr->depth--;
18549 break;
18551 case 2:
18552 ndr_print_ptr(ndr, "level2", r->level2);
18553 ndr->depth++;
18554 if (r->level2) {
18555 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
18557 ndr->depth--;
18558 break;
18560 case 3:
18561 ndr_print_ptr(ndr, "level3", r->level3);
18562 ndr->depth++;
18563 if (r->level3) {
18564 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
18566 ndr->depth--;
18567 break;
18569 default:
18570 ndr_print_bad_level(ndr, name, level);
18574 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
18576 if (ndr_flags & NDR_SCALARS) {
18577 NDR_CHECK(ndr_push_align(ndr, 4));
18578 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
18579 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
18580 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18582 if (ndr_flags & NDR_BUFFERS) {
18583 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18585 return NDR_ERR_SUCCESS;
18588 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
18590 if (ndr_flags & NDR_SCALARS) {
18591 NDR_CHECK(ndr_pull_align(ndr, 4));
18592 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
18593 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
18594 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18596 if (ndr_flags & NDR_BUFFERS) {
18597 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18599 return NDR_ERR_SUCCESS;
18602 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
18604 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
18605 ndr->depth++;
18606 ndr_print_uint32(ndr, "level", r->level);
18607 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
18608 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
18609 ndr->depth--;
18612 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18615 return NDR_ERR_SUCCESS;
18618 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18620 uint32_t v;
18621 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18622 *r = v;
18623 return NDR_ERR_SUCCESS;
18626 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
18628 ndr_print_uint32(ndr, name, r);
18629 ndr->depth++;
18630 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
18631 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
18632 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
18633 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
18634 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
18635 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
18636 ndr->depth--;
18639 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
18641 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18642 if (ndr_flags & NDR_SCALARS) {
18643 NDR_CHECK(ndr_push_align(ndr, 4));
18644 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18646 uint32_t _flags_save_string = ndr->flags;
18647 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18648 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
18649 ndr->flags = _flags_save_string;
18651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
18652 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
18653 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
18654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
18656 if (ndr_flags & NDR_BUFFERS) {
18657 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18659 uint32_t _flags_save_string = ndr->flags;
18660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18661 if (r->value_name) {
18662 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->value_name));
18663 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
18664 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->value_name));
18666 ndr->flags = _flags_save_string;
18668 if (r->data) {
18669 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data));
18671 struct ndr_push *_ndr_data;
18672 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
18673 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
18674 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
18675 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
18677 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data));
18680 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18681 return NDR_ERR_SUCCESS;
18684 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
18686 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18687 uint32_t _ptr_value_name;
18688 TALLOC_CTX *_mem_save_value_name_0;
18689 uint32_t _ptr_data;
18690 TALLOC_CTX *_mem_save_data_0;
18691 if (ndr_flags & NDR_SCALARS) {
18692 NDR_CHECK(ndr_pull_align(ndr, 4));
18693 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18695 uint32_t _flags_save_string = ndr->flags;
18696 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18697 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
18698 if (_ptr_value_name) {
18699 NDR_PULL_ALLOC(ndr, r->value_name);
18700 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
18701 } else {
18702 r->value_name = NULL;
18704 ndr->flags = _flags_save_string;
18706 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
18707 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
18708 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
18709 if (_ptr_data) {
18710 NDR_PULL_ALLOC(ndr, r->data);
18711 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
18712 } else {
18713 r->data = NULL;
18715 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
18717 if (ndr_flags & NDR_BUFFERS) {
18718 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18720 uint32_t _flags_save_string = ndr->flags;
18721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18722 if (r->value_name) {
18723 uint32_t _relative_save_offset;
18724 _relative_save_offset = ndr->offset;
18725 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
18726 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18727 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
18728 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
18729 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
18730 ndr->offset = _relative_save_offset;
18732 ndr->flags = _flags_save_string;
18734 if (r->data) {
18735 uint32_t _relative_save_offset;
18736 _relative_save_offset = ndr->offset;
18737 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
18738 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
18739 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
18741 struct ndr_pull *_ndr_data;
18742 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
18743 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
18744 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
18745 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
18747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
18748 ndr->offset = _relative_save_offset;
18751 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18752 return NDR_ERR_SUCCESS;
18755 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
18757 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
18758 ndr->depth++;
18759 ndr_print_ptr(ndr, "value_name", r->value_name);
18760 ndr->depth++;
18761 if (r->value_name) {
18762 ndr_print_string(ndr, "value_name", r->value_name);
18764 ndr->depth--;
18765 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
18766 ndr_print_winreg_Type(ndr, "type", r->type);
18767 ndr_print_ptr(ndr, "data", r->data);
18768 ndr->depth++;
18769 if (r->data) {
18770 ndr_print_set_switch_value(ndr, r->data, r->type);
18771 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
18773 ndr->depth--;
18774 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);
18775 ndr->depth--;
18778 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
18780 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
18783 static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr_flags, const union spoolss_KeyNames *r)
18785 if (ndr_flags & NDR_SCALARS) {
18786 int level = ndr_push_get_switch_value(ndr, r);
18787 switch (level) {
18788 case 0: {
18789 break; }
18791 case 1: {
18792 break; }
18794 default: {
18796 uint32_t _flags_save_string_array = ndr->flags;
18797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18798 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
18799 ndr->flags = _flags_save_string_array;
18801 break; }
18805 if (ndr_flags & NDR_BUFFERS) {
18806 int level = ndr_push_get_switch_value(ndr, r);
18807 switch (level) {
18808 case 0:
18809 break;
18811 case 1:
18812 break;
18814 default:
18815 break;
18819 return NDR_ERR_SUCCESS;
18822 static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr_flags, union spoolss_KeyNames *r)
18824 int level;
18825 level = ndr_pull_get_switch_value(ndr, r);
18826 if (ndr_flags & NDR_SCALARS) {
18827 switch (level) {
18828 case 0: {
18829 break; }
18831 case 1: {
18832 break; }
18834 default: {
18836 uint32_t _flags_save_string_array = ndr->flags;
18837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18838 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
18839 ndr->flags = _flags_save_string_array;
18841 break; }
18845 if (ndr_flags & NDR_BUFFERS) {
18846 switch (level) {
18847 case 0:
18848 break;
18850 case 1:
18851 break;
18853 default:
18854 break;
18858 return NDR_ERR_SUCCESS;
18861 _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
18863 int level;
18864 level = ndr_print_get_switch_value(ndr, r);
18865 ndr_print_union(ndr, name, level, "spoolss_KeyNames");
18866 switch (level) {
18867 case 0:
18868 break;
18870 case 1:
18871 break;
18873 default:
18874 ndr_print_string_array(ndr, "string_array", r->string_array);
18875 break;
18880 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18883 return NDR_ERR_SUCCESS;
18886 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18888 uint32_t v;
18889 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18890 *r = v;
18891 return NDR_ERR_SUCCESS;
18894 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18896 ndr_print_uint32(ndr, name, r);
18897 ndr->depth++;
18898 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
18899 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
18900 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
18901 ndr->depth--;
18904 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
18906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18907 return NDR_ERR_SUCCESS;
18910 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
18912 uint32_t v;
18913 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18914 *r = v;
18915 return NDR_ERR_SUCCESS;
18918 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
18920 const char *val = NULL;
18922 switch (r) {
18923 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
18924 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
18926 ndr_print_enum(ndr, name, "ENUM", val, r);
18929 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
18931 if (ndr_flags & NDR_SCALARS) {
18932 NDR_CHECK(ndr_push_align(ndr, 4));
18933 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
18935 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18937 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18938 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18939 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18940 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18941 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18942 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18943 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18944 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18946 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18947 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18949 if (ndr_flags & NDR_BUFFERS) {
18951 return NDR_ERR_SUCCESS;
18954 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
18956 if (ndr_flags & NDR_SCALARS) {
18957 NDR_CHECK(ndr_pull_align(ndr, 4));
18958 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18959 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18960 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18961 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18962 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18963 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18964 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18965 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18966 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18967 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18968 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18969 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18970 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18971 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18972 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18974 if (ndr_flags & NDR_BUFFERS) {
18976 return NDR_ERR_SUCCESS;
18979 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
18981 ndr_print_struct(ndr, name, "spoolss_PortData1");
18982 ndr->depth++;
18983 ndr_print_string(ndr, "portname", r->portname);
18984 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
18985 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18986 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18987 ndr_print_uint32(ndr, "reserved", r->reserved);
18988 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18989 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18990 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18991 ndr_print_string(ndr, "queue", r->queue);
18992 ndr_print_string(ndr, "ip_address", r->ip_address);
18993 ndr_print_string(ndr, "hardware_address", r->hardware_address);
18994 ndr_print_string(ndr, "device_type", r->device_type);
18995 ndr_print_uint32(ndr, "port_number", r->port_number);
18996 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18997 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18998 ndr->depth--;
19001 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
19003 if (ndr_flags & NDR_SCALARS) {
19004 NDR_CHECK(ndr_push_align(ndr, 4));
19005 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
19007 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19008 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19009 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19010 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19011 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19013 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19014 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
19020 if (ndr_flags & NDR_BUFFERS) {
19022 return NDR_ERR_SUCCESS;
19025 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
19027 if (ndr_flags & NDR_SCALARS) {
19028 NDR_CHECK(ndr_pull_align(ndr, 4));
19029 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19030 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19031 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19033 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19034 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19035 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19036 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19037 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19038 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19039 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19040 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19041 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19042 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
19044 if (ndr_flags & NDR_BUFFERS) {
19046 return NDR_ERR_SUCCESS;
19049 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
19051 ndr_print_struct(ndr, name, "spoolss_PortData2");
19052 ndr->depth++;
19053 ndr_print_string(ndr, "portname", r->portname);
19054 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
19055 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19056 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19057 ndr_print_uint32(ndr, "reserved", r->reserved);
19058 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19059 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19060 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19061 ndr_print_string(ndr, "queue", r->queue);
19062 ndr_print_string(ndr, "device_type", r->device_type);
19063 ndr_print_uint32(ndr, "port_number", r->port_number);
19064 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19065 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19066 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
19067 ndr->depth--;
19070 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
19072 if (ndr_flags & NDR_SCALARS) {
19073 NDR_CHECK(ndr_push_align(ndr, 4));
19075 uint32_t _flags_save_string = ndr->flags;
19076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19077 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
19078 ndr->flags = _flags_save_string;
19081 if (ndr_flags & NDR_BUFFERS) {
19083 return NDR_ERR_SUCCESS;
19086 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
19088 if (ndr_flags & NDR_SCALARS) {
19089 NDR_CHECK(ndr_pull_align(ndr, 4));
19091 uint32_t _flags_save_string = ndr->flags;
19092 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19093 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
19094 ndr->flags = _flags_save_string;
19097 if (ndr_flags & NDR_BUFFERS) {
19099 return NDR_ERR_SUCCESS;
19102 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
19104 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
19105 ndr->depth++;
19106 ndr_print_string(ndr, "dll_name", r->dll_name);
19107 ndr->depth--;
19110 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19113 return NDR_ERR_SUCCESS;
19116 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19118 uint32_t v;
19119 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19120 *r = v;
19121 return NDR_ERR_SUCCESS;
19124 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19126 ndr_print_uint32(ndr, name, r);
19127 ndr->depth++;
19128 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
19129 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
19130 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
19131 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
19132 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
19133 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
19134 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
19135 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
19136 ndr->depth--;
19139 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
19141 if (flags & NDR_IN) {
19142 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
19143 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19144 if (r->in.server) {
19145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19148 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19151 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19152 if (r->in.buffer) {
19153 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19155 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19157 if (flags & NDR_OUT) {
19158 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19159 if (r->out.info) {
19160 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19162 if (r->out.needed == NULL) {
19163 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19165 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19166 if (r->out.count == NULL) {
19167 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19170 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19172 return NDR_ERR_SUCCESS;
19175 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
19177 uint32_t _ptr_server;
19178 uint32_t _ptr_buffer;
19179 uint32_t _ptr_info;
19180 TALLOC_CTX *_mem_save_server_0;
19181 TALLOC_CTX *_mem_save_buffer_0;
19182 TALLOC_CTX *_mem_save_info_0;
19183 TALLOC_CTX *_mem_save_needed_0;
19184 TALLOC_CTX *_mem_save_count_0;
19185 if (flags & NDR_IN) {
19186 ZERO_STRUCT(r->out);
19188 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
19189 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19190 if (_ptr_server) {
19191 NDR_PULL_ALLOC(ndr, r->in.server);
19192 } else {
19193 r->in.server = NULL;
19195 if (r->in.server) {
19196 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19197 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19198 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19199 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19200 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19201 return 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));
19203 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19204 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19207 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19208 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19209 if (_ptr_buffer) {
19210 NDR_PULL_ALLOC(ndr, r->in.buffer);
19211 } else {
19212 r->in.buffer = NULL;
19214 if (r->in.buffer) {
19215 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19216 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19217 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19218 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19221 NDR_PULL_ALLOC(ndr, r->out.needed);
19222 ZERO_STRUCTP(r->out.needed);
19223 NDR_PULL_ALLOC(ndr, r->out.count);
19224 ZERO_STRUCTP(r->out.count);
19226 if (flags & NDR_OUT) {
19227 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19228 if (_ptr_info) {
19229 NDR_PULL_ALLOC(ndr, r->out.info);
19230 } else {
19231 r->out.info = NULL;
19233 if (r->out.info) {
19234 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19235 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19236 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19239 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19240 NDR_PULL_ALLOC(ndr, r->out.needed);
19242 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19243 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19244 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19245 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19246 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19247 NDR_PULL_ALLOC(ndr, r->out.count);
19249 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19250 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19251 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19253 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19255 return NDR_ERR_SUCCESS;
19258 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
19260 uint32_t cntr_info_0;
19261 if (flags & NDR_IN) {
19262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19265 if (flags & NDR_OUT) {
19266 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19267 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19268 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19270 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19271 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19274 return NDR_ERR_SUCCESS;
19277 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
19279 uint32_t cntr_info_0;
19280 TALLOC_CTX *_mem_save_info_0;
19281 if (flags & NDR_IN) {
19282 ZERO_STRUCT(r->out);
19284 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19285 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19287 if (flags & NDR_OUT) {
19288 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19289 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19290 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19291 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19292 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19293 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19295 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19296 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19298 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19300 return NDR_ERR_SUCCESS;
19303 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
19305 uint32_t cntr_info_2;
19306 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
19307 ndr->depth++;
19308 if (flags & NDR_SET_VALUES) {
19309 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19311 if (flags & NDR_IN) {
19312 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
19313 ndr->depth++;
19314 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
19315 ndr_print_ptr(ndr, "server", r->in.server);
19316 ndr->depth++;
19317 if (r->in.server) {
19318 ndr_print_string(ndr, "server", r->in.server);
19320 ndr->depth--;
19321 ndr_print_uint32(ndr, "level", r->in.level);
19322 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19323 ndr->depth++;
19324 if (r->in.buffer) {
19325 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19327 ndr->depth--;
19328 ndr_print_uint32(ndr, "offered", r->in.offered);
19329 ndr->depth--;
19331 if (flags & NDR_OUT) {
19332 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
19333 ndr->depth++;
19334 ndr_print_ptr(ndr, "count", r->out.count);
19335 ndr->depth++;
19336 ndr_print_uint32(ndr, "count", *r->out.count);
19337 ndr->depth--;
19338 ndr_print_ptr(ndr, "info", r->out.info);
19339 ndr->depth++;
19340 ndr_print_ptr(ndr, "info", *r->out.info);
19341 ndr->depth++;
19342 if (*r->out.info) {
19343 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19344 ndr->depth++;
19345 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19346 char *idx_2=NULL;
19347 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19348 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19349 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19350 free(idx_2);
19353 ndr->depth--;
19355 ndr->depth--;
19356 ndr->depth--;
19357 ndr_print_ptr(ndr, "needed", r->out.needed);
19358 ndr->depth++;
19359 ndr_print_uint32(ndr, "needed", *r->out.needed);
19360 ndr->depth--;
19361 ndr_print_WERROR(ndr, "result", r->out.result);
19362 ndr->depth--;
19364 ndr->depth--;
19367 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
19369 if (flags & NDR_IN) {
19370 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
19371 if (r->in.printername) {
19372 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
19373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
19375 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19377 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
19378 if (r->in.datatype) {
19379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
19380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
19382 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19384 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
19385 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
19387 if (flags & NDR_OUT) {
19388 if (r->out.handle == NULL) {
19389 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19391 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19392 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19394 return NDR_ERR_SUCCESS;
19397 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
19399 uint32_t _ptr_printername;
19400 uint32_t _ptr_datatype;
19401 TALLOC_CTX *_mem_save_printername_0;
19402 TALLOC_CTX *_mem_save_datatype_0;
19403 TALLOC_CTX *_mem_save_handle_0;
19404 if (flags & NDR_IN) {
19405 ZERO_STRUCT(r->out);
19407 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
19408 if (_ptr_printername) {
19409 NDR_PULL_ALLOC(ndr, r->in.printername);
19410 } else {
19411 r->in.printername = NULL;
19413 if (r->in.printername) {
19414 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19415 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
19416 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
19417 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
19418 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
19419 return 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));
19421 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
19422 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
19423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
19425 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
19426 if (_ptr_datatype) {
19427 NDR_PULL_ALLOC(ndr, r->in.datatype);
19428 } else {
19429 r->in.datatype = NULL;
19431 if (r->in.datatype) {
19432 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
19433 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
19434 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
19435 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
19436 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
19437 return 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));
19439 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
19440 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
19441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
19443 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
19444 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
19445 NDR_PULL_ALLOC(ndr, r->out.handle);
19446 ZERO_STRUCTP(r->out.handle);
19448 if (flags & NDR_OUT) {
19449 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19450 NDR_PULL_ALLOC(ndr, r->out.handle);
19452 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19453 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
19454 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19456 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19458 return NDR_ERR_SUCCESS;
19461 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
19463 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
19464 ndr->depth++;
19465 if (flags & NDR_SET_VALUES) {
19466 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19468 if (flags & NDR_IN) {
19469 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
19470 ndr->depth++;
19471 ndr_print_ptr(ndr, "printername", r->in.printername);
19472 ndr->depth++;
19473 if (r->in.printername) {
19474 ndr_print_string(ndr, "printername", r->in.printername);
19476 ndr->depth--;
19477 ndr_print_ptr(ndr, "datatype", r->in.datatype);
19478 ndr->depth++;
19479 if (r->in.datatype) {
19480 ndr_print_string(ndr, "datatype", r->in.datatype);
19482 ndr->depth--;
19483 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
19484 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
19485 ndr->depth--;
19487 if (flags & NDR_OUT) {
19488 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
19489 ndr->depth++;
19490 ndr_print_ptr(ndr, "handle", r->out.handle);
19491 ndr->depth++;
19492 ndr_print_policy_handle(ndr, "handle", r->out.handle);
19493 ndr->depth--;
19494 ndr_print_WERROR(ndr, "result", r->out.result);
19495 ndr->depth--;
19497 ndr->depth--;
19500 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
19502 if (flags & NDR_IN) {
19503 if (r->in.handle == NULL) {
19504 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19506 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19507 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
19508 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
19509 if (r->in.ctr) {
19510 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
19512 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
19514 if (flags & NDR_OUT) {
19515 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19517 return NDR_ERR_SUCCESS;
19520 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
19522 uint32_t _ptr_ctr;
19523 TALLOC_CTX *_mem_save_handle_0;
19524 TALLOC_CTX *_mem_save_ctr_0;
19525 if (flags & NDR_IN) {
19526 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19527 NDR_PULL_ALLOC(ndr, r->in.handle);
19529 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19530 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19531 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19532 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
19534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
19535 if (_ptr_ctr) {
19536 NDR_PULL_ALLOC(ndr, r->in.ctr);
19537 } else {
19538 r->in.ctr = NULL;
19540 if (r->in.ctr) {
19541 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19542 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
19543 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
19544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
19546 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
19548 if (flags & NDR_OUT) {
19549 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19551 return NDR_ERR_SUCCESS;
19554 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
19556 ndr_print_struct(ndr, name, "spoolss_SetJob");
19557 ndr->depth++;
19558 if (flags & NDR_SET_VALUES) {
19559 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19561 if (flags & NDR_IN) {
19562 ndr_print_struct(ndr, "in", "spoolss_SetJob");
19563 ndr->depth++;
19564 ndr_print_ptr(ndr, "handle", r->in.handle);
19565 ndr->depth++;
19566 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19567 ndr->depth--;
19568 ndr_print_uint32(ndr, "job_id", r->in.job_id);
19569 ndr_print_ptr(ndr, "ctr", r->in.ctr);
19570 ndr->depth++;
19571 if (r->in.ctr) {
19572 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
19574 ndr->depth--;
19575 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
19576 ndr->depth--;
19578 if (flags & NDR_OUT) {
19579 ndr_print_struct(ndr, "out", "spoolss_SetJob");
19580 ndr->depth++;
19581 ndr_print_WERROR(ndr, "result", r->out.result);
19582 ndr->depth--;
19584 ndr->depth--;
19587 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
19589 if (flags & NDR_IN) {
19590 if (r->in.handle == NULL) {
19591 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19593 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
19595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19596 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19597 if (r->in.buffer) {
19598 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19602 if (flags & NDR_OUT) {
19603 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19604 if (r->out.info) {
19606 struct ndr_push *_ndr_info;
19607 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19608 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19609 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19610 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19613 if (r->out.needed == NULL) {
19614 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19617 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19619 return NDR_ERR_SUCCESS;
19622 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
19624 uint32_t _ptr_buffer;
19625 uint32_t _ptr_info;
19626 TALLOC_CTX *_mem_save_handle_0;
19627 TALLOC_CTX *_mem_save_buffer_0;
19628 TALLOC_CTX *_mem_save_info_0;
19629 TALLOC_CTX *_mem_save_needed_0;
19630 if (flags & NDR_IN) {
19631 ZERO_STRUCT(r->out);
19633 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19634 NDR_PULL_ALLOC(ndr, r->in.handle);
19636 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19637 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19638 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19639 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19640 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
19641 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19642 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19643 if (_ptr_buffer) {
19644 NDR_PULL_ALLOC(ndr, r->in.buffer);
19645 } else {
19646 r->in.buffer = NULL;
19648 if (r->in.buffer) {
19649 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19650 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19651 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19654 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19655 NDR_PULL_ALLOC(ndr, r->out.needed);
19656 ZERO_STRUCTP(r->out.needed);
19658 if (flags & NDR_OUT) {
19659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19660 if (_ptr_info) {
19661 NDR_PULL_ALLOC(ndr, r->out.info);
19662 } else {
19663 r->out.info = NULL;
19665 if (r->out.info) {
19666 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19667 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19669 struct ndr_pull *_ndr_info;
19670 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19671 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19672 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19673 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19675 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19677 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19678 NDR_PULL_ALLOC(ndr, r->out.needed);
19680 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19681 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19682 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19684 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19686 return NDR_ERR_SUCCESS;
19689 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
19691 ndr_print_struct(ndr, name, "spoolss_GetJob");
19692 ndr->depth++;
19693 if (flags & NDR_SET_VALUES) {
19694 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19696 if (flags & NDR_IN) {
19697 ndr_print_struct(ndr, "in", "spoolss_GetJob");
19698 ndr->depth++;
19699 ndr_print_ptr(ndr, "handle", r->in.handle);
19700 ndr->depth++;
19701 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19702 ndr->depth--;
19703 ndr_print_uint32(ndr, "job_id", r->in.job_id);
19704 ndr_print_uint32(ndr, "level", r->in.level);
19705 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19706 ndr->depth++;
19707 if (r->in.buffer) {
19708 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19710 ndr->depth--;
19711 ndr_print_uint32(ndr, "offered", r->in.offered);
19712 ndr->depth--;
19714 if (flags & NDR_OUT) {
19715 ndr_print_struct(ndr, "out", "spoolss_GetJob");
19716 ndr->depth++;
19717 ndr_print_ptr(ndr, "info", r->out.info);
19718 ndr->depth++;
19719 if (r->out.info) {
19720 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19721 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
19723 ndr->depth--;
19724 ndr_print_ptr(ndr, "needed", r->out.needed);
19725 ndr->depth++;
19726 ndr_print_uint32(ndr, "needed", *r->out.needed);
19727 ndr->depth--;
19728 ndr_print_WERROR(ndr, "result", r->out.result);
19729 ndr->depth--;
19731 ndr->depth--;
19734 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
19736 if (flags & NDR_IN) {
19737 if (r->in.handle == NULL) {
19738 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19740 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
19742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
19743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19744 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19745 if (r->in.buffer) {
19746 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19750 if (flags & NDR_OUT) {
19751 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19752 if (r->out.info) {
19753 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19755 if (r->out.needed == NULL) {
19756 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19759 if (r->out.count == NULL) {
19760 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19763 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19765 return NDR_ERR_SUCCESS;
19768 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
19770 uint32_t _ptr_buffer;
19771 uint32_t _ptr_info;
19772 TALLOC_CTX *_mem_save_handle_0;
19773 TALLOC_CTX *_mem_save_buffer_0;
19774 TALLOC_CTX *_mem_save_info_0;
19775 TALLOC_CTX *_mem_save_needed_0;
19776 TALLOC_CTX *_mem_save_count_0;
19777 if (flags & NDR_IN) {
19778 ZERO_STRUCT(r->out);
19780 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19781 NDR_PULL_ALLOC(ndr, r->in.handle);
19783 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19784 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19785 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19787 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
19788 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
19789 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19791 if (_ptr_buffer) {
19792 NDR_PULL_ALLOC(ndr, r->in.buffer);
19793 } else {
19794 r->in.buffer = NULL;
19796 if (r->in.buffer) {
19797 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19798 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19799 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19800 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19802 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19803 NDR_PULL_ALLOC(ndr, r->out.needed);
19804 ZERO_STRUCTP(r->out.needed);
19805 NDR_PULL_ALLOC(ndr, r->out.count);
19806 ZERO_STRUCTP(r->out.count);
19808 if (flags & NDR_OUT) {
19809 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19810 if (_ptr_info) {
19811 NDR_PULL_ALLOC(ndr, r->out.info);
19812 } else {
19813 r->out.info = NULL;
19815 if (r->out.info) {
19816 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19817 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19818 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19819 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19821 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19822 NDR_PULL_ALLOC(ndr, r->out.needed);
19824 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19825 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19828 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19829 NDR_PULL_ALLOC(ndr, r->out.count);
19831 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19832 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19833 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19835 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19837 return NDR_ERR_SUCCESS;
19840 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
19842 uint32_t cntr_info_0;
19843 if (flags & NDR_IN) {
19844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19847 if (flags & NDR_OUT) {
19848 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19849 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19850 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19852 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19853 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19856 return NDR_ERR_SUCCESS;
19859 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
19861 uint32_t cntr_info_0;
19862 TALLOC_CTX *_mem_save_info_0;
19863 if (flags & NDR_IN) {
19864 ZERO_STRUCT(r->out);
19866 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19867 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19869 if (flags & NDR_OUT) {
19870 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19871 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19872 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19873 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19874 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19875 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19877 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19878 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19882 return NDR_ERR_SUCCESS;
19885 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
19887 uint32_t cntr_info_2;
19888 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
19889 ndr->depth++;
19890 if (flags & NDR_SET_VALUES) {
19891 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19893 if (flags & NDR_IN) {
19894 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
19895 ndr->depth++;
19896 ndr_print_ptr(ndr, "handle", r->in.handle);
19897 ndr->depth++;
19898 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19899 ndr->depth--;
19900 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
19901 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
19902 ndr_print_uint32(ndr, "level", r->in.level);
19903 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19904 ndr->depth++;
19905 if (r->in.buffer) {
19906 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19908 ndr->depth--;
19909 ndr_print_uint32(ndr, "offered", r->in.offered);
19910 ndr->depth--;
19912 if (flags & NDR_OUT) {
19913 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
19914 ndr->depth++;
19915 ndr_print_ptr(ndr, "count", r->out.count);
19916 ndr->depth++;
19917 ndr_print_uint32(ndr, "count", *r->out.count);
19918 ndr->depth--;
19919 ndr_print_ptr(ndr, "info", r->out.info);
19920 ndr->depth++;
19921 ndr_print_ptr(ndr, "info", *r->out.info);
19922 ndr->depth++;
19923 if (*r->out.info) {
19924 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19925 ndr->depth++;
19926 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19927 char *idx_2=NULL;
19928 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19929 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19930 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19931 free(idx_2);
19934 ndr->depth--;
19936 ndr->depth--;
19937 ndr->depth--;
19938 ndr_print_ptr(ndr, "needed", r->out.needed);
19939 ndr->depth++;
19940 ndr_print_uint32(ndr, "needed", *r->out.needed);
19941 ndr->depth--;
19942 ndr_print_WERROR(ndr, "result", r->out.result);
19943 ndr->depth--;
19945 ndr->depth--;
19948 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
19950 if (flags & NDR_IN) {
19952 if (flags & NDR_OUT) {
19953 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19955 return NDR_ERR_SUCCESS;
19958 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
19960 if (flags & NDR_IN) {
19962 if (flags & NDR_OUT) {
19963 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19965 return NDR_ERR_SUCCESS;
19968 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
19970 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
19971 ndr->depth++;
19972 if (flags & NDR_SET_VALUES) {
19973 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19975 if (flags & NDR_IN) {
19976 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
19977 ndr->depth++;
19978 ndr->depth--;
19980 if (flags & NDR_OUT) {
19981 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
19982 ndr->depth++;
19983 ndr_print_WERROR(ndr, "result", r->out.result);
19984 ndr->depth--;
19986 ndr->depth--;
19989 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
19991 if (flags & NDR_IN) {
19992 if (r->in.handle == NULL) {
19993 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19995 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19997 if (flags & NDR_OUT) {
19998 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20000 return NDR_ERR_SUCCESS;
20003 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
20005 TALLOC_CTX *_mem_save_handle_0;
20006 if (flags & NDR_IN) {
20007 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20008 NDR_PULL_ALLOC(ndr, r->in.handle);
20010 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20011 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20012 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20015 if (flags & NDR_OUT) {
20016 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20018 return NDR_ERR_SUCCESS;
20021 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
20023 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
20024 ndr->depth++;
20025 if (flags & NDR_SET_VALUES) {
20026 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20028 if (flags & NDR_IN) {
20029 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
20030 ndr->depth++;
20031 ndr_print_ptr(ndr, "handle", r->in.handle);
20032 ndr->depth++;
20033 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20034 ndr->depth--;
20035 ndr->depth--;
20037 if (flags & NDR_OUT) {
20038 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
20039 ndr->depth++;
20040 ndr_print_WERROR(ndr, "result", r->out.result);
20041 ndr->depth--;
20043 ndr->depth--;
20046 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
20048 if (flags & NDR_IN) {
20049 if (r->in.handle == NULL) {
20050 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20052 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20053 if (r->in.info_ctr == NULL) {
20054 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20056 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20057 if (r->in.devmode_ctr == NULL) {
20058 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20060 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20061 if (r->in.secdesc_ctr == NULL) {
20062 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20064 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20065 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
20067 if (flags & NDR_OUT) {
20068 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20070 return NDR_ERR_SUCCESS;
20073 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
20075 TALLOC_CTX *_mem_save_handle_0;
20076 TALLOC_CTX *_mem_save_info_ctr_0;
20077 TALLOC_CTX *_mem_save_devmode_ctr_0;
20078 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20079 if (flags & NDR_IN) {
20080 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20081 NDR_PULL_ALLOC(ndr, r->in.handle);
20083 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20084 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20085 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20087 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20088 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20090 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20091 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20092 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20094 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20095 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20097 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20098 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20099 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20100 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20101 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20102 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20104 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20105 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20106 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20108 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
20110 if (flags & NDR_OUT) {
20111 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20113 return NDR_ERR_SUCCESS;
20116 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
20118 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
20119 ndr->depth++;
20120 if (flags & NDR_SET_VALUES) {
20121 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20123 if (flags & NDR_IN) {
20124 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
20125 ndr->depth++;
20126 ndr_print_ptr(ndr, "handle", r->in.handle);
20127 ndr->depth++;
20128 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20129 ndr->depth--;
20130 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20131 ndr->depth++;
20132 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20133 ndr->depth--;
20134 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20135 ndr->depth++;
20136 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20137 ndr->depth--;
20138 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20139 ndr->depth++;
20140 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20141 ndr->depth--;
20142 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
20143 ndr->depth--;
20145 if (flags & NDR_OUT) {
20146 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
20147 ndr->depth++;
20148 ndr_print_WERROR(ndr, "result", r->out.result);
20149 ndr->depth--;
20151 ndr->depth--;
20154 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
20156 if (flags & NDR_IN) {
20157 if (r->in.handle == NULL) {
20158 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20160 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20162 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20163 if (r->in.buffer) {
20164 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20168 if (flags & NDR_OUT) {
20169 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20170 if (r->out.info) {
20172 struct ndr_push *_ndr_info;
20173 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20174 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20175 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20176 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20179 if (r->out.needed == NULL) {
20180 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20182 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20183 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20185 return NDR_ERR_SUCCESS;
20188 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
20190 uint32_t _ptr_buffer;
20191 uint32_t _ptr_info;
20192 TALLOC_CTX *_mem_save_handle_0;
20193 TALLOC_CTX *_mem_save_buffer_0;
20194 TALLOC_CTX *_mem_save_info_0;
20195 TALLOC_CTX *_mem_save_needed_0;
20196 if (flags & NDR_IN) {
20197 ZERO_STRUCT(r->out);
20199 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20200 NDR_PULL_ALLOC(ndr, r->in.handle);
20202 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20203 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20204 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20207 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20208 if (_ptr_buffer) {
20209 NDR_PULL_ALLOC(ndr, r->in.buffer);
20210 } else {
20211 r->in.buffer = NULL;
20213 if (r->in.buffer) {
20214 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20215 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20216 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20219 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20220 NDR_PULL_ALLOC(ndr, r->out.needed);
20221 ZERO_STRUCTP(r->out.needed);
20223 if (flags & NDR_OUT) {
20224 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20225 if (_ptr_info) {
20226 NDR_PULL_ALLOC(ndr, r->out.info);
20227 } else {
20228 r->out.info = NULL;
20230 if (r->out.info) {
20231 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20232 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20234 struct ndr_pull *_ndr_info;
20235 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20236 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20237 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20238 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20240 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20242 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20243 NDR_PULL_ALLOC(ndr, r->out.needed);
20245 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20246 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20247 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20248 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20249 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20251 return NDR_ERR_SUCCESS;
20254 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
20256 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
20257 ndr->depth++;
20258 if (flags & NDR_SET_VALUES) {
20259 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20261 if (flags & NDR_IN) {
20262 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
20263 ndr->depth++;
20264 ndr_print_ptr(ndr, "handle", r->in.handle);
20265 ndr->depth++;
20266 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20267 ndr->depth--;
20268 ndr_print_uint32(ndr, "level", r->in.level);
20269 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20270 ndr->depth++;
20271 if (r->in.buffer) {
20272 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20274 ndr->depth--;
20275 ndr_print_uint32(ndr, "offered", r->in.offered);
20276 ndr->depth--;
20278 if (flags & NDR_OUT) {
20279 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
20280 ndr->depth++;
20281 ndr_print_ptr(ndr, "info", r->out.info);
20282 ndr->depth++;
20283 if (r->out.info) {
20284 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20285 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
20287 ndr->depth--;
20288 ndr_print_ptr(ndr, "needed", r->out.needed);
20289 ndr->depth++;
20290 ndr_print_uint32(ndr, "needed", *r->out.needed);
20291 ndr->depth--;
20292 ndr_print_WERROR(ndr, "result", r->out.result);
20293 ndr->depth--;
20295 ndr->depth--;
20298 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
20300 if (flags & NDR_IN) {
20301 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
20302 if (r->in.servername) {
20303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20306 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20308 if (r->in.info_ctr == NULL) {
20309 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20311 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20313 if (flags & NDR_OUT) {
20314 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20316 return NDR_ERR_SUCCESS;
20319 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
20321 uint32_t _ptr_servername;
20322 TALLOC_CTX *_mem_save_servername_0;
20323 TALLOC_CTX *_mem_save_info_ctr_0;
20324 if (flags & NDR_IN) {
20325 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
20326 if (_ptr_servername) {
20327 NDR_PULL_ALLOC(ndr, r->in.servername);
20328 } else {
20329 r->in.servername = NULL;
20331 if (r->in.servername) {
20332 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20333 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
20334 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20335 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20336 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
20337 return 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));
20339 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
20340 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
20341 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
20343 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20344 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20346 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20347 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20348 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20349 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20351 if (flags & NDR_OUT) {
20352 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20354 return NDR_ERR_SUCCESS;
20357 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
20359 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
20360 ndr->depth++;
20361 if (flags & NDR_SET_VALUES) {
20362 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20364 if (flags & NDR_IN) {
20365 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
20366 ndr->depth++;
20367 ndr_print_ptr(ndr, "servername", r->in.servername);
20368 ndr->depth++;
20369 if (r->in.servername) {
20370 ndr_print_string(ndr, "servername", r->in.servername);
20372 ndr->depth--;
20373 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20374 ndr->depth++;
20375 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20376 ndr->depth--;
20377 ndr->depth--;
20379 if (flags & NDR_OUT) {
20380 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
20381 ndr->depth++;
20382 ndr_print_WERROR(ndr, "result", r->out.result);
20383 ndr->depth--;
20385 ndr->depth--;
20388 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
20390 if (flags & NDR_IN) {
20391 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20392 if (r->in.server) {
20393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20396 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20398 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20399 if (r->in.environment) {
20400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20403 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20406 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20407 if (r->in.buffer) {
20408 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20412 if (flags & NDR_OUT) {
20413 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20414 if (r->out.info) {
20415 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20417 if (r->out.needed == NULL) {
20418 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20421 if (r->out.count == NULL) {
20422 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20425 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20427 return NDR_ERR_SUCCESS;
20430 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
20432 uint32_t _ptr_server;
20433 uint32_t _ptr_environment;
20434 uint32_t _ptr_buffer;
20435 uint32_t _ptr_info;
20436 TALLOC_CTX *_mem_save_server_0;
20437 TALLOC_CTX *_mem_save_environment_0;
20438 TALLOC_CTX *_mem_save_buffer_0;
20439 TALLOC_CTX *_mem_save_info_0;
20440 TALLOC_CTX *_mem_save_needed_0;
20441 TALLOC_CTX *_mem_save_count_0;
20442 if (flags & NDR_IN) {
20443 ZERO_STRUCT(r->out);
20445 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20446 if (_ptr_server) {
20447 NDR_PULL_ALLOC(ndr, r->in.server);
20448 } else {
20449 r->in.server = NULL;
20451 if (r->in.server) {
20452 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20453 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20454 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20455 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20456 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20457 return 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));
20459 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20460 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20463 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20464 if (_ptr_environment) {
20465 NDR_PULL_ALLOC(ndr, r->in.environment);
20466 } else {
20467 r->in.environment = NULL;
20469 if (r->in.environment) {
20470 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20471 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20472 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20473 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20474 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20475 return 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));
20477 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20478 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20479 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20481 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20482 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20483 if (_ptr_buffer) {
20484 NDR_PULL_ALLOC(ndr, r->in.buffer);
20485 } else {
20486 r->in.buffer = NULL;
20488 if (r->in.buffer) {
20489 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20490 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20491 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20494 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20495 NDR_PULL_ALLOC(ndr, r->out.needed);
20496 ZERO_STRUCTP(r->out.needed);
20497 NDR_PULL_ALLOC(ndr, r->out.count);
20498 ZERO_STRUCTP(r->out.count);
20500 if (flags & NDR_OUT) {
20501 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20502 if (_ptr_info) {
20503 NDR_PULL_ALLOC(ndr, r->out.info);
20504 } else {
20505 r->out.info = NULL;
20507 if (r->out.info) {
20508 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20509 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20510 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20513 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20514 NDR_PULL_ALLOC(ndr, r->out.needed);
20516 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20517 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20518 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20520 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20521 NDR_PULL_ALLOC(ndr, r->out.count);
20523 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20524 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20525 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20527 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20529 return NDR_ERR_SUCCESS;
20532 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
20534 uint32_t cntr_info_0;
20535 if (flags & NDR_IN) {
20536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20539 if (flags & NDR_OUT) {
20540 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20541 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20542 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20544 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20545 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20548 return NDR_ERR_SUCCESS;
20551 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
20553 uint32_t cntr_info_0;
20554 TALLOC_CTX *_mem_save_info_0;
20555 if (flags & NDR_IN) {
20556 ZERO_STRUCT(r->out);
20558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20559 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20561 if (flags & NDR_OUT) {
20562 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20563 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20564 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20565 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20566 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20567 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20569 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20570 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20572 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20574 return NDR_ERR_SUCCESS;
20577 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
20579 uint32_t cntr_info_2;
20580 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
20581 ndr->depth++;
20582 if (flags & NDR_SET_VALUES) {
20583 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20585 if (flags & NDR_IN) {
20586 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
20587 ndr->depth++;
20588 ndr_print_ptr(ndr, "server", r->in.server);
20589 ndr->depth++;
20590 if (r->in.server) {
20591 ndr_print_string(ndr, "server", r->in.server);
20593 ndr->depth--;
20594 ndr_print_ptr(ndr, "environment", r->in.environment);
20595 ndr->depth++;
20596 if (r->in.environment) {
20597 ndr_print_string(ndr, "environment", r->in.environment);
20599 ndr->depth--;
20600 ndr_print_uint32(ndr, "level", r->in.level);
20601 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20602 ndr->depth++;
20603 if (r->in.buffer) {
20604 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20606 ndr->depth--;
20607 ndr_print_uint32(ndr, "offered", r->in.offered);
20608 ndr->depth--;
20610 if (flags & NDR_OUT) {
20611 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
20612 ndr->depth++;
20613 ndr_print_ptr(ndr, "count", r->out.count);
20614 ndr->depth++;
20615 ndr_print_uint32(ndr, "count", *r->out.count);
20616 ndr->depth--;
20617 ndr_print_ptr(ndr, "info", r->out.info);
20618 ndr->depth++;
20619 ndr_print_ptr(ndr, "info", *r->out.info);
20620 ndr->depth++;
20621 if (*r->out.info) {
20622 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20623 ndr->depth++;
20624 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20625 char *idx_2=NULL;
20626 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20627 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20628 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20629 free(idx_2);
20632 ndr->depth--;
20634 ndr->depth--;
20635 ndr->depth--;
20636 ndr_print_ptr(ndr, "needed", r->out.needed);
20637 ndr->depth++;
20638 ndr_print_uint32(ndr, "needed", *r->out.needed);
20639 ndr->depth--;
20640 ndr_print_WERROR(ndr, "result", r->out.result);
20641 ndr->depth--;
20643 ndr->depth--;
20646 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
20648 if (flags & NDR_IN) {
20650 if (flags & NDR_OUT) {
20651 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20653 return NDR_ERR_SUCCESS;
20656 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
20658 if (flags & NDR_IN) {
20660 if (flags & NDR_OUT) {
20661 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20663 return NDR_ERR_SUCCESS;
20666 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
20668 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
20669 ndr->depth++;
20670 if (flags & NDR_SET_VALUES) {
20671 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20673 if (flags & NDR_IN) {
20674 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
20675 ndr->depth++;
20676 ndr->depth--;
20678 if (flags & NDR_OUT) {
20679 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
20680 ndr->depth++;
20681 ndr_print_WERROR(ndr, "result", r->out.result);
20682 ndr->depth--;
20684 ndr->depth--;
20687 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
20689 if (flags & NDR_IN) {
20690 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20691 if (r->in.server) {
20692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20695 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20697 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20698 if (r->in.environment) {
20699 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20702 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20705 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20706 if (r->in.buffer) {
20707 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20711 if (flags & NDR_OUT) {
20712 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20713 if (r->out.info) {
20715 struct ndr_push *_ndr_info;
20716 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20717 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20718 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20719 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20722 if (r->out.needed == NULL) {
20723 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20726 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20728 return NDR_ERR_SUCCESS;
20731 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
20733 uint32_t _ptr_server;
20734 uint32_t _ptr_environment;
20735 uint32_t _ptr_buffer;
20736 uint32_t _ptr_info;
20737 TALLOC_CTX *_mem_save_server_0;
20738 TALLOC_CTX *_mem_save_environment_0;
20739 TALLOC_CTX *_mem_save_buffer_0;
20740 TALLOC_CTX *_mem_save_info_0;
20741 TALLOC_CTX *_mem_save_needed_0;
20742 if (flags & NDR_IN) {
20743 ZERO_STRUCT(r->out);
20745 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20746 if (_ptr_server) {
20747 NDR_PULL_ALLOC(ndr, r->in.server);
20748 } else {
20749 r->in.server = NULL;
20751 if (r->in.server) {
20752 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20753 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20754 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20755 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20756 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20757 return 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));
20759 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20760 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20763 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20764 if (_ptr_environment) {
20765 NDR_PULL_ALLOC(ndr, r->in.environment);
20766 } else {
20767 r->in.environment = NULL;
20769 if (r->in.environment) {
20770 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20771 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20772 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20773 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20774 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20775 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
20777 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20778 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20781 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20782 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20783 if (_ptr_buffer) {
20784 NDR_PULL_ALLOC(ndr, r->in.buffer);
20785 } else {
20786 r->in.buffer = NULL;
20788 if (r->in.buffer) {
20789 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20790 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20791 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20794 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20795 NDR_PULL_ALLOC(ndr, r->out.needed);
20796 ZERO_STRUCTP(r->out.needed);
20798 if (flags & NDR_OUT) {
20799 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20800 if (_ptr_info) {
20801 NDR_PULL_ALLOC(ndr, r->out.info);
20802 } else {
20803 r->out.info = NULL;
20805 if (r->out.info) {
20806 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20807 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20809 struct ndr_pull *_ndr_info;
20810 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20811 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20812 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20813 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20815 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20817 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20818 NDR_PULL_ALLOC(ndr, r->out.needed);
20820 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20821 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20822 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20823 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20824 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20826 return NDR_ERR_SUCCESS;
20829 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
20831 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
20832 ndr->depth++;
20833 if (flags & NDR_SET_VALUES) {
20834 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20836 if (flags & NDR_IN) {
20837 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
20838 ndr->depth++;
20839 ndr_print_ptr(ndr, "server", r->in.server);
20840 ndr->depth++;
20841 if (r->in.server) {
20842 ndr_print_string(ndr, "server", r->in.server);
20844 ndr->depth--;
20845 ndr_print_ptr(ndr, "environment", r->in.environment);
20846 ndr->depth++;
20847 if (r->in.environment) {
20848 ndr_print_string(ndr, "environment", r->in.environment);
20850 ndr->depth--;
20851 ndr_print_uint32(ndr, "level", r->in.level);
20852 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20853 ndr->depth++;
20854 if (r->in.buffer) {
20855 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20857 ndr->depth--;
20858 ndr_print_uint32(ndr, "offered", r->in.offered);
20859 ndr->depth--;
20861 if (flags & NDR_OUT) {
20862 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
20863 ndr->depth++;
20864 ndr_print_ptr(ndr, "info", r->out.info);
20865 ndr->depth++;
20866 if (r->out.info) {
20867 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20868 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
20870 ndr->depth--;
20871 ndr_print_ptr(ndr, "needed", r->out.needed);
20872 ndr->depth++;
20873 ndr_print_uint32(ndr, "needed", *r->out.needed);
20874 ndr->depth--;
20875 ndr_print_WERROR(ndr, "result", r->out.result);
20876 ndr->depth--;
20878 ndr->depth--;
20881 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
20883 if (flags & NDR_IN) {
20884 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20885 if (r->in.server) {
20886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20887 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20888 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20889 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20893 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20894 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20895 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20896 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20898 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20900 if (flags & NDR_OUT) {
20901 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20903 return NDR_ERR_SUCCESS;
20906 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
20908 uint32_t _ptr_server;
20909 TALLOC_CTX *_mem_save_server_0;
20910 if (flags & NDR_IN) {
20911 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20912 if (_ptr_server) {
20913 NDR_PULL_ALLOC(ndr, r->in.server);
20914 } else {
20915 r->in.server = NULL;
20917 if (r->in.server) {
20918 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20919 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20920 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20921 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20922 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20923 return 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));
20925 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20926 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20929 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20930 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20931 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20932 return 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));
20934 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20935 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20936 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
20937 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
20938 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
20939 return 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));
20941 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
20942 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
20944 if (flags & NDR_OUT) {
20945 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20947 return NDR_ERR_SUCCESS;
20950 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
20952 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
20953 ndr->depth++;
20954 if (flags & NDR_SET_VALUES) {
20955 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20957 if (flags & NDR_IN) {
20958 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
20959 ndr->depth++;
20960 ndr_print_ptr(ndr, "server", r->in.server);
20961 ndr->depth++;
20962 if (r->in.server) {
20963 ndr_print_string(ndr, "server", r->in.server);
20965 ndr->depth--;
20966 ndr_print_string(ndr, "architecture", r->in.architecture);
20967 ndr_print_string(ndr, "driver", r->in.driver);
20968 ndr->depth--;
20970 if (flags & NDR_OUT) {
20971 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
20972 ndr->depth++;
20973 ndr_print_WERROR(ndr, "result", r->out.result);
20974 ndr->depth--;
20976 ndr->depth--;
20979 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
20981 if (flags & NDR_IN) {
20982 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20983 if (r->in.server) {
20984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20987 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20991 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20992 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20993 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20996 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));
20997 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
21000 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));
21002 if (flags & NDR_OUT) {
21003 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21005 return NDR_ERR_SUCCESS;
21008 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
21010 uint32_t _ptr_server;
21011 TALLOC_CTX *_mem_save_server_0;
21012 if (flags & NDR_IN) {
21013 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21014 if (_ptr_server) {
21015 NDR_PULL_ALLOC(ndr, r->in.server);
21016 } else {
21017 r->in.server = NULL;
21019 if (r->in.server) {
21020 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21021 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21022 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21023 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21024 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21025 return 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));
21027 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21028 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21029 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21031 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21032 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21033 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21034 return 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));
21036 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21037 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21038 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
21039 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
21040 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
21041 return 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));
21043 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
21044 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));
21045 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
21046 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
21047 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
21048 return 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));
21050 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
21051 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));
21053 if (flags & NDR_OUT) {
21054 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21056 return NDR_ERR_SUCCESS;
21059 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
21061 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
21062 ndr->depth++;
21063 if (flags & NDR_SET_VALUES) {
21064 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21066 if (flags & NDR_IN) {
21067 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
21068 ndr->depth++;
21069 ndr_print_ptr(ndr, "server", r->in.server);
21070 ndr->depth++;
21071 if (r->in.server) {
21072 ndr_print_string(ndr, "server", r->in.server);
21074 ndr->depth--;
21075 ndr_print_string(ndr, "architecture", r->in.architecture);
21076 ndr_print_string(ndr, "path_name", r->in.path_name);
21077 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
21078 ndr->depth--;
21080 if (flags & NDR_OUT) {
21081 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
21082 ndr->depth++;
21083 ndr_print_WERROR(ndr, "result", r->out.result);
21084 ndr->depth--;
21086 ndr->depth--;
21089 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
21091 if (flags & NDR_IN) {
21092 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21093 if (r->in.servername) {
21094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21097 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21099 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21100 if (r->in.environment) {
21101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21104 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21107 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21108 if (r->in.buffer) {
21109 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21113 if (flags & NDR_OUT) {
21114 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21115 if (r->out.info) {
21116 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21118 if (r->out.needed == NULL) {
21119 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21122 if (r->out.count == NULL) {
21123 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21126 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21128 return NDR_ERR_SUCCESS;
21131 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
21133 uint32_t _ptr_servername;
21134 uint32_t _ptr_environment;
21135 uint32_t _ptr_buffer;
21136 uint32_t _ptr_info;
21137 TALLOC_CTX *_mem_save_servername_0;
21138 TALLOC_CTX *_mem_save_environment_0;
21139 TALLOC_CTX *_mem_save_buffer_0;
21140 TALLOC_CTX *_mem_save_info_0;
21141 TALLOC_CTX *_mem_save_needed_0;
21142 TALLOC_CTX *_mem_save_count_0;
21143 if (flags & NDR_IN) {
21144 ZERO_STRUCT(r->out);
21146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
21147 if (_ptr_servername) {
21148 NDR_PULL_ALLOC(ndr, r->in.servername);
21149 } else {
21150 r->in.servername = NULL;
21152 if (r->in.servername) {
21153 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21154 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21155 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21156 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21157 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
21158 return 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));
21160 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
21161 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
21162 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21164 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21165 if (_ptr_environment) {
21166 NDR_PULL_ALLOC(ndr, r->in.environment);
21167 } else {
21168 r->in.environment = NULL;
21170 if (r->in.environment) {
21171 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21172 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21173 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21174 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21175 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21176 return 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));
21178 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21179 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21183 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21184 if (_ptr_buffer) {
21185 NDR_PULL_ALLOC(ndr, r->in.buffer);
21186 } else {
21187 r->in.buffer = NULL;
21189 if (r->in.buffer) {
21190 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21191 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21192 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21195 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21196 NDR_PULL_ALLOC(ndr, r->out.needed);
21197 ZERO_STRUCTP(r->out.needed);
21198 NDR_PULL_ALLOC(ndr, r->out.count);
21199 ZERO_STRUCTP(r->out.count);
21201 if (flags & NDR_OUT) {
21202 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21203 if (_ptr_info) {
21204 NDR_PULL_ALLOC(ndr, r->out.info);
21205 } else {
21206 r->out.info = NULL;
21208 if (r->out.info) {
21209 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21210 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21211 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21214 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21215 NDR_PULL_ALLOC(ndr, r->out.needed);
21217 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21218 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21219 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21221 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21222 NDR_PULL_ALLOC(ndr, r->out.count);
21224 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21225 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21226 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21228 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21230 return NDR_ERR_SUCCESS;
21233 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
21235 uint32_t cntr_info_0;
21236 if (flags & NDR_IN) {
21237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21240 if (flags & NDR_OUT) {
21241 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21242 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21243 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21245 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21246 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21249 return NDR_ERR_SUCCESS;
21252 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
21254 uint32_t cntr_info_0;
21255 TALLOC_CTX *_mem_save_info_0;
21256 if (flags & NDR_IN) {
21257 ZERO_STRUCT(r->out);
21259 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21260 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21262 if (flags & NDR_OUT) {
21263 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21264 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21265 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21266 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21267 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21268 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21270 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21271 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21275 return NDR_ERR_SUCCESS;
21278 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
21280 uint32_t cntr_info_2;
21281 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
21282 ndr->depth++;
21283 if (flags & NDR_SET_VALUES) {
21284 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21286 if (flags & NDR_IN) {
21287 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
21288 ndr->depth++;
21289 ndr_print_ptr(ndr, "servername", r->in.servername);
21290 ndr->depth++;
21291 if (r->in.servername) {
21292 ndr_print_string(ndr, "servername", r->in.servername);
21294 ndr->depth--;
21295 ndr_print_ptr(ndr, "environment", r->in.environment);
21296 ndr->depth++;
21297 if (r->in.environment) {
21298 ndr_print_string(ndr, "environment", r->in.environment);
21300 ndr->depth--;
21301 ndr_print_uint32(ndr, "level", r->in.level);
21302 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21303 ndr->depth++;
21304 if (r->in.buffer) {
21305 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21307 ndr->depth--;
21308 ndr_print_uint32(ndr, "offered", r->in.offered);
21309 ndr->depth--;
21311 if (flags & NDR_OUT) {
21312 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
21313 ndr->depth++;
21314 ndr_print_ptr(ndr, "count", r->out.count);
21315 ndr->depth++;
21316 ndr_print_uint32(ndr, "count", *r->out.count);
21317 ndr->depth--;
21318 ndr_print_ptr(ndr, "info", r->out.info);
21319 ndr->depth++;
21320 ndr_print_ptr(ndr, "info", *r->out.info);
21321 ndr->depth++;
21322 if (*r->out.info) {
21323 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21324 ndr->depth++;
21325 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21326 char *idx_2=NULL;
21327 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21328 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21329 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21330 free(idx_2);
21333 ndr->depth--;
21335 ndr->depth--;
21336 ndr->depth--;
21337 ndr_print_ptr(ndr, "needed", r->out.needed);
21338 ndr->depth++;
21339 ndr_print_uint32(ndr, "needed", *r->out.needed);
21340 ndr->depth--;
21341 ndr_print_WERROR(ndr, "result", r->out.result);
21342 ndr->depth--;
21344 ndr->depth--;
21347 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
21349 if (flags & NDR_IN) {
21350 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21351 if (r->in.server) {
21352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21355 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21357 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21358 if (r->in.environment) {
21359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21362 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21365 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21366 if (r->in.buffer) {
21367 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21371 if (flags & NDR_OUT) {
21372 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21373 if (r->out.info) {
21375 struct ndr_push *_ndr_info;
21376 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21377 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21378 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21379 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21382 if (r->out.needed == NULL) {
21383 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21386 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21388 return NDR_ERR_SUCCESS;
21391 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
21393 uint32_t _ptr_server;
21394 uint32_t _ptr_environment;
21395 uint32_t _ptr_buffer;
21396 uint32_t _ptr_info;
21397 TALLOC_CTX *_mem_save_server_0;
21398 TALLOC_CTX *_mem_save_environment_0;
21399 TALLOC_CTX *_mem_save_buffer_0;
21400 TALLOC_CTX *_mem_save_info_0;
21401 TALLOC_CTX *_mem_save_needed_0;
21402 if (flags & NDR_IN) {
21403 ZERO_STRUCT(r->out);
21405 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21406 if (_ptr_server) {
21407 NDR_PULL_ALLOC(ndr, r->in.server);
21408 } else {
21409 r->in.server = NULL;
21411 if (r->in.server) {
21412 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21413 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21414 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21415 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21416 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21417 return 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));
21419 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21420 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21424 if (_ptr_environment) {
21425 NDR_PULL_ALLOC(ndr, r->in.environment);
21426 } else {
21427 r->in.environment = NULL;
21429 if (r->in.environment) {
21430 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21431 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21432 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21433 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21434 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21435 return 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));
21437 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21438 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21441 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21442 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21443 if (_ptr_buffer) {
21444 NDR_PULL_ALLOC(ndr, r->in.buffer);
21445 } else {
21446 r->in.buffer = NULL;
21448 if (r->in.buffer) {
21449 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21450 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21451 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21454 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21455 NDR_PULL_ALLOC(ndr, r->out.needed);
21456 ZERO_STRUCTP(r->out.needed);
21458 if (flags & NDR_OUT) {
21459 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21460 if (_ptr_info) {
21461 NDR_PULL_ALLOC(ndr, r->out.info);
21462 } else {
21463 r->out.info = NULL;
21465 if (r->out.info) {
21466 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21467 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21469 struct ndr_pull *_ndr_info;
21470 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21471 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21472 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21473 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21475 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21477 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21478 NDR_PULL_ALLOC(ndr, r->out.needed);
21480 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21481 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21482 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21483 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21484 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21486 return NDR_ERR_SUCCESS;
21489 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
21491 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
21492 ndr->depth++;
21493 if (flags & NDR_SET_VALUES) {
21494 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21496 if (flags & NDR_IN) {
21497 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
21498 ndr->depth++;
21499 ndr_print_ptr(ndr, "server", r->in.server);
21500 ndr->depth++;
21501 if (r->in.server) {
21502 ndr_print_string(ndr, "server", r->in.server);
21504 ndr->depth--;
21505 ndr_print_ptr(ndr, "environment", r->in.environment);
21506 ndr->depth++;
21507 if (r->in.environment) {
21508 ndr_print_string(ndr, "environment", r->in.environment);
21510 ndr->depth--;
21511 ndr_print_uint32(ndr, "level", r->in.level);
21512 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21513 ndr->depth++;
21514 if (r->in.buffer) {
21515 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21517 ndr->depth--;
21518 ndr_print_uint32(ndr, "offered", r->in.offered);
21519 ndr->depth--;
21521 if (flags & NDR_OUT) {
21522 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
21523 ndr->depth++;
21524 ndr_print_ptr(ndr, "info", r->out.info);
21525 ndr->depth++;
21526 if (r->out.info) {
21527 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21528 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
21530 ndr->depth--;
21531 ndr_print_ptr(ndr, "needed", r->out.needed);
21532 ndr->depth++;
21533 ndr_print_uint32(ndr, "needed", *r->out.needed);
21534 ndr->depth--;
21535 ndr_print_WERROR(ndr, "result", r->out.result);
21536 ndr->depth--;
21538 ndr->depth--;
21541 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
21543 if (flags & NDR_IN) {
21544 if (r->in.handle == NULL) {
21545 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21547 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21549 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
21550 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21552 if (flags & NDR_OUT) {
21553 if (r->out.job_id == NULL) {
21554 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
21557 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21559 return NDR_ERR_SUCCESS;
21562 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
21564 TALLOC_CTX *_mem_save_handle_0;
21565 TALLOC_CTX *_mem_save_job_id_0;
21566 if (flags & NDR_IN) {
21567 ZERO_STRUCT(r->out);
21569 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21570 NDR_PULL_ALLOC(ndr, r->in.handle);
21572 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21573 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21574 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21575 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21576 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21577 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
21578 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21579 NDR_PULL_ALLOC(ndr, r->out.job_id);
21580 ZERO_STRUCTP(r->out.job_id);
21582 if (flags & NDR_OUT) {
21583 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21584 NDR_PULL_ALLOC(ndr, r->out.job_id);
21586 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
21587 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
21588 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
21589 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
21590 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21592 return NDR_ERR_SUCCESS;
21595 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
21597 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
21598 ndr->depth++;
21599 if (flags & NDR_SET_VALUES) {
21600 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21602 if (flags & NDR_IN) {
21603 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
21604 ndr->depth++;
21605 ndr_print_ptr(ndr, "handle", r->in.handle);
21606 ndr->depth++;
21607 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21608 ndr->depth--;
21609 ndr_print_uint32(ndr, "level", r->in.level);
21610 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
21611 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
21612 ndr->depth--;
21614 if (flags & NDR_OUT) {
21615 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
21616 ndr->depth++;
21617 ndr_print_ptr(ndr, "job_id", r->out.job_id);
21618 ndr->depth++;
21619 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
21620 ndr->depth--;
21621 ndr_print_WERROR(ndr, "result", r->out.result);
21622 ndr->depth--;
21624 ndr->depth--;
21627 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
21629 if (flags & NDR_IN) {
21630 if (r->in.handle == NULL) {
21631 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21633 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21635 if (flags & NDR_OUT) {
21636 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21638 return NDR_ERR_SUCCESS;
21641 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
21643 TALLOC_CTX *_mem_save_handle_0;
21644 if (flags & NDR_IN) {
21645 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21646 NDR_PULL_ALLOC(ndr, r->in.handle);
21648 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21649 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21650 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21653 if (flags & NDR_OUT) {
21654 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21656 return NDR_ERR_SUCCESS;
21659 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
21661 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
21662 ndr->depth++;
21663 if (flags & NDR_SET_VALUES) {
21664 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21666 if (flags & NDR_IN) {
21667 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
21668 ndr->depth++;
21669 ndr_print_ptr(ndr, "handle", r->in.handle);
21670 ndr->depth++;
21671 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21672 ndr->depth--;
21673 ndr->depth--;
21675 if (flags & NDR_OUT) {
21676 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
21677 ndr->depth++;
21678 ndr_print_WERROR(ndr, "result", r->out.result);
21679 ndr->depth--;
21681 ndr->depth--;
21684 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
21686 if (flags & NDR_IN) {
21687 if (r->in.handle == NULL) {
21688 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21690 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21691 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
21692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
21694 if (flags & NDR_OUT) {
21695 if (r->out.num_written == NULL) {
21696 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21698 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
21699 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21701 return NDR_ERR_SUCCESS;
21704 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
21706 TALLOC_CTX *_mem_save_handle_0;
21707 TALLOC_CTX *_mem_save_num_written_0;
21708 if (flags & NDR_IN) {
21709 ZERO_STRUCT(r->out);
21711 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21712 NDR_PULL_ALLOC(ndr, r->in.handle);
21714 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21715 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21716 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21718 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
21719 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
21720 NDR_PULL_ALLOC(ndr, r->out.num_written);
21721 ZERO_STRUCTP(r->out.num_written);
21723 if (flags & NDR_OUT) {
21724 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21725 NDR_PULL_ALLOC(ndr, r->out.num_written);
21727 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
21728 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
21729 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
21730 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
21731 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21733 return NDR_ERR_SUCCESS;
21736 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
21738 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
21739 ndr->depth++;
21740 if (flags & NDR_SET_VALUES) {
21741 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21743 if (flags & NDR_IN) {
21744 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
21745 ndr->depth++;
21746 ndr_print_ptr(ndr, "handle", r->in.handle);
21747 ndr->depth++;
21748 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21749 ndr->depth--;
21750 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
21751 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
21752 ndr->depth--;
21754 if (flags & NDR_OUT) {
21755 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
21756 ndr->depth++;
21757 ndr_print_ptr(ndr, "num_written", r->out.num_written);
21758 ndr->depth++;
21759 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
21760 ndr->depth--;
21761 ndr_print_WERROR(ndr, "result", r->out.result);
21762 ndr->depth--;
21764 ndr->depth--;
21767 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
21769 if (flags & NDR_IN) {
21770 if (r->in.handle == NULL) {
21771 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21773 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21775 if (flags & NDR_OUT) {
21776 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21778 return NDR_ERR_SUCCESS;
21781 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
21783 TALLOC_CTX *_mem_save_handle_0;
21784 if (flags & NDR_IN) {
21785 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21786 NDR_PULL_ALLOC(ndr, r->in.handle);
21788 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21789 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21790 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21791 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21793 if (flags & NDR_OUT) {
21794 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21796 return NDR_ERR_SUCCESS;
21799 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
21801 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
21802 ndr->depth++;
21803 if (flags & NDR_SET_VALUES) {
21804 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21806 if (flags & NDR_IN) {
21807 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
21808 ndr->depth++;
21809 ndr_print_ptr(ndr, "handle", r->in.handle);
21810 ndr->depth++;
21811 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21812 ndr->depth--;
21813 ndr->depth--;
21815 if (flags & NDR_OUT) {
21816 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
21817 ndr->depth++;
21818 ndr_print_WERROR(ndr, "result", r->out.result);
21819 ndr->depth--;
21821 ndr->depth--;
21824 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
21826 if (flags & NDR_IN) {
21827 if (r->in.handle == NULL) {
21828 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21830 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21832 if (flags & NDR_OUT) {
21833 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21835 return NDR_ERR_SUCCESS;
21838 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
21840 TALLOC_CTX *_mem_save_handle_0;
21841 if (flags & NDR_IN) {
21842 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21843 NDR_PULL_ALLOC(ndr, r->in.handle);
21845 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21846 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21847 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21850 if (flags & NDR_OUT) {
21851 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21853 return NDR_ERR_SUCCESS;
21856 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
21858 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
21859 ndr->depth++;
21860 if (flags & NDR_SET_VALUES) {
21861 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21863 if (flags & NDR_IN) {
21864 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
21865 ndr->depth++;
21866 ndr_print_ptr(ndr, "handle", r->in.handle);
21867 ndr->depth++;
21868 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21869 ndr->depth--;
21870 ndr->depth--;
21872 if (flags & NDR_OUT) {
21873 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
21874 ndr->depth++;
21875 ndr_print_WERROR(ndr, "result", r->out.result);
21876 ndr->depth--;
21878 ndr->depth--;
21881 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
21883 if (flags & NDR_IN) {
21884 if (r->in.handle == NULL) {
21885 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21887 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21888 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21890 if (flags & NDR_OUT) {
21891 if (r->out.data == NULL) {
21892 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21894 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21895 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
21896 if (r->out._data_size == NULL) {
21897 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
21900 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21902 return NDR_ERR_SUCCESS;
21905 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
21907 TALLOC_CTX *_mem_save_handle_0;
21908 TALLOC_CTX *_mem_save__data_size_0;
21909 if (flags & NDR_IN) {
21910 ZERO_STRUCT(r->out);
21912 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21913 NDR_PULL_ALLOC(ndr, r->in.handle);
21915 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21916 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21917 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21919 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
21920 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
21921 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
21922 NDR_PULL_ALLOC(ndr, r->out._data_size);
21923 ZERO_STRUCTP(r->out._data_size);
21925 if (flags & NDR_OUT) {
21926 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
21927 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21928 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
21930 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
21931 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21932 NDR_PULL_ALLOC(ndr, r->out._data_size);
21934 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
21935 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
21936 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
21937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
21938 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21939 if (r->out.data) {
21940 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
21943 return NDR_ERR_SUCCESS;
21946 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
21948 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
21949 ndr->depth++;
21950 if (flags & NDR_SET_VALUES) {
21951 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21953 if (flags & NDR_IN) {
21954 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
21955 ndr->depth++;
21956 ndr_print_ptr(ndr, "handle", r->in.handle);
21957 ndr->depth++;
21958 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21959 ndr->depth--;
21960 ndr_print_uint32(ndr, "data_size", r->in.data_size);
21961 ndr->depth--;
21963 if (flags & NDR_OUT) {
21964 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
21965 ndr->depth++;
21966 ndr_print_ptr(ndr, "data", r->out.data);
21967 ndr->depth++;
21968 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
21969 ndr->depth--;
21970 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
21971 ndr->depth++;
21972 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
21973 ndr->depth--;
21974 ndr_print_WERROR(ndr, "result", r->out.result);
21975 ndr->depth--;
21977 ndr->depth--;
21980 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
21982 if (flags & NDR_IN) {
21983 if (r->in.handle == NULL) {
21984 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21986 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21988 if (flags & NDR_OUT) {
21989 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21991 return NDR_ERR_SUCCESS;
21994 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
21996 TALLOC_CTX *_mem_save_handle_0;
21997 if (flags & NDR_IN) {
21998 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21999 NDR_PULL_ALLOC(ndr, r->in.handle);
22001 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22002 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22003 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22006 if (flags & NDR_OUT) {
22007 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22009 return NDR_ERR_SUCCESS;
22012 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
22014 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
22015 ndr->depth++;
22016 if (flags & NDR_SET_VALUES) {
22017 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22019 if (flags & NDR_IN) {
22020 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
22021 ndr->depth++;
22022 ndr_print_ptr(ndr, "handle", r->in.handle);
22023 ndr->depth++;
22024 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22025 ndr->depth--;
22026 ndr->depth--;
22028 if (flags & NDR_OUT) {
22029 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
22030 ndr->depth++;
22031 ndr_print_WERROR(ndr, "result", r->out.result);
22032 ndr->depth--;
22034 ndr->depth--;
22037 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
22039 if (flags & NDR_IN) {
22040 if (r->in.handle == NULL) {
22041 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22043 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22045 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22046 if (r->in.buffer) {
22047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22048 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
22050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22052 if (flags & NDR_OUT) {
22053 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
22054 if (r->out.buffer) {
22055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22056 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
22058 if (r->out.needed == NULL) {
22059 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22062 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22064 return NDR_ERR_SUCCESS;
22067 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
22069 uint32_t _ptr_buffer;
22070 TALLOC_CTX *_mem_save_handle_0;
22071 TALLOC_CTX *_mem_save_buffer_0;
22072 TALLOC_CTX *_mem_save_needed_0;
22073 if (flags & NDR_IN) {
22074 ZERO_STRUCT(r->out);
22076 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22077 NDR_PULL_ALLOC(ndr, r->in.handle);
22079 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22080 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22081 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22085 if (_ptr_buffer) {
22086 NDR_PULL_ALLOC(ndr, r->in.buffer);
22087 } else {
22088 r->in.buffer = NULL;
22090 if (r->in.buffer) {
22091 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22092 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22093 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
22094 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
22095 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
22096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22098 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22099 NDR_PULL_ALLOC(ndr, r->out.needed);
22100 ZERO_STRUCTP(r->out.needed);
22101 if (r->in.buffer) {
22102 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
22105 if (flags & NDR_OUT) {
22106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22107 if (_ptr_buffer) {
22108 NDR_PULL_ALLOC(ndr, r->out.buffer);
22109 } else {
22110 r->out.buffer = NULL;
22112 if (r->out.buffer) {
22113 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22114 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
22115 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
22116 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
22117 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
22118 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22120 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22121 NDR_PULL_ALLOC(ndr, r->out.needed);
22123 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22124 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22125 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22127 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22128 if (r->out.buffer) {
22129 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
22132 return NDR_ERR_SUCCESS;
22135 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
22137 ndr_print_struct(ndr, name, "spoolss_AddJob");
22138 ndr->depth++;
22139 if (flags & NDR_SET_VALUES) {
22140 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22142 if (flags & NDR_IN) {
22143 ndr_print_struct(ndr, "in", "spoolss_AddJob");
22144 ndr->depth++;
22145 ndr_print_ptr(ndr, "handle", r->in.handle);
22146 ndr->depth++;
22147 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22148 ndr->depth--;
22149 ndr_print_uint32(ndr, "level", r->in.level);
22150 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22151 ndr->depth++;
22152 if (r->in.buffer) {
22153 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
22155 ndr->depth--;
22156 ndr_print_uint32(ndr, "offered", r->in.offered);
22157 ndr->depth--;
22159 if (flags & NDR_OUT) {
22160 ndr_print_struct(ndr, "out", "spoolss_AddJob");
22161 ndr->depth++;
22162 ndr_print_ptr(ndr, "buffer", r->out.buffer);
22163 ndr->depth++;
22164 if (r->out.buffer) {
22165 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
22167 ndr->depth--;
22168 ndr_print_ptr(ndr, "needed", r->out.needed);
22169 ndr->depth++;
22170 ndr_print_uint32(ndr, "needed", *r->out.needed);
22171 ndr->depth--;
22172 ndr_print_WERROR(ndr, "result", r->out.result);
22173 ndr->depth--;
22175 ndr->depth--;
22178 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
22180 if (flags & NDR_IN) {
22181 if (r->in.handle == NULL) {
22182 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22184 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
22187 if (flags & NDR_OUT) {
22188 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22190 return NDR_ERR_SUCCESS;
22193 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
22195 TALLOC_CTX *_mem_save_handle_0;
22196 if (flags & NDR_IN) {
22197 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22198 NDR_PULL_ALLOC(ndr, r->in.handle);
22200 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22201 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22202 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22204 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
22206 if (flags & NDR_OUT) {
22207 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22209 return NDR_ERR_SUCCESS;
22212 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
22214 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
22215 ndr->depth++;
22216 if (flags & NDR_SET_VALUES) {
22217 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22219 if (flags & NDR_IN) {
22220 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
22221 ndr->depth++;
22222 ndr_print_ptr(ndr, "handle", r->in.handle);
22223 ndr->depth++;
22224 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22225 ndr->depth--;
22226 ndr_print_uint32(ndr, "jobid", r->in.jobid);
22227 ndr->depth--;
22229 if (flags & NDR_OUT) {
22230 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
22231 ndr->depth++;
22232 ndr_print_WERROR(ndr, "result", r->out.result);
22233 ndr->depth--;
22235 ndr->depth--;
22238 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
22240 if (flags & NDR_IN) {
22241 if (r->in.handle == NULL) {
22242 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22244 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22248 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));
22249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22251 if (flags & NDR_OUT) {
22252 if (r->out.type == NULL) {
22253 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22255 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
22256 if (r->out.data == NULL) {
22257 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22259 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
22260 if (r->out.needed == NULL) {
22261 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22264 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22266 return NDR_ERR_SUCCESS;
22269 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
22271 TALLOC_CTX *_mem_save_handle_0;
22272 TALLOC_CTX *_mem_save_type_0;
22273 TALLOC_CTX *_mem_save_data_0;
22274 TALLOC_CTX *_mem_save_needed_0;
22275 if (flags & NDR_IN) {
22276 ZERO_STRUCT(r->out);
22278 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22279 NDR_PULL_ALLOC(ndr, r->in.handle);
22281 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22282 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22283 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22284 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22285 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22286 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22287 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22288 return 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));
22290 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22291 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));
22292 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22293 NDR_PULL_ALLOC(ndr, r->out.type);
22294 ZERO_STRUCTP(r->out.type);
22295 NDR_PULL_ALLOC(ndr, r->out.data);
22296 ZERO_STRUCTP(r->out.data);
22297 NDR_PULL_ALLOC(ndr, r->out.needed);
22298 ZERO_STRUCTP(r->out.needed);
22300 if (flags & NDR_OUT) {
22301 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22302 NDR_PULL_ALLOC(ndr, r->out.type);
22304 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
22305 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
22306 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
22307 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
22308 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22309 NDR_PULL_ALLOC(ndr, r->out.data);
22311 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
22312 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
22313 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
22314 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
22315 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22316 NDR_PULL_ALLOC(ndr, r->out.needed);
22318 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22319 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22320 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22322 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22324 return NDR_ERR_SUCCESS;
22327 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
22329 if (flags & NDR_IN) {
22330 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
22332 if (flags & NDR_OUT) {
22333 if (r->out.data == NULL) {
22334 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22336 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
22337 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
22339 return NDR_ERR_SUCCESS;
22342 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
22344 TALLOC_CTX *_mem_save_data_0;
22345 if (flags & NDR_IN) {
22346 ZERO_STRUCT(r->out);
22348 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
22349 NDR_PULL_ALLOC(ndr, r->out.data);
22350 ZERO_STRUCTP(r->out.data);
22352 if (flags & NDR_OUT) {
22353 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22354 NDR_PULL_ALLOC(ndr, r->out.data);
22356 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
22357 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
22358 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
22359 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
22360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
22362 return NDR_ERR_SUCCESS;
22365 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
22367 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
22368 ndr->depth++;
22369 if (flags & NDR_SET_VALUES) {
22370 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22372 if (flags & NDR_IN) {
22373 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
22374 ndr->depth++;
22375 ndr_print_ptr(ndr, "handle", r->in.handle);
22376 ndr->depth++;
22377 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22378 ndr->depth--;
22379 ndr_print_string(ndr, "value_name", r->in.value_name);
22380 ndr_print_uint32(ndr, "offered", r->in.offered);
22381 ndr->depth--;
22383 if (flags & NDR_OUT) {
22384 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
22385 ndr->depth++;
22386 ndr_print_ptr(ndr, "type", r->out.type);
22387 ndr->depth++;
22388 ndr_print_winreg_Type(ndr, "type", *r->out.type);
22389 ndr->depth--;
22390 ndr_print_ptr(ndr, "data", r->out.data);
22391 ndr->depth++;
22392 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
22393 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
22394 ndr->depth--;
22395 ndr_print_ptr(ndr, "needed", r->out.needed);
22396 ndr->depth++;
22397 ndr_print_uint32(ndr, "needed", *r->out.needed);
22398 ndr->depth--;
22399 ndr_print_WERROR(ndr, "result", r->out.result);
22400 ndr->depth--;
22402 ndr->depth--;
22405 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
22407 if (flags & NDR_IN) {
22408 if (r->in.handle == NULL) {
22409 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22411 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22415 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));
22416 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
22417 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
22418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
22420 if (flags & NDR_OUT) {
22421 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22423 return NDR_ERR_SUCCESS;
22426 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
22428 if (flags & NDR_IN) {
22429 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
22431 if (flags & NDR_OUT) {
22432 if (r->out.data == NULL) {
22433 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22435 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
22436 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
22438 return NDR_ERR_SUCCESS;
22441 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
22443 TALLOC_CTX *_mem_save_handle_0;
22444 if (flags & NDR_IN) {
22445 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22446 NDR_PULL_ALLOC(ndr, r->in.handle);
22448 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22449 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22450 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22452 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22453 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22454 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
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.value_name), ndr_get_array_length(ndr, &r->in.value_name));
22457 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22458 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));
22459 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
22461 struct ndr_pull *_ndr_data;
22462 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
22463 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
22464 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
22465 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
22467 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
22469 if (flags & NDR_OUT) {
22470 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22472 return NDR_ERR_SUCCESS;
22475 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
22477 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
22478 ndr->depth++;
22479 if (flags & NDR_SET_VALUES) {
22480 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22482 if (flags & NDR_IN) {
22483 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
22484 ndr->depth++;
22485 ndr_print_ptr(ndr, "handle", r->in.handle);
22486 ndr->depth++;
22487 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22488 ndr->depth--;
22489 ndr_print_string(ndr, "value_name", r->in.value_name);
22490 ndr_print_winreg_Type(ndr, "type", r->in.type);
22491 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
22492 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
22493 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);
22494 ndr->depth--;
22496 if (flags & NDR_OUT) {
22497 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
22498 ndr->depth++;
22499 ndr_print_WERROR(ndr, "result", r->out.result);
22500 ndr->depth--;
22502 ndr->depth--;
22505 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
22507 if (flags & NDR_IN) {
22509 if (flags & NDR_OUT) {
22510 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22512 return NDR_ERR_SUCCESS;
22515 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
22517 if (flags & NDR_IN) {
22519 if (flags & NDR_OUT) {
22520 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22522 return NDR_ERR_SUCCESS;
22525 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
22527 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
22528 ndr->depth++;
22529 if (flags & NDR_SET_VALUES) {
22530 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22532 if (flags & NDR_IN) {
22533 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
22534 ndr->depth++;
22535 ndr->depth--;
22537 if (flags & NDR_OUT) {
22538 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
22539 ndr->depth++;
22540 ndr_print_WERROR(ndr, "result", r->out.result);
22541 ndr->depth--;
22543 ndr->depth--;
22546 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
22548 if (flags & NDR_IN) {
22549 if (r->in.handle == NULL) {
22550 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22552 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22554 if (flags & NDR_OUT) {
22555 if (r->out.handle == NULL) {
22556 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22558 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
22559 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22561 return NDR_ERR_SUCCESS;
22564 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
22566 TALLOC_CTX *_mem_save_handle_0;
22567 if (flags & NDR_IN) {
22568 ZERO_STRUCT(r->out);
22570 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22571 NDR_PULL_ALLOC(ndr, r->in.handle);
22573 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22574 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22575 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22576 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22577 NDR_PULL_ALLOC(ndr, r->out.handle);
22578 *r->out.handle = *r->in.handle;
22580 if (flags & NDR_OUT) {
22581 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22582 NDR_PULL_ALLOC(ndr, r->out.handle);
22584 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22585 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
22586 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
22587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22588 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22590 return NDR_ERR_SUCCESS;
22593 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
22595 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
22596 ndr->depth++;
22597 if (flags & NDR_SET_VALUES) {
22598 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22600 if (flags & NDR_IN) {
22601 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
22602 ndr->depth++;
22603 ndr_print_ptr(ndr, "handle", r->in.handle);
22604 ndr->depth++;
22605 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22606 ndr->depth--;
22607 ndr->depth--;
22609 if (flags & NDR_OUT) {
22610 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
22611 ndr->depth++;
22612 ndr_print_ptr(ndr, "handle", r->out.handle);
22613 ndr->depth++;
22614 ndr_print_policy_handle(ndr, "handle", r->out.handle);
22615 ndr->depth--;
22616 ndr_print_WERROR(ndr, "result", r->out.result);
22617 ndr->depth--;
22619 ndr->depth--;
22622 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
22624 if (flags & NDR_IN) {
22625 if (r->in.handle == NULL) {
22626 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22628 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22630 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22631 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22633 if (flags & NDR_OUT) {
22634 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22636 return NDR_ERR_SUCCESS;
22639 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
22641 TALLOC_CTX *_mem_save_handle_0;
22642 if (flags & NDR_IN) {
22643 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22644 NDR_PULL_ALLOC(ndr, r->in.handle);
22646 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22647 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22648 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22651 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22652 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22654 if (flags & NDR_OUT) {
22655 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22657 return NDR_ERR_SUCCESS;
22660 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
22662 ndr_print_struct(ndr, name, "spoolss_AddForm");
22663 ndr->depth++;
22664 if (flags & NDR_SET_VALUES) {
22665 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22667 if (flags & NDR_IN) {
22668 ndr_print_struct(ndr, "in", "spoolss_AddForm");
22669 ndr->depth++;
22670 ndr_print_ptr(ndr, "handle", r->in.handle);
22671 ndr->depth++;
22672 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22673 ndr->depth--;
22674 ndr_print_uint32(ndr, "level", r->in.level);
22675 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22676 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
22677 ndr->depth--;
22679 if (flags & NDR_OUT) {
22680 ndr_print_struct(ndr, "out", "spoolss_AddForm");
22681 ndr->depth++;
22682 ndr_print_WERROR(ndr, "result", r->out.result);
22683 ndr->depth--;
22685 ndr->depth--;
22688 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
22690 if (flags & NDR_IN) {
22691 if (r->in.handle == NULL) {
22692 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22694 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22697 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22698 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));
22700 if (flags & NDR_OUT) {
22701 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22703 return NDR_ERR_SUCCESS;
22706 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
22708 TALLOC_CTX *_mem_save_handle_0;
22709 if (flags & NDR_IN) {
22710 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22711 NDR_PULL_ALLOC(ndr, r->in.handle);
22713 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22714 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22715 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22716 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22717 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22718 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22719 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22720 return 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));
22722 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22723 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));
22725 if (flags & NDR_OUT) {
22726 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22728 return NDR_ERR_SUCCESS;
22731 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
22733 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
22734 ndr->depth++;
22735 if (flags & NDR_SET_VALUES) {
22736 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22738 if (flags & NDR_IN) {
22739 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
22740 ndr->depth++;
22741 ndr_print_ptr(ndr, "handle", r->in.handle);
22742 ndr->depth++;
22743 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22744 ndr->depth--;
22745 ndr_print_string(ndr, "form_name", r->in.form_name);
22746 ndr->depth--;
22748 if (flags & NDR_OUT) {
22749 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
22750 ndr->depth++;
22751 ndr_print_WERROR(ndr, "result", r->out.result);
22752 ndr->depth--;
22754 ndr->depth--;
22757 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
22759 if (flags & NDR_IN) {
22760 if (r->in.handle == NULL) {
22761 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22763 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22767 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));
22768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22769 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22770 if (r->in.buffer) {
22771 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22775 if (flags & NDR_OUT) {
22776 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22777 if (r->out.info) {
22779 struct ndr_push *_ndr_info;
22780 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22781 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22782 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22783 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22786 if (r->out.needed == NULL) {
22787 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22790 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22792 return NDR_ERR_SUCCESS;
22795 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
22797 uint32_t _ptr_buffer;
22798 uint32_t _ptr_info;
22799 TALLOC_CTX *_mem_save_handle_0;
22800 TALLOC_CTX *_mem_save_buffer_0;
22801 TALLOC_CTX *_mem_save_info_0;
22802 TALLOC_CTX *_mem_save_needed_0;
22803 if (flags & NDR_IN) {
22804 ZERO_STRUCT(r->out);
22806 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22807 NDR_PULL_ALLOC(ndr, r->in.handle);
22809 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22810 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22811 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22813 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22814 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22815 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22816 return 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));
22818 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22819 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));
22820 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22822 if (_ptr_buffer) {
22823 NDR_PULL_ALLOC(ndr, r->in.buffer);
22824 } else {
22825 r->in.buffer = NULL;
22827 if (r->in.buffer) {
22828 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22829 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22830 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22833 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22834 NDR_PULL_ALLOC(ndr, r->out.needed);
22835 ZERO_STRUCTP(r->out.needed);
22837 if (flags & NDR_OUT) {
22838 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22839 if (_ptr_info) {
22840 NDR_PULL_ALLOC(ndr, r->out.info);
22841 } else {
22842 r->out.info = NULL;
22844 if (r->out.info) {
22845 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22846 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22848 struct ndr_pull *_ndr_info;
22849 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22850 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22851 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22852 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22854 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22856 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22857 NDR_PULL_ALLOC(ndr, r->out.needed);
22859 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22860 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22861 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22863 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22865 return NDR_ERR_SUCCESS;
22868 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
22870 ndr_print_struct(ndr, name, "spoolss_GetForm");
22871 ndr->depth++;
22872 if (flags & NDR_SET_VALUES) {
22873 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22875 if (flags & NDR_IN) {
22876 ndr_print_struct(ndr, "in", "spoolss_GetForm");
22877 ndr->depth++;
22878 ndr_print_ptr(ndr, "handle", r->in.handle);
22879 ndr->depth++;
22880 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22881 ndr->depth--;
22882 ndr_print_string(ndr, "form_name", r->in.form_name);
22883 ndr_print_uint32(ndr, "level", r->in.level);
22884 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22885 ndr->depth++;
22886 if (r->in.buffer) {
22887 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22889 ndr->depth--;
22890 ndr_print_uint32(ndr, "offered", r->in.offered);
22891 ndr->depth--;
22893 if (flags & NDR_OUT) {
22894 ndr_print_struct(ndr, "out", "spoolss_GetForm");
22895 ndr->depth++;
22896 ndr_print_ptr(ndr, "info", r->out.info);
22897 ndr->depth++;
22898 if (r->out.info) {
22899 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22900 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
22902 ndr->depth--;
22903 ndr_print_ptr(ndr, "needed", r->out.needed);
22904 ndr->depth++;
22905 ndr_print_uint32(ndr, "needed", *r->out.needed);
22906 ndr->depth--;
22907 ndr_print_WERROR(ndr, "result", r->out.result);
22908 ndr->depth--;
22910 ndr->depth--;
22913 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
22915 if (flags & NDR_IN) {
22916 if (r->in.handle == NULL) {
22917 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22919 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22920 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22921 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22922 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22923 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));
22924 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22925 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22926 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22928 if (flags & NDR_OUT) {
22929 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22931 return NDR_ERR_SUCCESS;
22934 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
22936 TALLOC_CTX *_mem_save_handle_0;
22937 if (flags & NDR_IN) {
22938 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22939 NDR_PULL_ALLOC(ndr, r->in.handle);
22941 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22942 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22943 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22945 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22946 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22947 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22948 return 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));
22950 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22951 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));
22952 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22953 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22954 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22956 if (flags & NDR_OUT) {
22957 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22959 return NDR_ERR_SUCCESS;
22962 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
22964 ndr_print_struct(ndr, name, "spoolss_SetForm");
22965 ndr->depth++;
22966 if (flags & NDR_SET_VALUES) {
22967 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22969 if (flags & NDR_IN) {
22970 ndr_print_struct(ndr, "in", "spoolss_SetForm");
22971 ndr->depth++;
22972 ndr_print_ptr(ndr, "handle", r->in.handle);
22973 ndr->depth++;
22974 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22975 ndr->depth--;
22976 ndr_print_string(ndr, "form_name", r->in.form_name);
22977 ndr_print_uint32(ndr, "level", r->in.level);
22978 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22979 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
22980 ndr->depth--;
22982 if (flags & NDR_OUT) {
22983 ndr_print_struct(ndr, "out", "spoolss_SetForm");
22984 ndr->depth++;
22985 ndr_print_WERROR(ndr, "result", r->out.result);
22986 ndr->depth--;
22988 ndr->depth--;
22991 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
22993 if (flags & NDR_IN) {
22994 if (r->in.handle == NULL) {
22995 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22997 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22999 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23000 if (r->in.buffer) {
23001 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23005 if (flags & NDR_OUT) {
23006 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23007 if (r->out.info) {
23008 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23010 if (r->out.needed == NULL) {
23011 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23014 if (r->out.count == NULL) {
23015 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23018 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23020 return NDR_ERR_SUCCESS;
23023 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
23025 uint32_t _ptr_buffer;
23026 uint32_t _ptr_info;
23027 TALLOC_CTX *_mem_save_handle_0;
23028 TALLOC_CTX *_mem_save_buffer_0;
23029 TALLOC_CTX *_mem_save_info_0;
23030 TALLOC_CTX *_mem_save_needed_0;
23031 TALLOC_CTX *_mem_save_count_0;
23032 if (flags & NDR_IN) {
23033 ZERO_STRUCT(r->out);
23035 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23036 NDR_PULL_ALLOC(ndr, r->in.handle);
23038 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23039 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23040 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23042 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23043 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23044 if (_ptr_buffer) {
23045 NDR_PULL_ALLOC(ndr, r->in.buffer);
23046 } else {
23047 r->in.buffer = NULL;
23049 if (r->in.buffer) {
23050 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23051 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23052 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23053 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23055 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23056 NDR_PULL_ALLOC(ndr, r->out.needed);
23057 ZERO_STRUCTP(r->out.needed);
23058 NDR_PULL_ALLOC(ndr, r->out.count);
23059 ZERO_STRUCTP(r->out.count);
23061 if (flags & NDR_OUT) {
23062 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23063 if (_ptr_info) {
23064 NDR_PULL_ALLOC(ndr, r->out.info);
23065 } else {
23066 r->out.info = NULL;
23068 if (r->out.info) {
23069 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23070 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23071 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23074 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23075 NDR_PULL_ALLOC(ndr, r->out.needed);
23077 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23078 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23079 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23081 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23082 NDR_PULL_ALLOC(ndr, r->out.count);
23084 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23085 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23086 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23088 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23090 return NDR_ERR_SUCCESS;
23093 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
23095 uint32_t cntr_info_0;
23096 if (flags & NDR_IN) {
23097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23100 if (flags & NDR_OUT) {
23101 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23102 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23103 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23105 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23106 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23109 return NDR_ERR_SUCCESS;
23112 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
23114 uint32_t cntr_info_0;
23115 TALLOC_CTX *_mem_save_info_0;
23116 if (flags & NDR_IN) {
23117 ZERO_STRUCT(r->out);
23119 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23120 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23122 if (flags & NDR_OUT) {
23123 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23124 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23125 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23126 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23127 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23128 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23130 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23131 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23135 return NDR_ERR_SUCCESS;
23138 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
23140 uint32_t cntr_info_2;
23141 ndr_print_struct(ndr, name, "spoolss_EnumForms");
23142 ndr->depth++;
23143 if (flags & NDR_SET_VALUES) {
23144 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23146 if (flags & NDR_IN) {
23147 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
23148 ndr->depth++;
23149 ndr_print_ptr(ndr, "handle", r->in.handle);
23150 ndr->depth++;
23151 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23152 ndr->depth--;
23153 ndr_print_uint32(ndr, "level", r->in.level);
23154 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23155 ndr->depth++;
23156 if (r->in.buffer) {
23157 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23159 ndr->depth--;
23160 ndr_print_uint32(ndr, "offered", r->in.offered);
23161 ndr->depth--;
23163 if (flags & NDR_OUT) {
23164 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
23165 ndr->depth++;
23166 ndr_print_ptr(ndr, "count", r->out.count);
23167 ndr->depth++;
23168 ndr_print_uint32(ndr, "count", *r->out.count);
23169 ndr->depth--;
23170 ndr_print_ptr(ndr, "info", r->out.info);
23171 ndr->depth++;
23172 ndr_print_ptr(ndr, "info", *r->out.info);
23173 ndr->depth++;
23174 if (*r->out.info) {
23175 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23176 ndr->depth++;
23177 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23178 char *idx_2=NULL;
23179 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23180 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23181 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23182 free(idx_2);
23185 ndr->depth--;
23187 ndr->depth--;
23188 ndr->depth--;
23189 ndr_print_ptr(ndr, "needed", r->out.needed);
23190 ndr->depth++;
23191 ndr_print_uint32(ndr, "needed", *r->out.needed);
23192 ndr->depth--;
23193 ndr_print_WERROR(ndr, "result", r->out.result);
23194 ndr->depth--;
23196 ndr->depth--;
23199 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
23201 if (flags & NDR_IN) {
23202 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23203 if (r->in.servername) {
23204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23207 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23210 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23211 if (r->in.buffer) {
23212 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23216 if (flags & NDR_OUT) {
23217 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23218 if (r->out.info) {
23219 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23221 if (r->out.needed == NULL) {
23222 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23225 if (r->out.count == NULL) {
23226 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23228 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23229 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23231 return NDR_ERR_SUCCESS;
23234 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
23236 uint32_t _ptr_servername;
23237 uint32_t _ptr_buffer;
23238 uint32_t _ptr_info;
23239 TALLOC_CTX *_mem_save_servername_0;
23240 TALLOC_CTX *_mem_save_buffer_0;
23241 TALLOC_CTX *_mem_save_info_0;
23242 TALLOC_CTX *_mem_save_needed_0;
23243 TALLOC_CTX *_mem_save_count_0;
23244 if (flags & NDR_IN) {
23245 ZERO_STRUCT(r->out);
23247 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23248 if (_ptr_servername) {
23249 NDR_PULL_ALLOC(ndr, r->in.servername);
23250 } else {
23251 r->in.servername = NULL;
23253 if (r->in.servername) {
23254 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23255 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23256 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23257 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23258 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23259 return 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));
23261 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23262 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23265 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23266 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23267 if (_ptr_buffer) {
23268 NDR_PULL_ALLOC(ndr, r->in.buffer);
23269 } else {
23270 r->in.buffer = NULL;
23272 if (r->in.buffer) {
23273 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23274 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23275 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23278 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23279 NDR_PULL_ALLOC(ndr, r->out.needed);
23280 ZERO_STRUCTP(r->out.needed);
23281 NDR_PULL_ALLOC(ndr, r->out.count);
23282 ZERO_STRUCTP(r->out.count);
23284 if (flags & NDR_OUT) {
23285 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23286 if (_ptr_info) {
23287 NDR_PULL_ALLOC(ndr, r->out.info);
23288 } else {
23289 r->out.info = NULL;
23291 if (r->out.info) {
23292 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23293 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23294 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23295 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23297 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23298 NDR_PULL_ALLOC(ndr, r->out.needed);
23300 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23301 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23303 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23304 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23305 NDR_PULL_ALLOC(ndr, r->out.count);
23307 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23308 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23309 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23310 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23311 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23313 return NDR_ERR_SUCCESS;
23316 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
23318 uint32_t cntr_info_0;
23319 if (flags & NDR_IN) {
23320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23323 if (flags & NDR_OUT) {
23324 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23325 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23326 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23328 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23329 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23332 return NDR_ERR_SUCCESS;
23335 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
23337 uint32_t cntr_info_0;
23338 TALLOC_CTX *_mem_save_info_0;
23339 if (flags & NDR_IN) {
23340 ZERO_STRUCT(r->out);
23342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23345 if (flags & NDR_OUT) {
23346 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23347 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23348 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23349 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23350 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23351 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23353 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23354 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23358 return NDR_ERR_SUCCESS;
23361 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
23363 uint32_t cntr_info_2;
23364 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
23365 ndr->depth++;
23366 if (flags & NDR_SET_VALUES) {
23367 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23369 if (flags & NDR_IN) {
23370 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
23371 ndr->depth++;
23372 ndr_print_ptr(ndr, "servername", r->in.servername);
23373 ndr->depth++;
23374 if (r->in.servername) {
23375 ndr_print_string(ndr, "servername", r->in.servername);
23377 ndr->depth--;
23378 ndr_print_uint32(ndr, "level", r->in.level);
23379 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23380 ndr->depth++;
23381 if (r->in.buffer) {
23382 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23384 ndr->depth--;
23385 ndr_print_uint32(ndr, "offered", r->in.offered);
23386 ndr->depth--;
23388 if (flags & NDR_OUT) {
23389 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
23390 ndr->depth++;
23391 ndr_print_ptr(ndr, "count", r->out.count);
23392 ndr->depth++;
23393 ndr_print_uint32(ndr, "count", *r->out.count);
23394 ndr->depth--;
23395 ndr_print_ptr(ndr, "info", r->out.info);
23396 ndr->depth++;
23397 ndr_print_ptr(ndr, "info", *r->out.info);
23398 ndr->depth++;
23399 if (*r->out.info) {
23400 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23401 ndr->depth++;
23402 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23403 char *idx_2=NULL;
23404 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23405 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23406 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23407 free(idx_2);
23410 ndr->depth--;
23412 ndr->depth--;
23413 ndr->depth--;
23414 ndr_print_ptr(ndr, "needed", r->out.needed);
23415 ndr->depth++;
23416 ndr_print_uint32(ndr, "needed", *r->out.needed);
23417 ndr->depth--;
23418 ndr_print_WERROR(ndr, "result", r->out.result);
23419 ndr->depth--;
23421 ndr->depth--;
23424 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
23426 if (flags & NDR_IN) {
23427 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23428 if (r->in.servername) {
23429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23432 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23435 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23436 if (r->in.buffer) {
23437 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23441 if (flags & NDR_OUT) {
23442 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23443 if (r->out.info) {
23444 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23446 if (r->out.needed == NULL) {
23447 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23450 if (r->out.count == NULL) {
23451 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23454 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23456 return NDR_ERR_SUCCESS;
23459 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
23461 uint32_t _ptr_servername;
23462 uint32_t _ptr_buffer;
23463 uint32_t _ptr_info;
23464 TALLOC_CTX *_mem_save_servername_0;
23465 TALLOC_CTX *_mem_save_buffer_0;
23466 TALLOC_CTX *_mem_save_info_0;
23467 TALLOC_CTX *_mem_save_needed_0;
23468 TALLOC_CTX *_mem_save_count_0;
23469 if (flags & NDR_IN) {
23470 ZERO_STRUCT(r->out);
23472 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23473 if (_ptr_servername) {
23474 NDR_PULL_ALLOC(ndr, r->in.servername);
23475 } else {
23476 r->in.servername = NULL;
23478 if (r->in.servername) {
23479 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23480 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23481 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23482 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23483 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23484 return 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));
23486 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23487 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23491 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23492 if (_ptr_buffer) {
23493 NDR_PULL_ALLOC(ndr, r->in.buffer);
23494 } else {
23495 r->in.buffer = NULL;
23497 if (r->in.buffer) {
23498 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23499 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23500 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23503 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23504 NDR_PULL_ALLOC(ndr, r->out.needed);
23505 ZERO_STRUCTP(r->out.needed);
23506 NDR_PULL_ALLOC(ndr, r->out.count);
23507 ZERO_STRUCTP(r->out.count);
23509 if (flags & NDR_OUT) {
23510 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23511 if (_ptr_info) {
23512 NDR_PULL_ALLOC(ndr, r->out.info);
23513 } else {
23514 r->out.info = NULL;
23516 if (r->out.info) {
23517 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23518 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23519 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23522 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23523 NDR_PULL_ALLOC(ndr, r->out.needed);
23525 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23526 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23527 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23529 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23530 NDR_PULL_ALLOC(ndr, r->out.count);
23532 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23533 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23534 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23536 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23538 return NDR_ERR_SUCCESS;
23541 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
23543 uint32_t cntr_info_0;
23544 if (flags & NDR_IN) {
23545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23548 if (flags & NDR_OUT) {
23549 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23550 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23551 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23553 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23554 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23557 return NDR_ERR_SUCCESS;
23560 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
23562 uint32_t cntr_info_0;
23563 TALLOC_CTX *_mem_save_info_0;
23564 if (flags & NDR_IN) {
23565 ZERO_STRUCT(r->out);
23567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23568 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23570 if (flags & NDR_OUT) {
23571 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23572 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23573 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23574 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23575 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23576 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23578 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23579 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23583 return NDR_ERR_SUCCESS;
23586 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
23588 uint32_t cntr_info_2;
23589 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
23590 ndr->depth++;
23591 if (flags & NDR_SET_VALUES) {
23592 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23594 if (flags & NDR_IN) {
23595 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
23596 ndr->depth++;
23597 ndr_print_ptr(ndr, "servername", r->in.servername);
23598 ndr->depth++;
23599 if (r->in.servername) {
23600 ndr_print_string(ndr, "servername", r->in.servername);
23602 ndr->depth--;
23603 ndr_print_uint32(ndr, "level", r->in.level);
23604 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23605 ndr->depth++;
23606 if (r->in.buffer) {
23607 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23609 ndr->depth--;
23610 ndr_print_uint32(ndr, "offered", r->in.offered);
23611 ndr->depth--;
23613 if (flags & NDR_OUT) {
23614 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
23615 ndr->depth++;
23616 ndr_print_ptr(ndr, "count", r->out.count);
23617 ndr->depth++;
23618 ndr_print_uint32(ndr, "count", *r->out.count);
23619 ndr->depth--;
23620 ndr_print_ptr(ndr, "info", r->out.info);
23621 ndr->depth++;
23622 ndr_print_ptr(ndr, "info", *r->out.info);
23623 ndr->depth++;
23624 if (*r->out.info) {
23625 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23626 ndr->depth++;
23627 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23628 char *idx_2=NULL;
23629 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23630 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23631 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23632 free(idx_2);
23635 ndr->depth--;
23637 ndr->depth--;
23638 ndr->depth--;
23639 ndr_print_ptr(ndr, "needed", r->out.needed);
23640 ndr->depth++;
23641 ndr_print_uint32(ndr, "needed", *r->out.needed);
23642 ndr->depth--;
23643 ndr_print_WERROR(ndr, "result", r->out.result);
23644 ndr->depth--;
23646 ndr->depth--;
23649 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
23651 if (flags & NDR_IN) {
23652 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
23653 if (r->in.server_name) {
23654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
23655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
23657 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));
23659 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
23660 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
23661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
23663 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));
23665 if (flags & NDR_OUT) {
23666 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23668 return NDR_ERR_SUCCESS;
23671 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
23673 uint32_t _ptr_server_name;
23674 TALLOC_CTX *_mem_save_server_name_0;
23675 if (flags & NDR_IN) {
23676 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
23677 if (_ptr_server_name) {
23678 NDR_PULL_ALLOC(ndr, r->in.server_name);
23679 } else {
23680 r->in.server_name = NULL;
23682 if (r->in.server_name) {
23683 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
23684 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
23685 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
23686 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
23687 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
23688 return 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));
23690 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
23691 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));
23692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
23694 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
23695 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
23696 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
23697 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
23698 return 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));
23700 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
23701 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));
23703 if (flags & NDR_OUT) {
23704 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23706 return NDR_ERR_SUCCESS;
23709 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
23711 ndr_print_struct(ndr, name, "spoolss_AddPort");
23712 ndr->depth++;
23713 if (flags & NDR_SET_VALUES) {
23714 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23716 if (flags & NDR_IN) {
23717 ndr_print_struct(ndr, "in", "spoolss_AddPort");
23718 ndr->depth++;
23719 ndr_print_ptr(ndr, "server_name", r->in.server_name);
23720 ndr->depth++;
23721 if (r->in.server_name) {
23722 ndr_print_string(ndr, "server_name", r->in.server_name);
23724 ndr->depth--;
23725 ndr_print_uint32(ndr, "unknown", r->in.unknown);
23726 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
23727 ndr->depth--;
23729 if (flags & NDR_OUT) {
23730 ndr_print_struct(ndr, "out", "spoolss_AddPort");
23731 ndr->depth++;
23732 ndr_print_WERROR(ndr, "result", r->out.result);
23733 ndr->depth--;
23735 ndr->depth--;
23738 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
23740 if (flags & NDR_IN) {
23742 if (flags & NDR_OUT) {
23743 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23745 return NDR_ERR_SUCCESS;
23748 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
23750 if (flags & NDR_IN) {
23752 if (flags & NDR_OUT) {
23753 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23755 return NDR_ERR_SUCCESS;
23758 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
23760 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
23761 ndr->depth++;
23762 if (flags & NDR_SET_VALUES) {
23763 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23765 if (flags & NDR_IN) {
23766 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
23767 ndr->depth++;
23768 ndr->depth--;
23770 if (flags & NDR_OUT) {
23771 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
23772 ndr->depth++;
23773 ndr_print_WERROR(ndr, "result", r->out.result);
23774 ndr->depth--;
23776 ndr->depth--;
23779 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
23781 if (flags & NDR_IN) {
23783 if (flags & NDR_OUT) {
23784 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23786 return NDR_ERR_SUCCESS;
23789 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
23791 if (flags & NDR_IN) {
23793 if (flags & NDR_OUT) {
23794 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23796 return NDR_ERR_SUCCESS;
23799 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
23801 ndr_print_struct(ndr, name, "spoolss_DeletePort");
23802 ndr->depth++;
23803 if (flags & NDR_SET_VALUES) {
23804 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23806 if (flags & NDR_IN) {
23807 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
23808 ndr->depth++;
23809 ndr->depth--;
23811 if (flags & NDR_OUT) {
23812 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
23813 ndr->depth++;
23814 ndr_print_WERROR(ndr, "result", r->out.result);
23815 ndr->depth--;
23817 ndr->depth--;
23820 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
23822 if (flags & NDR_IN) {
23824 if (flags & NDR_OUT) {
23825 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23827 return NDR_ERR_SUCCESS;
23830 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
23832 if (flags & NDR_IN) {
23834 if (flags & NDR_OUT) {
23835 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23837 return NDR_ERR_SUCCESS;
23840 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
23842 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
23843 ndr->depth++;
23844 if (flags & NDR_SET_VALUES) {
23845 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23847 if (flags & NDR_IN) {
23848 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
23849 ndr->depth++;
23850 ndr->depth--;
23852 if (flags & NDR_OUT) {
23853 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
23854 ndr->depth++;
23855 ndr_print_WERROR(ndr, "result", r->out.result);
23856 ndr->depth--;
23858 ndr->depth--;
23861 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
23863 if (flags & NDR_IN) {
23865 if (flags & NDR_OUT) {
23866 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23868 return NDR_ERR_SUCCESS;
23871 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
23873 if (flags & NDR_IN) {
23875 if (flags & NDR_OUT) {
23876 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23878 return NDR_ERR_SUCCESS;
23881 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
23883 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
23884 ndr->depth++;
23885 if (flags & NDR_SET_VALUES) {
23886 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23888 if (flags & NDR_IN) {
23889 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
23890 ndr->depth++;
23891 ndr->depth--;
23893 if (flags & NDR_OUT) {
23894 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
23895 ndr->depth++;
23896 ndr_print_WERROR(ndr, "result", r->out.result);
23897 ndr->depth--;
23899 ndr->depth--;
23902 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
23904 if (flags & NDR_IN) {
23906 if (flags & NDR_OUT) {
23907 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23909 return NDR_ERR_SUCCESS;
23912 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
23914 if (flags & NDR_IN) {
23916 if (flags & NDR_OUT) {
23917 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23919 return NDR_ERR_SUCCESS;
23922 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
23924 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
23925 ndr->depth++;
23926 if (flags & NDR_SET_VALUES) {
23927 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23929 if (flags & NDR_IN) {
23930 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
23931 ndr->depth++;
23932 ndr->depth--;
23934 if (flags & NDR_OUT) {
23935 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
23936 ndr->depth++;
23937 ndr_print_WERROR(ndr, "result", r->out.result);
23938 ndr->depth--;
23940 ndr->depth--;
23943 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
23945 if (flags & NDR_IN) {
23947 if (flags & NDR_OUT) {
23948 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23950 return NDR_ERR_SUCCESS;
23953 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
23955 if (flags & NDR_IN) {
23957 if (flags & NDR_OUT) {
23958 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23960 return NDR_ERR_SUCCESS;
23963 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
23965 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
23966 ndr->depth++;
23967 if (flags & NDR_SET_VALUES) {
23968 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23970 if (flags & NDR_IN) {
23971 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
23972 ndr->depth++;
23973 ndr->depth--;
23975 if (flags & NDR_OUT) {
23976 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
23977 ndr->depth++;
23978 ndr_print_WERROR(ndr, "result", r->out.result);
23979 ndr->depth--;
23981 ndr->depth--;
23984 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
23986 if (flags & NDR_IN) {
23988 if (flags & NDR_OUT) {
23989 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23991 return NDR_ERR_SUCCESS;
23994 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
23996 if (flags & NDR_IN) {
23998 if (flags & NDR_OUT) {
23999 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24001 return NDR_ERR_SUCCESS;
24004 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
24006 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
24007 ndr->depth++;
24008 if (flags & NDR_SET_VALUES) {
24009 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24011 if (flags & NDR_IN) {
24012 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
24013 ndr->depth++;
24014 ndr->depth--;
24016 if (flags & NDR_OUT) {
24017 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
24018 ndr->depth++;
24019 ndr_print_WERROR(ndr, "result", r->out.result);
24020 ndr->depth--;
24022 ndr->depth--;
24025 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
24027 if (flags & NDR_IN) {
24029 if (flags & NDR_OUT) {
24030 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24032 return NDR_ERR_SUCCESS;
24035 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
24037 if (flags & NDR_IN) {
24039 if (flags & NDR_OUT) {
24040 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24042 return NDR_ERR_SUCCESS;
24045 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
24047 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
24048 ndr->depth++;
24049 if (flags & NDR_SET_VALUES) {
24050 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24052 if (flags & NDR_IN) {
24053 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
24054 ndr->depth++;
24055 ndr->depth--;
24057 if (flags & NDR_OUT) {
24058 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
24059 ndr->depth++;
24060 ndr_print_WERROR(ndr, "result", r->out.result);
24061 ndr->depth--;
24063 ndr->depth--;
24066 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
24068 if (flags & NDR_IN) {
24070 if (flags & NDR_OUT) {
24071 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24073 return NDR_ERR_SUCCESS;
24076 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
24078 if (flags & NDR_IN) {
24080 if (flags & NDR_OUT) {
24081 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24083 return NDR_ERR_SUCCESS;
24086 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
24088 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
24089 ndr->depth++;
24090 if (flags & NDR_SET_VALUES) {
24091 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24093 if (flags & NDR_IN) {
24094 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
24095 ndr->depth++;
24096 ndr->depth--;
24098 if (flags & NDR_OUT) {
24099 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
24100 ndr->depth++;
24101 ndr_print_WERROR(ndr, "result", r->out.result);
24102 ndr->depth--;
24104 ndr->depth--;
24107 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
24109 if (flags & NDR_IN) {
24111 if (flags & NDR_OUT) {
24112 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24114 return NDR_ERR_SUCCESS;
24117 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
24119 if (flags & NDR_IN) {
24121 if (flags & NDR_OUT) {
24122 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24124 return NDR_ERR_SUCCESS;
24127 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
24129 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
24130 ndr->depth++;
24131 if (flags & NDR_SET_VALUES) {
24132 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24134 if (flags & NDR_IN) {
24135 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
24136 ndr->depth++;
24137 ndr->depth--;
24139 if (flags & NDR_OUT) {
24140 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
24141 ndr->depth++;
24142 ndr_print_WERROR(ndr, "result", r->out.result);
24143 ndr->depth--;
24145 ndr->depth--;
24148 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
24150 if (flags & NDR_IN) {
24152 if (flags & NDR_OUT) {
24153 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24155 return NDR_ERR_SUCCESS;
24158 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
24160 if (flags & NDR_IN) {
24162 if (flags & NDR_OUT) {
24163 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24165 return NDR_ERR_SUCCESS;
24168 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
24170 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
24171 ndr->depth++;
24172 if (flags & NDR_SET_VALUES) {
24173 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24175 if (flags & NDR_IN) {
24176 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
24177 ndr->depth++;
24178 ndr->depth--;
24180 if (flags & NDR_OUT) {
24181 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
24182 ndr->depth++;
24183 ndr_print_WERROR(ndr, "result", r->out.result);
24184 ndr->depth--;
24186 ndr->depth--;
24189 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
24191 if (flags & NDR_IN) {
24193 if (flags & NDR_OUT) {
24194 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24196 return NDR_ERR_SUCCESS;
24199 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
24201 if (flags & NDR_IN) {
24203 if (flags & NDR_OUT) {
24204 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24206 return NDR_ERR_SUCCESS;
24209 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
24211 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
24212 ndr->depth++;
24213 if (flags & NDR_SET_VALUES) {
24214 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24216 if (flags & NDR_IN) {
24217 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
24218 ndr->depth++;
24219 ndr->depth--;
24221 if (flags & NDR_OUT) {
24222 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
24223 ndr->depth++;
24224 ndr_print_WERROR(ndr, "result", r->out.result);
24225 ndr->depth--;
24227 ndr->depth--;
24230 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
24232 if (flags & NDR_IN) {
24234 if (flags & NDR_OUT) {
24235 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24237 return NDR_ERR_SUCCESS;
24240 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
24242 if (flags & NDR_IN) {
24244 if (flags & NDR_OUT) {
24245 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24247 return NDR_ERR_SUCCESS;
24250 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
24252 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
24253 ndr->depth++;
24254 if (flags & NDR_SET_VALUES) {
24255 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24257 if (flags & NDR_IN) {
24258 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
24259 ndr->depth++;
24260 ndr->depth--;
24262 if (flags & NDR_OUT) {
24263 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
24264 ndr->depth++;
24265 ndr_print_WERROR(ndr, "result", r->out.result);
24266 ndr->depth--;
24268 ndr->depth--;
24271 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
24273 if (flags & NDR_IN) {
24274 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24275 if (r->in.servername) {
24276 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24279 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24281 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
24282 if (r->in.print_processor_name) {
24283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
24284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
24286 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));
24288 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24289 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24290 if (r->in.buffer) {
24291 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24293 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24295 if (flags & NDR_OUT) {
24296 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24297 if (r->out.info) {
24298 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24300 if (r->out.needed == NULL) {
24301 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24304 if (r->out.count == NULL) {
24305 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24308 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24310 return NDR_ERR_SUCCESS;
24313 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
24315 uint32_t _ptr_servername;
24316 uint32_t _ptr_print_processor_name;
24317 uint32_t _ptr_buffer;
24318 uint32_t _ptr_info;
24319 TALLOC_CTX *_mem_save_servername_0;
24320 TALLOC_CTX *_mem_save_print_processor_name_0;
24321 TALLOC_CTX *_mem_save_buffer_0;
24322 TALLOC_CTX *_mem_save_info_0;
24323 TALLOC_CTX *_mem_save_needed_0;
24324 TALLOC_CTX *_mem_save_count_0;
24325 if (flags & NDR_IN) {
24326 ZERO_STRUCT(r->out);
24328 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24329 if (_ptr_servername) {
24330 NDR_PULL_ALLOC(ndr, r->in.servername);
24331 } else {
24332 r->in.servername = NULL;
24334 if (r->in.servername) {
24335 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24336 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24337 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24338 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24339 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24340 return 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));
24342 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24343 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24346 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
24347 if (_ptr_print_processor_name) {
24348 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
24349 } else {
24350 r->in.print_processor_name = NULL;
24352 if (r->in.print_processor_name) {
24353 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
24354 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
24355 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
24356 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
24357 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
24358 return 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));
24360 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
24361 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));
24362 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
24364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24366 if (_ptr_buffer) {
24367 NDR_PULL_ALLOC(ndr, r->in.buffer);
24368 } else {
24369 r->in.buffer = NULL;
24371 if (r->in.buffer) {
24372 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24373 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24374 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24375 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24377 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24378 NDR_PULL_ALLOC(ndr, r->out.needed);
24379 ZERO_STRUCTP(r->out.needed);
24380 NDR_PULL_ALLOC(ndr, r->out.count);
24381 ZERO_STRUCTP(r->out.count);
24383 if (flags & NDR_OUT) {
24384 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24385 if (_ptr_info) {
24386 NDR_PULL_ALLOC(ndr, r->out.info);
24387 } else {
24388 r->out.info = NULL;
24390 if (r->out.info) {
24391 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24392 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24393 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24394 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24396 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24397 NDR_PULL_ALLOC(ndr, r->out.needed);
24399 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24400 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24401 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24403 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24404 NDR_PULL_ALLOC(ndr, r->out.count);
24406 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24407 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24408 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24410 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24412 return NDR_ERR_SUCCESS;
24415 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
24417 uint32_t cntr_info_0;
24418 if (flags & NDR_IN) {
24419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24422 if (flags & NDR_OUT) {
24423 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24424 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24425 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24427 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24428 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24431 return NDR_ERR_SUCCESS;
24434 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
24436 uint32_t cntr_info_0;
24437 TALLOC_CTX *_mem_save_info_0;
24438 if (flags & NDR_IN) {
24439 ZERO_STRUCT(r->out);
24441 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24442 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24444 if (flags & NDR_OUT) {
24445 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24446 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24447 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24448 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24449 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24450 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24452 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24453 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24457 return NDR_ERR_SUCCESS;
24460 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
24462 uint32_t cntr_info_2;
24463 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
24464 ndr->depth++;
24465 if (flags & NDR_SET_VALUES) {
24466 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24468 if (flags & NDR_IN) {
24469 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
24470 ndr->depth++;
24471 ndr_print_ptr(ndr, "servername", r->in.servername);
24472 ndr->depth++;
24473 if (r->in.servername) {
24474 ndr_print_string(ndr, "servername", r->in.servername);
24476 ndr->depth--;
24477 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
24478 ndr->depth++;
24479 if (r->in.print_processor_name) {
24480 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
24482 ndr->depth--;
24483 ndr_print_uint32(ndr, "level", r->in.level);
24484 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24485 ndr->depth++;
24486 if (r->in.buffer) {
24487 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24489 ndr->depth--;
24490 ndr_print_uint32(ndr, "offered", r->in.offered);
24491 ndr->depth--;
24493 if (flags & NDR_OUT) {
24494 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
24495 ndr->depth++;
24496 ndr_print_ptr(ndr, "count", r->out.count);
24497 ndr->depth++;
24498 ndr_print_uint32(ndr, "count", *r->out.count);
24499 ndr->depth--;
24500 ndr_print_ptr(ndr, "info", r->out.info);
24501 ndr->depth++;
24502 ndr_print_ptr(ndr, "info", *r->out.info);
24503 ndr->depth++;
24504 if (*r->out.info) {
24505 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24506 ndr->depth++;
24507 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24508 char *idx_2=NULL;
24509 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24510 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24511 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24512 free(idx_2);
24515 ndr->depth--;
24517 ndr->depth--;
24518 ndr->depth--;
24519 ndr_print_ptr(ndr, "needed", r->out.needed);
24520 ndr->depth++;
24521 ndr_print_uint32(ndr, "needed", *r->out.needed);
24522 ndr->depth--;
24523 ndr_print_WERROR(ndr, "result", r->out.result);
24524 ndr->depth--;
24526 ndr->depth--;
24529 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
24531 if (flags & NDR_IN) {
24532 if (r->in.handle == NULL) {
24533 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24535 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24536 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
24537 if (r->in.data_type) {
24538 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
24539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
24541 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));
24543 if (r->in.devmode_ctr == NULL) {
24544 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24546 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24548 if (flags & NDR_OUT) {
24549 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24551 return NDR_ERR_SUCCESS;
24554 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
24556 uint32_t _ptr_data_type;
24557 TALLOC_CTX *_mem_save_handle_0;
24558 TALLOC_CTX *_mem_save_data_type_0;
24559 TALLOC_CTX *_mem_save_devmode_ctr_0;
24560 if (flags & NDR_IN) {
24561 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24562 NDR_PULL_ALLOC(ndr, r->in.handle);
24564 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24565 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24566 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24567 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24568 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
24569 if (_ptr_data_type) {
24570 NDR_PULL_ALLOC(ndr, r->in.data_type);
24571 } else {
24572 r->in.data_type = NULL;
24574 if (r->in.data_type) {
24575 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
24576 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
24577 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
24578 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
24579 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
24580 return 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));
24582 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
24583 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));
24584 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
24586 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24587 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
24589 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24590 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
24591 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24594 if (flags & NDR_OUT) {
24595 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24597 return NDR_ERR_SUCCESS;
24600 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
24602 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
24603 ndr->depth++;
24604 if (flags & NDR_SET_VALUES) {
24605 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24607 if (flags & NDR_IN) {
24608 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
24609 ndr->depth++;
24610 ndr_print_ptr(ndr, "handle", r->in.handle);
24611 ndr->depth++;
24612 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24613 ndr->depth--;
24614 ndr_print_ptr(ndr, "data_type", r->in.data_type);
24615 ndr->depth++;
24616 if (r->in.data_type) {
24617 ndr_print_string(ndr, "data_type", r->in.data_type);
24619 ndr->depth--;
24620 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
24621 ndr->depth++;
24622 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
24623 ndr->depth--;
24624 ndr->depth--;
24626 if (flags & NDR_OUT) {
24627 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
24628 ndr->depth++;
24629 ndr_print_WERROR(ndr, "result", r->out.result);
24630 ndr->depth--;
24632 ndr->depth--;
24635 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
24637 if (flags & NDR_IN) {
24638 if (r->in.handle == NULL) {
24639 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24641 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24642 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
24643 if (r->in.architecture) {
24644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
24645 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
24647 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24650 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24651 if (r->in.buffer) {
24652 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
24656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
24658 if (flags & NDR_OUT) {
24659 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24660 if (r->out.info) {
24662 struct ndr_push *_ndr_info;
24663 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24664 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
24665 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24666 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24669 if (r->out.needed == NULL) {
24670 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24673 if (r->out.server_major_version == NULL) {
24674 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24676 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
24677 if (r->out.server_minor_version == NULL) {
24678 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
24681 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24683 return NDR_ERR_SUCCESS;
24686 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
24688 uint32_t _ptr_architecture;
24689 uint32_t _ptr_buffer;
24690 uint32_t _ptr_info;
24691 TALLOC_CTX *_mem_save_handle_0;
24692 TALLOC_CTX *_mem_save_architecture_0;
24693 TALLOC_CTX *_mem_save_buffer_0;
24694 TALLOC_CTX *_mem_save_info_0;
24695 TALLOC_CTX *_mem_save_needed_0;
24696 TALLOC_CTX *_mem_save_server_major_version_0;
24697 TALLOC_CTX *_mem_save_server_minor_version_0;
24698 if (flags & NDR_IN) {
24699 ZERO_STRUCT(r->out);
24701 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24702 NDR_PULL_ALLOC(ndr, r->in.handle);
24704 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24705 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24706 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24707 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24708 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
24709 if (_ptr_architecture) {
24710 NDR_PULL_ALLOC(ndr, r->in.architecture);
24711 } else {
24712 r->in.architecture = NULL;
24714 if (r->in.architecture) {
24715 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
24716 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
24717 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
24718 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
24719 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
24720 return 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));
24722 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
24723 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
24724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
24726 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24728 if (_ptr_buffer) {
24729 NDR_PULL_ALLOC(ndr, r->in.buffer);
24730 } else {
24731 r->in.buffer = NULL;
24733 if (r->in.buffer) {
24734 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24735 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24736 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24739 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24740 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
24741 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
24742 NDR_PULL_ALLOC(ndr, r->out.needed);
24743 ZERO_STRUCTP(r->out.needed);
24744 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
24745 ZERO_STRUCTP(r->out.server_major_version);
24746 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
24747 ZERO_STRUCTP(r->out.server_minor_version);
24749 if (flags & NDR_OUT) {
24750 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24751 if (_ptr_info) {
24752 NDR_PULL_ALLOC(ndr, r->out.info);
24753 } else {
24754 r->out.info = NULL;
24756 if (r->out.info) {
24757 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24758 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24760 struct ndr_pull *_ndr_info;
24761 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24762 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
24763 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24764 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24766 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24768 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24769 NDR_PULL_ALLOC(ndr, r->out.needed);
24771 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24772 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24773 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24774 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24775 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24776 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
24778 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
24779 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
24780 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
24781 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
24782 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24783 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
24785 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
24786 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
24787 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
24788 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
24789 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24791 return NDR_ERR_SUCCESS;
24794 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
24796 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
24797 ndr->depth++;
24798 if (flags & NDR_SET_VALUES) {
24799 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24801 if (flags & NDR_IN) {
24802 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
24803 ndr->depth++;
24804 ndr_print_ptr(ndr, "handle", r->in.handle);
24805 ndr->depth++;
24806 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24807 ndr->depth--;
24808 ndr_print_ptr(ndr, "architecture", r->in.architecture);
24809 ndr->depth++;
24810 if (r->in.architecture) {
24811 ndr_print_string(ndr, "architecture", r->in.architecture);
24813 ndr->depth--;
24814 ndr_print_uint32(ndr, "level", r->in.level);
24815 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24816 ndr->depth++;
24817 if (r->in.buffer) {
24818 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24820 ndr->depth--;
24821 ndr_print_uint32(ndr, "offered", r->in.offered);
24822 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
24823 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
24824 ndr->depth--;
24826 if (flags & NDR_OUT) {
24827 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
24828 ndr->depth++;
24829 ndr_print_ptr(ndr, "info", r->out.info);
24830 ndr->depth++;
24831 if (r->out.info) {
24832 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
24833 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
24835 ndr->depth--;
24836 ndr_print_ptr(ndr, "needed", r->out.needed);
24837 ndr->depth++;
24838 ndr_print_uint32(ndr, "needed", *r->out.needed);
24839 ndr->depth--;
24840 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
24841 ndr->depth++;
24842 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
24843 ndr->depth--;
24844 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
24845 ndr->depth++;
24846 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
24847 ndr->depth--;
24848 ndr_print_WERROR(ndr, "result", r->out.result);
24849 ndr->depth--;
24851 ndr->depth--;
24854 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
24856 if (flags & NDR_IN) {
24858 if (flags & NDR_OUT) {
24859 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24861 return NDR_ERR_SUCCESS;
24864 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
24866 if (flags & NDR_IN) {
24868 if (flags & NDR_OUT) {
24869 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24871 return NDR_ERR_SUCCESS;
24874 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
24876 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
24877 ndr->depth++;
24878 if (flags & NDR_SET_VALUES) {
24879 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24881 if (flags & NDR_IN) {
24882 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
24883 ndr->depth++;
24884 ndr->depth--;
24886 if (flags & NDR_OUT) {
24887 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
24888 ndr->depth++;
24889 ndr_print_WERROR(ndr, "result", r->out.result);
24890 ndr->depth--;
24892 ndr->depth--;
24895 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
24897 if (flags & NDR_IN) {
24899 if (flags & NDR_OUT) {
24900 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24902 return NDR_ERR_SUCCESS;
24905 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
24907 if (flags & NDR_IN) {
24909 if (flags & NDR_OUT) {
24910 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24912 return NDR_ERR_SUCCESS;
24915 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
24917 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
24918 ndr->depth++;
24919 if (flags & NDR_SET_VALUES) {
24920 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24922 if (flags & NDR_IN) {
24923 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
24924 ndr->depth++;
24925 ndr->depth--;
24927 if (flags & NDR_OUT) {
24928 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
24929 ndr->depth++;
24930 ndr_print_WERROR(ndr, "result", r->out.result);
24931 ndr->depth--;
24933 ndr->depth--;
24936 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
24938 if (flags & NDR_IN) {
24939 if (r->in.handle == NULL) {
24940 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24942 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24944 if (flags & NDR_OUT) {
24945 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24947 return NDR_ERR_SUCCESS;
24950 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
24952 TALLOC_CTX *_mem_save_handle_0;
24953 if (flags & NDR_IN) {
24954 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24955 NDR_PULL_ALLOC(ndr, r->in.handle);
24957 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24958 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24959 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24962 if (flags & NDR_OUT) {
24963 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24965 return NDR_ERR_SUCCESS;
24968 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
24970 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
24971 ndr->depth++;
24972 if (flags & NDR_SET_VALUES) {
24973 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24975 if (flags & NDR_IN) {
24976 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
24977 ndr->depth++;
24978 ndr_print_ptr(ndr, "handle", r->in.handle);
24979 ndr->depth++;
24980 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24981 ndr->depth--;
24982 ndr->depth--;
24984 if (flags & NDR_OUT) {
24985 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
24986 ndr->depth++;
24987 ndr_print_WERROR(ndr, "result", r->out.result);
24988 ndr->depth--;
24990 ndr->depth--;
24993 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24995 if (flags & NDR_IN) {
24997 if (flags & NDR_OUT) {
24998 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25000 return NDR_ERR_SUCCESS;
25003 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25005 if (flags & NDR_IN) {
25007 if (flags & NDR_OUT) {
25008 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25010 return NDR_ERR_SUCCESS;
25013 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25015 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25016 ndr->depth++;
25017 if (flags & NDR_SET_VALUES) {
25018 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25020 if (flags & NDR_IN) {
25021 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25022 ndr->depth++;
25023 ndr->depth--;
25025 if (flags & NDR_OUT) {
25026 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25027 ndr->depth++;
25028 ndr_print_WERROR(ndr, "result", r->out.result);
25029 ndr->depth--;
25031 ndr->depth--;
25034 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
25036 if (flags & NDR_IN) {
25037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25040 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));
25041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
25042 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
25043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25044 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25045 if (r->in.buffer) {
25046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25047 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
25050 if (flags & NDR_OUT) {
25051 if (r->out.handle == NULL) {
25052 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25054 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25055 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25057 return NDR_ERR_SUCCESS;
25060 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
25062 uint32_t _ptr_buffer;
25063 TALLOC_CTX *_mem_save_buffer_0;
25064 TALLOC_CTX *_mem_save_handle_0;
25065 if (flags & NDR_IN) {
25066 ZERO_STRUCT(r->out);
25068 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
25069 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
25070 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
25071 return 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));
25073 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
25074 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));
25075 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
25076 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
25077 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
25078 if (r->in.bufsize > 512) {
25079 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
25081 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25082 if (_ptr_buffer) {
25083 NDR_PULL_ALLOC(ndr, r->in.buffer);
25084 } else {
25085 r->in.buffer = NULL;
25087 if (r->in.buffer) {
25088 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25089 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25090 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25091 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25092 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25095 NDR_PULL_ALLOC(ndr, r->out.handle);
25096 ZERO_STRUCTP(r->out.handle);
25097 if (r->in.buffer) {
25098 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
25101 if (flags & NDR_OUT) {
25102 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25103 NDR_PULL_ALLOC(ndr, r->out.handle);
25105 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25106 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25107 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25108 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25109 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25111 return NDR_ERR_SUCCESS;
25114 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
25116 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
25117 ndr->depth++;
25118 if (flags & NDR_SET_VALUES) {
25119 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25121 if (flags & NDR_IN) {
25122 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
25123 ndr->depth++;
25124 ndr_print_string(ndr, "server_name", r->in.server_name);
25125 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
25126 ndr_print_winreg_Type(ndr, "type", r->in.type);
25127 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
25128 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25129 ndr->depth++;
25130 if (r->in.buffer) {
25131 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
25133 ndr->depth--;
25134 ndr->depth--;
25136 if (flags & NDR_OUT) {
25137 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
25138 ndr->depth++;
25139 ndr_print_ptr(ndr, "handle", r->out.handle);
25140 ndr->depth++;
25141 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25142 ndr->depth--;
25143 ndr_print_WERROR(ndr, "result", r->out.result);
25144 ndr->depth--;
25146 ndr->depth--;
25149 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
25151 if (flags & NDR_IN) {
25152 if (r->in.handle == NULL) {
25153 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25155 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25156 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
25157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25158 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25159 if (r->in.buffer) {
25160 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25161 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
25164 if (flags & NDR_OUT) {
25165 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25167 return NDR_ERR_SUCCESS;
25170 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
25172 uint32_t _ptr_buffer;
25173 TALLOC_CTX *_mem_save_handle_0;
25174 TALLOC_CTX *_mem_save_buffer_0;
25175 if (flags & NDR_IN) {
25176 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25177 NDR_PULL_ALLOC(ndr, r->in.handle);
25179 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25180 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25181 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25183 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
25184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
25185 if (r->in.bufsize > 512) {
25186 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
25188 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25189 if (_ptr_buffer) {
25190 NDR_PULL_ALLOC(ndr, r->in.buffer);
25191 } else {
25192 r->in.buffer = NULL;
25194 if (r->in.buffer) {
25195 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25196 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25197 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25198 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25199 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25202 if (r->in.buffer) {
25203 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
25206 if (flags & NDR_OUT) {
25207 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25209 return NDR_ERR_SUCCESS;
25212 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
25214 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
25215 ndr->depth++;
25216 if (flags & NDR_SET_VALUES) {
25217 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25219 if (flags & NDR_IN) {
25220 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
25221 ndr->depth++;
25222 ndr_print_ptr(ndr, "handle", r->in.handle);
25223 ndr->depth++;
25224 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25225 ndr->depth--;
25226 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
25227 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
25228 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25229 ndr->depth++;
25230 if (r->in.buffer) {
25231 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
25233 ndr->depth--;
25234 ndr->depth--;
25236 if (flags & NDR_OUT) {
25237 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
25238 ndr->depth++;
25239 ndr_print_WERROR(ndr, "result", r->out.result);
25240 ndr->depth--;
25242 ndr->depth--;
25245 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
25247 if (flags & NDR_IN) {
25248 if (r->in.handle == NULL) {
25249 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25251 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25253 if (flags & NDR_OUT) {
25254 if (r->out.handle == NULL) {
25255 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25257 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25258 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25260 return NDR_ERR_SUCCESS;
25263 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
25265 TALLOC_CTX *_mem_save_handle_0;
25266 if (flags & NDR_IN) {
25267 ZERO_STRUCT(r->out);
25269 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25270 NDR_PULL_ALLOC(ndr, r->in.handle);
25272 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25273 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25274 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25276 NDR_PULL_ALLOC(ndr, r->out.handle);
25277 *r->out.handle = *r->in.handle;
25279 if (flags & NDR_OUT) {
25280 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25281 NDR_PULL_ALLOC(ndr, r->out.handle);
25283 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25284 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25285 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25287 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25289 return NDR_ERR_SUCCESS;
25292 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
25294 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
25295 ndr->depth++;
25296 if (flags & NDR_SET_VALUES) {
25297 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25299 if (flags & NDR_IN) {
25300 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
25301 ndr->depth++;
25302 ndr_print_ptr(ndr, "handle", r->in.handle);
25303 ndr->depth++;
25304 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25305 ndr->depth--;
25306 ndr->depth--;
25308 if (flags & NDR_OUT) {
25309 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
25310 ndr->depth++;
25311 ndr_print_ptr(ndr, "handle", r->out.handle);
25312 ndr->depth++;
25313 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25314 ndr->depth--;
25315 ndr_print_WERROR(ndr, "result", r->out.result);
25316 ndr->depth--;
25318 ndr->depth--;
25321 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
25323 if (flags & NDR_IN) {
25325 if (flags & NDR_OUT) {
25326 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25328 return NDR_ERR_SUCCESS;
25331 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
25333 if (flags & NDR_IN) {
25335 if (flags & NDR_OUT) {
25336 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25338 return NDR_ERR_SUCCESS;
25341 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
25343 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
25344 ndr->depth++;
25345 if (flags & NDR_SET_VALUES) {
25346 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25348 if (flags & NDR_IN) {
25349 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
25350 ndr->depth++;
25351 ndr->depth--;
25353 if (flags & NDR_OUT) {
25354 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
25355 ndr->depth++;
25356 ndr_print_WERROR(ndr, "result", r->out.result);
25357 ndr->depth--;
25359 ndr->depth--;
25362 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
25364 if (flags & NDR_IN) {
25366 if (flags & NDR_OUT) {
25367 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25369 return NDR_ERR_SUCCESS;
25372 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
25374 if (flags & NDR_IN) {
25376 if (flags & NDR_OUT) {
25377 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25379 return NDR_ERR_SUCCESS;
25382 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
25384 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
25385 ndr->depth++;
25386 if (flags & NDR_SET_VALUES) {
25387 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25389 if (flags & NDR_IN) {
25390 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
25391 ndr->depth++;
25392 ndr->depth--;
25394 if (flags & NDR_OUT) {
25395 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
25396 ndr->depth++;
25397 ndr_print_WERROR(ndr, "result", r->out.result);
25398 ndr->depth--;
25400 ndr->depth--;
25403 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
25405 if (flags & NDR_IN) {
25407 if (flags & NDR_OUT) {
25408 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25410 return NDR_ERR_SUCCESS;
25413 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
25415 if (flags & NDR_IN) {
25417 if (flags & NDR_OUT) {
25418 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25420 return NDR_ERR_SUCCESS;
25423 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
25425 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
25426 ndr->depth++;
25427 if (flags & NDR_SET_VALUES) {
25428 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25430 if (flags & NDR_IN) {
25431 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
25432 ndr->depth++;
25433 ndr->depth--;
25435 if (flags & NDR_OUT) {
25436 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
25437 ndr->depth++;
25438 ndr_print_WERROR(ndr, "result", r->out.result);
25439 ndr->depth--;
25441 ndr->depth--;
25444 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
25446 if (flags & NDR_IN) {
25448 if (flags & NDR_OUT) {
25449 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25451 return NDR_ERR_SUCCESS;
25454 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
25456 if (flags & NDR_IN) {
25458 if (flags & NDR_OUT) {
25459 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25461 return NDR_ERR_SUCCESS;
25464 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
25466 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
25467 ndr->depth++;
25468 if (flags & NDR_SET_VALUES) {
25469 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25471 if (flags & NDR_IN) {
25472 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
25473 ndr->depth++;
25474 ndr->depth--;
25476 if (flags & NDR_OUT) {
25477 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
25478 ndr->depth++;
25479 ndr_print_WERROR(ndr, "result", r->out.result);
25480 ndr->depth--;
25482 ndr->depth--;
25485 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
25487 if (flags & NDR_IN) {
25488 if (r->in.handle == NULL) {
25489 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25491 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25492 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
25493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
25494 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
25495 if (r->in.local_machine) {
25496 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
25497 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
25499 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));
25501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
25502 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
25503 if (r->in.notify_options) {
25504 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
25507 if (flags & NDR_OUT) {
25508 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25510 return NDR_ERR_SUCCESS;
25513 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
25515 uint32_t _ptr_local_machine;
25516 uint32_t _ptr_notify_options;
25517 TALLOC_CTX *_mem_save_handle_0;
25518 TALLOC_CTX *_mem_save_local_machine_0;
25519 TALLOC_CTX *_mem_save_notify_options_0;
25520 if (flags & NDR_IN) {
25521 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25522 NDR_PULL_ALLOC(ndr, r->in.handle);
25524 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25525 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25526 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25528 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
25529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
25530 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
25531 if (_ptr_local_machine) {
25532 NDR_PULL_ALLOC(ndr, r->in.local_machine);
25533 } else {
25534 r->in.local_machine = NULL;
25536 if (r->in.local_machine) {
25537 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
25538 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
25539 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
25540 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
25541 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
25542 return 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));
25544 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
25545 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));
25546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
25548 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
25549 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
25550 if (_ptr_notify_options) {
25551 NDR_PULL_ALLOC(ndr, r->in.notify_options);
25552 } else {
25553 r->in.notify_options = NULL;
25555 if (r->in.notify_options) {
25556 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
25557 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
25558 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
25559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
25562 if (flags & NDR_OUT) {
25563 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25565 return NDR_ERR_SUCCESS;
25568 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
25570 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
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_RemoteFindFirstPrinterChangeNotifyEx");
25577 ndr->depth++;
25578 ndr_print_ptr(ndr, "handle", r->in.handle);
25579 ndr->depth++;
25580 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25581 ndr->depth--;
25582 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
25583 ndr_print_uint32(ndr, "options", r->in.options);
25584 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
25585 ndr->depth++;
25586 if (r->in.local_machine) {
25587 ndr_print_string(ndr, "local_machine", r->in.local_machine);
25589 ndr->depth--;
25590 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
25591 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
25592 ndr->depth++;
25593 if (r->in.notify_options) {
25594 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
25596 ndr->depth--;
25597 ndr->depth--;
25599 if (flags & NDR_OUT) {
25600 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
25601 ndr->depth++;
25602 ndr_print_WERROR(ndr, "result", r->out.result);
25603 ndr->depth--;
25605 ndr->depth--;
25608 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
25610 if (flags & NDR_IN) {
25611 if (r->in.handle == NULL) {
25612 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25614 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
25616 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
25617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
25618 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
25619 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
25621 if (flags & NDR_OUT) {
25622 if (r->out.reply_result == NULL) {
25623 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25625 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
25626 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25628 return NDR_ERR_SUCCESS;
25631 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
25633 TALLOC_CTX *_mem_save_handle_0;
25634 TALLOC_CTX *_mem_save_reply_result_0;
25635 if (flags & NDR_IN) {
25636 ZERO_STRUCT(r->out);
25638 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25639 NDR_PULL_ALLOC(ndr, r->in.handle);
25641 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25642 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25643 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25645 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
25646 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
25647 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
25648 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
25649 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
25650 NDR_PULL_ALLOC(ndr, r->out.reply_result);
25651 ZERO_STRUCTP(r->out.reply_result);
25653 if (flags & NDR_OUT) {
25654 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25655 NDR_PULL_ALLOC(ndr, r->out.reply_result);
25657 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
25658 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
25659 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
25660 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
25661 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25663 return NDR_ERR_SUCCESS;
25666 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
25668 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
25669 ndr->depth++;
25670 if (flags & NDR_SET_VALUES) {
25671 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25673 if (flags & NDR_IN) {
25674 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
25675 ndr->depth++;
25676 ndr_print_ptr(ndr, "handle", r->in.handle);
25677 ndr->depth++;
25678 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25679 ndr->depth--;
25680 ndr_print_uint32(ndr, "color", r->in.color);
25681 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
25682 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
25683 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
25684 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
25685 ndr->depth--;
25687 if (flags & NDR_OUT) {
25688 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
25689 ndr->depth++;
25690 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
25691 ndr->depth++;
25692 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
25693 ndr->depth--;
25694 ndr_print_WERROR(ndr, "result", r->out.result);
25695 ndr->depth--;
25697 ndr->depth--;
25700 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
25702 if (flags & NDR_IN) {
25703 if (r->in.handle == NULL) {
25704 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25706 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
25708 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
25709 if (r->in.options) {
25710 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
25713 if (flags & NDR_OUT) {
25714 if (r->out.info == NULL) {
25715 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25717 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
25718 if (*r->out.info) {
25719 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
25721 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25723 return NDR_ERR_SUCCESS;
25726 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
25728 uint32_t _ptr_options;
25729 uint32_t _ptr_info;
25730 TALLOC_CTX *_mem_save_handle_0;
25731 TALLOC_CTX *_mem_save_options_0;
25732 TALLOC_CTX *_mem_save_info_0;
25733 TALLOC_CTX *_mem_save_info_1;
25734 if (flags & NDR_IN) {
25735 ZERO_STRUCT(r->out);
25737 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25738 NDR_PULL_ALLOC(ndr, r->in.handle);
25740 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25741 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25742 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25744 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
25745 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
25746 if (_ptr_options) {
25747 NDR_PULL_ALLOC(ndr, r->in.options);
25748 } else {
25749 r->in.options = NULL;
25751 if (r->in.options) {
25752 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
25753 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
25754 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
25755 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
25757 NDR_PULL_ALLOC(ndr, r->out.info);
25758 ZERO_STRUCTP(r->out.info);
25760 if (flags & NDR_OUT) {
25761 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25762 NDR_PULL_ALLOC(ndr, r->out.info);
25764 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25765 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
25766 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25767 if (_ptr_info) {
25768 NDR_PULL_ALLOC(ndr, *r->out.info);
25769 } else {
25770 *r->out.info = NULL;
25772 if (*r->out.info) {
25773 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
25774 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
25775 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
25776 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
25778 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
25779 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25781 return NDR_ERR_SUCCESS;
25784 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
25786 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
25787 ndr->depth++;
25788 if (flags & NDR_SET_VALUES) {
25789 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25791 if (flags & NDR_IN) {
25792 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
25793 ndr->depth++;
25794 ndr_print_ptr(ndr, "handle", r->in.handle);
25795 ndr->depth++;
25796 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25797 ndr->depth--;
25798 ndr_print_uint32(ndr, "change_low", r->in.change_low);
25799 ndr_print_ptr(ndr, "options", r->in.options);
25800 ndr->depth++;
25801 if (r->in.options) {
25802 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
25804 ndr->depth--;
25805 ndr->depth--;
25807 if (flags & NDR_OUT) {
25808 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
25809 ndr->depth++;
25810 ndr_print_ptr(ndr, "info", r->out.info);
25811 ndr->depth++;
25812 ndr_print_ptr(ndr, "info", *r->out.info);
25813 ndr->depth++;
25814 if (*r->out.info) {
25815 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
25817 ndr->depth--;
25818 ndr->depth--;
25819 ndr_print_WERROR(ndr, "result", r->out.result);
25820 ndr->depth--;
25822 ndr->depth--;
25825 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
25827 if (flags & NDR_IN) {
25829 if (flags & NDR_OUT) {
25830 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25832 return NDR_ERR_SUCCESS;
25835 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
25837 if (flags & NDR_IN) {
25839 if (flags & NDR_OUT) {
25840 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25842 return NDR_ERR_SUCCESS;
25845 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
25847 ndr_print_struct(ndr, name, "spoolss_44");
25848 ndr->depth++;
25849 if (flags & NDR_SET_VALUES) {
25850 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25852 if (flags & NDR_IN) {
25853 ndr_print_struct(ndr, "in", "spoolss_44");
25854 ndr->depth++;
25855 ndr->depth--;
25857 if (flags & NDR_OUT) {
25858 ndr_print_struct(ndr, "out", "spoolss_44");
25859 ndr->depth++;
25860 ndr_print_WERROR(ndr, "result", r->out.result);
25861 ndr->depth--;
25863 ndr->depth--;
25866 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
25868 if (flags & NDR_IN) {
25869 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
25870 if (r->in.printername) {
25871 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
25872 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
25874 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25876 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
25877 if (r->in.datatype) {
25878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
25879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
25881 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25883 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
25884 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
25885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25886 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
25887 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
25889 if (flags & NDR_OUT) {
25890 if (r->out.handle == NULL) {
25891 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25893 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25894 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25896 return NDR_ERR_SUCCESS;
25899 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
25901 uint32_t _ptr_printername;
25902 uint32_t _ptr_datatype;
25903 TALLOC_CTX *_mem_save_printername_0;
25904 TALLOC_CTX *_mem_save_datatype_0;
25905 TALLOC_CTX *_mem_save_handle_0;
25906 if (flags & NDR_IN) {
25907 ZERO_STRUCT(r->out);
25909 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
25910 if (_ptr_printername) {
25911 NDR_PULL_ALLOC(ndr, r->in.printername);
25912 } else {
25913 r->in.printername = NULL;
25915 if (r->in.printername) {
25916 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25917 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
25918 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
25919 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
25920 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
25921 return 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));
25923 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
25924 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
25925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
25927 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
25928 if (_ptr_datatype) {
25929 NDR_PULL_ALLOC(ndr, r->in.datatype);
25930 } else {
25931 r->in.datatype = NULL;
25933 if (r->in.datatype) {
25934 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
25935 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
25936 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
25937 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
25938 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
25939 return 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));
25941 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
25942 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
25943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
25945 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
25946 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
25947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25948 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
25949 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
25950 NDR_PULL_ALLOC(ndr, r->out.handle);
25951 ZERO_STRUCTP(r->out.handle);
25953 if (flags & NDR_OUT) {
25954 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25955 NDR_PULL_ALLOC(ndr, r->out.handle);
25957 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25958 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25959 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25961 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25963 return NDR_ERR_SUCCESS;
25966 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
25968 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
25969 ndr->depth++;
25970 if (flags & NDR_SET_VALUES) {
25971 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25973 if (flags & NDR_IN) {
25974 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
25975 ndr->depth++;
25976 ndr_print_ptr(ndr, "printername", r->in.printername);
25977 ndr->depth++;
25978 if (r->in.printername) {
25979 ndr_print_string(ndr, "printername", r->in.printername);
25981 ndr->depth--;
25982 ndr_print_ptr(ndr, "datatype", r->in.datatype);
25983 ndr->depth++;
25984 if (r->in.datatype) {
25985 ndr_print_string(ndr, "datatype", r->in.datatype);
25987 ndr->depth--;
25988 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
25989 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
25990 ndr_print_uint32(ndr, "level", r->in.level);
25991 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
25992 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
25993 ndr->depth--;
25995 if (flags & NDR_OUT) {
25996 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
25997 ndr->depth++;
25998 ndr_print_ptr(ndr, "handle", r->out.handle);
25999 ndr->depth++;
26000 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26001 ndr->depth--;
26002 ndr_print_WERROR(ndr, "result", r->out.result);
26003 ndr->depth--;
26005 ndr->depth--;
26008 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
26010 if (flags & NDR_IN) {
26011 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26012 if (r->in.server) {
26013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26016 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26018 if (r->in.info_ctr == NULL) {
26019 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26021 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26022 if (r->in.devmode_ctr == NULL) {
26023 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26025 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26026 if (r->in.secdesc_ctr == NULL) {
26027 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26029 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
26030 if (r->in.userlevel_ctr == NULL) {
26031 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26033 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
26035 if (flags & NDR_OUT) {
26036 if (r->out.handle == NULL) {
26037 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26039 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26040 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26042 return NDR_ERR_SUCCESS;
26045 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
26047 uint32_t _ptr_server;
26048 TALLOC_CTX *_mem_save_server_0;
26049 TALLOC_CTX *_mem_save_info_ctr_0;
26050 TALLOC_CTX *_mem_save_devmode_ctr_0;
26051 TALLOC_CTX *_mem_save_secdesc_ctr_0;
26052 TALLOC_CTX *_mem_save_userlevel_ctr_0;
26053 TALLOC_CTX *_mem_save_handle_0;
26054 if (flags & NDR_IN) {
26055 ZERO_STRUCT(r->out);
26057 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26058 if (_ptr_server) {
26059 NDR_PULL_ALLOC(ndr, r->in.server);
26060 } else {
26061 r->in.server = NULL;
26063 if (r->in.server) {
26064 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26065 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26066 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26067 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26068 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
26069 return 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));
26071 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
26072 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
26073 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26075 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26076 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
26078 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26079 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
26080 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26082 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26083 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
26085 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26086 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
26087 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26089 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26090 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
26092 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26093 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
26094 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
26095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26096 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26097 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
26099 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26100 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
26101 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
26102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26103 NDR_PULL_ALLOC(ndr, r->out.handle);
26104 ZERO_STRUCTP(r->out.handle);
26106 if (flags & NDR_OUT) {
26107 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26108 NDR_PULL_ALLOC(ndr, r->out.handle);
26110 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26111 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26112 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26114 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26116 return NDR_ERR_SUCCESS;
26119 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
26121 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
26122 ndr->depth++;
26123 if (flags & NDR_SET_VALUES) {
26124 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26126 if (flags & NDR_IN) {
26127 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
26128 ndr->depth++;
26129 ndr_print_ptr(ndr, "server", r->in.server);
26130 ndr->depth++;
26131 if (r->in.server) {
26132 ndr_print_string(ndr, "server", r->in.server);
26134 ndr->depth--;
26135 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
26136 ndr->depth++;
26137 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
26138 ndr->depth--;
26139 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
26140 ndr->depth++;
26141 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
26142 ndr->depth--;
26143 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
26144 ndr->depth++;
26145 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
26146 ndr->depth--;
26147 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
26148 ndr->depth++;
26149 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
26150 ndr->depth--;
26151 ndr->depth--;
26153 if (flags & NDR_OUT) {
26154 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
26155 ndr->depth++;
26156 ndr_print_ptr(ndr, "handle", r->out.handle);
26157 ndr->depth++;
26158 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26159 ndr->depth--;
26160 ndr_print_WERROR(ndr, "result", r->out.result);
26161 ndr->depth--;
26163 ndr->depth--;
26166 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
26168 if (flags & NDR_IN) {
26170 if (flags & NDR_OUT) {
26171 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26173 return NDR_ERR_SUCCESS;
26176 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
26178 if (flags & NDR_IN) {
26180 if (flags & NDR_OUT) {
26181 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26183 return NDR_ERR_SUCCESS;
26186 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
26188 ndr_print_struct(ndr, name, "spoolss_47");
26189 ndr->depth++;
26190 if (flags & NDR_SET_VALUES) {
26191 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26193 if (flags & NDR_IN) {
26194 ndr_print_struct(ndr, "in", "spoolss_47");
26195 ndr->depth++;
26196 ndr->depth--;
26198 if (flags & NDR_OUT) {
26199 ndr_print_struct(ndr, "out", "spoolss_47");
26200 ndr->depth++;
26201 ndr_print_WERROR(ndr, "result", r->out.result);
26202 ndr->depth--;
26204 ndr->depth--;
26207 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
26209 if (flags & NDR_IN) {
26210 if (r->in.handle == NULL) {
26211 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26213 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
26215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
26216 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
26218 if (flags & NDR_OUT) {
26219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
26220 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
26221 if (r->out.value_needed == NULL) {
26222 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
26225 if (r->out.type == NULL) {
26226 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26228 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
26230 uint32_t _flags_save_uint8 = ndr->flags;
26231 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
26232 if (r->out.data == NULL) {
26233 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
26236 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
26237 ndr->flags = _flags_save_uint8;
26239 if (r->out.data_needed == NULL) {
26240 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
26243 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26245 return NDR_ERR_SUCCESS;
26248 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
26250 TALLOC_CTX *_mem_save_handle_0;
26251 TALLOC_CTX *_mem_save_value_needed_0;
26252 TALLOC_CTX *_mem_save_type_0;
26253 TALLOC_CTX *_mem_save_data_needed_0;
26254 if (flags & NDR_IN) {
26255 ZERO_STRUCT(r->out);
26257 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26258 NDR_PULL_ALLOC(ndr, r->in.handle);
26260 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26261 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26262 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26264 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
26265 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
26266 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
26267 NDR_PULL_ALLOC(ndr, r->out.value_needed);
26268 ZERO_STRUCTP(r->out.value_needed);
26269 NDR_PULL_ALLOC(ndr, r->out.type);
26270 ZERO_STRUCTP(r->out.type);
26271 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
26272 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
26273 NDR_PULL_ALLOC(ndr, r->out.data_needed);
26274 ZERO_STRUCTP(r->out.data_needed);
26276 if (flags & NDR_OUT) {
26277 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
26278 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));
26279 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26280 NDR_PULL_ALLOC(ndr, r->out.value_needed);
26282 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26283 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
26284 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
26285 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
26286 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26287 NDR_PULL_ALLOC(ndr, r->out.type);
26289 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26290 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
26291 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
26292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
26294 uint32_t _flags_save_uint8 = ndr->flags;
26295 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
26296 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
26297 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26298 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
26300 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
26301 ndr->flags = _flags_save_uint8;
26303 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26304 NDR_PULL_ALLOC(ndr, r->out.data_needed);
26306 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26307 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
26308 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
26309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
26310 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26311 if (r->out.value_name) {
26312 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
26314 if (r->out.data) {
26315 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
26318 return NDR_ERR_SUCCESS;
26321 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
26323 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
26324 ndr->depth++;
26325 if (flags & NDR_SET_VALUES) {
26326 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26328 if (flags & NDR_IN) {
26329 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
26330 ndr->depth++;
26331 ndr_print_ptr(ndr, "handle", r->in.handle);
26332 ndr->depth++;
26333 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26334 ndr->depth--;
26335 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
26336 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
26337 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
26338 ndr->depth--;
26340 if (flags & NDR_OUT) {
26341 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
26342 ndr->depth++;
26343 ndr_print_string(ndr, "value_name", r->out.value_name);
26344 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
26345 ndr->depth++;
26346 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
26347 ndr->depth--;
26348 ndr_print_ptr(ndr, "type", r->out.type);
26349 ndr->depth++;
26350 ndr_print_winreg_Type(ndr, "type", *r->out.type);
26351 ndr->depth--;
26352 ndr_print_ptr(ndr, "data", r->out.data);
26353 ndr->depth++;
26354 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
26355 ndr->depth--;
26356 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
26357 ndr->depth++;
26358 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
26359 ndr->depth--;
26360 ndr_print_WERROR(ndr, "result", r->out.result);
26361 ndr->depth--;
26363 ndr->depth--;
26366 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
26368 if (flags & NDR_IN) {
26369 if (r->in.handle == NULL) {
26370 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26372 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26376 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));
26378 if (flags & NDR_OUT) {
26379 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26381 return NDR_ERR_SUCCESS;
26384 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
26386 TALLOC_CTX *_mem_save_handle_0;
26387 if (flags & NDR_IN) {
26388 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26389 NDR_PULL_ALLOC(ndr, r->in.handle);
26391 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26392 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26393 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26394 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26395 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26396 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26397 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26398 return 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));
26400 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26401 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));
26403 if (flags & NDR_OUT) {
26404 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26406 return NDR_ERR_SUCCESS;
26409 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
26411 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
26412 ndr->depth++;
26413 if (flags & NDR_SET_VALUES) {
26414 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26416 if (flags & NDR_IN) {
26417 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
26418 ndr->depth++;
26419 ndr_print_ptr(ndr, "handle", r->in.handle);
26420 ndr->depth++;
26421 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26422 ndr->depth--;
26423 ndr_print_string(ndr, "value_name", r->in.value_name);
26424 ndr->depth--;
26426 if (flags & NDR_OUT) {
26427 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
26428 ndr->depth++;
26429 ndr_print_WERROR(ndr, "result", r->out.result);
26430 ndr->depth--;
26432 ndr->depth--;
26435 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
26437 if (flags & NDR_IN) {
26439 if (flags & NDR_OUT) {
26440 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26442 return NDR_ERR_SUCCESS;
26445 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
26447 if (flags & NDR_IN) {
26449 if (flags & NDR_OUT) {
26450 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26452 return NDR_ERR_SUCCESS;
26455 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
26457 ndr_print_struct(ndr, name, "spoolss_4a");
26458 ndr->depth++;
26459 if (flags & NDR_SET_VALUES) {
26460 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26462 if (flags & NDR_IN) {
26463 ndr_print_struct(ndr, "in", "spoolss_4a");
26464 ndr->depth++;
26465 ndr->depth--;
26467 if (flags & NDR_OUT) {
26468 ndr_print_struct(ndr, "out", "spoolss_4a");
26469 ndr->depth++;
26470 ndr_print_WERROR(ndr, "result", r->out.result);
26471 ndr->depth--;
26473 ndr->depth--;
26476 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
26478 if (flags & NDR_IN) {
26480 if (flags & NDR_OUT) {
26481 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26483 return NDR_ERR_SUCCESS;
26486 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
26488 if (flags & NDR_IN) {
26490 if (flags & NDR_OUT) {
26491 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26493 return NDR_ERR_SUCCESS;
26496 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
26498 ndr_print_struct(ndr, name, "spoolss_4b");
26499 ndr->depth++;
26500 if (flags & NDR_SET_VALUES) {
26501 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26503 if (flags & NDR_IN) {
26504 ndr_print_struct(ndr, "in", "spoolss_4b");
26505 ndr->depth++;
26506 ndr->depth--;
26508 if (flags & NDR_OUT) {
26509 ndr_print_struct(ndr, "out", "spoolss_4b");
26510 ndr->depth++;
26511 ndr_print_WERROR(ndr, "result", r->out.result);
26512 ndr->depth--;
26514 ndr->depth--;
26517 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
26519 if (flags & NDR_IN) {
26521 if (flags & NDR_OUT) {
26522 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26524 return NDR_ERR_SUCCESS;
26527 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
26529 if (flags & NDR_IN) {
26531 if (flags & NDR_OUT) {
26532 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26534 return NDR_ERR_SUCCESS;
26537 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
26539 ndr_print_struct(ndr, name, "spoolss_4c");
26540 ndr->depth++;
26541 if (flags & NDR_SET_VALUES) {
26542 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26544 if (flags & NDR_IN) {
26545 ndr_print_struct(ndr, "in", "spoolss_4c");
26546 ndr->depth++;
26547 ndr->depth--;
26549 if (flags & NDR_OUT) {
26550 ndr_print_struct(ndr, "out", "spoolss_4c");
26551 ndr->depth++;
26552 ndr_print_WERROR(ndr, "result", r->out.result);
26553 ndr->depth--;
26555 ndr->depth--;
26558 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
26560 if (flags & NDR_IN) {
26561 if (r->in.handle == NULL) {
26562 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26564 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26568 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));
26569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26571 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26572 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));
26573 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
26574 if (r->in.buffer == NULL) {
26575 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26577 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26578 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
26579 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26581 if (flags & NDR_OUT) {
26582 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26584 return NDR_ERR_SUCCESS;
26587 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
26589 TALLOC_CTX *_mem_save_handle_0;
26590 if (flags & NDR_IN) {
26591 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26592 NDR_PULL_ALLOC(ndr, r->in.handle);
26594 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26595 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26596 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26597 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26598 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26599 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26600 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26601 return 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));
26603 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26604 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));
26605 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26606 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26607 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26608 return 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));
26610 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26611 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));
26612 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
26613 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26614 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26615 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26617 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26618 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26619 if (r->in.buffer) {
26620 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
26623 if (flags & NDR_OUT) {
26624 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26626 return NDR_ERR_SUCCESS;
26629 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
26631 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
26632 ndr->depth++;
26633 if (flags & NDR_SET_VALUES) {
26634 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26636 if (flags & NDR_IN) {
26637 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
26638 ndr->depth++;
26639 ndr_print_ptr(ndr, "handle", r->in.handle);
26640 ndr->depth++;
26641 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26642 ndr->depth--;
26643 ndr_print_string(ndr, "key_name", r->in.key_name);
26644 ndr_print_string(ndr, "value_name", r->in.value_name);
26645 ndr_print_winreg_Type(ndr, "type", r->in.type);
26646 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26647 ndr->depth++;
26648 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
26649 ndr->depth--;
26650 ndr_print_uint32(ndr, "offered", r->in.offered);
26651 ndr->depth--;
26653 if (flags & NDR_OUT) {
26654 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
26655 ndr->depth++;
26656 ndr_print_WERROR(ndr, "result", r->out.result);
26657 ndr->depth--;
26659 ndr->depth--;
26662 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
26664 if (flags & NDR_IN) {
26665 if (r->in.handle == NULL) {
26666 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26668 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26671 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26672 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));
26673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26676 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));
26677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26679 if (flags & NDR_OUT) {
26680 if (r->out.type == NULL) {
26681 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26683 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
26684 if (r->out.buffer == NULL) {
26685 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26687 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26688 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
26689 if (r->out.needed == NULL) {
26690 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26693 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26695 return NDR_ERR_SUCCESS;
26698 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
26700 TALLOC_CTX *_mem_save_handle_0;
26701 TALLOC_CTX *_mem_save_type_0;
26702 TALLOC_CTX *_mem_save_needed_0;
26703 if (flags & NDR_IN) {
26704 ZERO_STRUCT(r->out);
26706 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26707 NDR_PULL_ALLOC(ndr, r->in.handle);
26709 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26710 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26711 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26713 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26714 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26715 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26716 return 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));
26718 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26719 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));
26720 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26721 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26722 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26723 return 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));
26725 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26726 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));
26727 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26728 NDR_PULL_ALLOC(ndr, r->out.type);
26729 ZERO_STRUCTP(r->out.type);
26730 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
26731 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
26732 NDR_PULL_ALLOC(ndr, r->out.needed);
26733 ZERO_STRUCTP(r->out.needed);
26735 if (flags & NDR_OUT) {
26736 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26737 NDR_PULL_ALLOC(ndr, r->out.type);
26739 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26740 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
26741 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
26742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
26743 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
26744 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26745 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
26747 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
26748 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26749 NDR_PULL_ALLOC(ndr, r->out.needed);
26751 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26752 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26753 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26754 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26755 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26756 if (r->out.buffer) {
26757 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
26760 return NDR_ERR_SUCCESS;
26763 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
26765 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
26766 ndr->depth++;
26767 if (flags & NDR_SET_VALUES) {
26768 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26770 if (flags & NDR_IN) {
26771 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
26772 ndr->depth++;
26773 ndr_print_ptr(ndr, "handle", r->in.handle);
26774 ndr->depth++;
26775 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26776 ndr->depth--;
26777 ndr_print_string(ndr, "key_name", r->in.key_name);
26778 ndr_print_string(ndr, "value_name", r->in.value_name);
26779 ndr_print_uint32(ndr, "offered", r->in.offered);
26780 ndr->depth--;
26782 if (flags & NDR_OUT) {
26783 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
26784 ndr->depth++;
26785 ndr_print_ptr(ndr, "type", r->out.type);
26786 ndr->depth++;
26787 ndr_print_winreg_Type(ndr, "type", *r->out.type);
26788 ndr->depth--;
26789 ndr_print_ptr(ndr, "buffer", r->out.buffer);
26790 ndr->depth++;
26791 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
26792 ndr->depth--;
26793 ndr_print_ptr(ndr, "needed", r->out.needed);
26794 ndr->depth++;
26795 ndr_print_uint32(ndr, "needed", *r->out.needed);
26796 ndr->depth--;
26797 ndr_print_WERROR(ndr, "result", r->out.result);
26798 ndr->depth--;
26800 ndr->depth--;
26803 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
26805 if (flags & NDR_IN) {
26806 if (r->in.handle == NULL) {
26807 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26809 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26812 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26813 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));
26814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26816 if (flags & NDR_OUT) {
26817 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
26818 if (r->out.needed == NULL) {
26819 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26822 if (r->out.count == NULL) {
26823 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
26826 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26828 return NDR_ERR_SUCCESS;
26831 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
26833 TALLOC_CTX *_mem_save_handle_0;
26834 TALLOC_CTX *_mem_save_needed_0;
26835 TALLOC_CTX *_mem_save_count_0;
26836 if (flags & NDR_IN) {
26837 ZERO_STRUCT(r->out);
26839 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26840 NDR_PULL_ALLOC(ndr, r->in.handle);
26842 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26843 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26844 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26845 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26846 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26847 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26848 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26849 return 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));
26851 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26852 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));
26853 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26854 NDR_PULL_ALLOC(ndr, r->out.needed);
26855 ZERO_STRUCTP(r->out.needed);
26856 NDR_PULL_ALLOC(ndr, r->out.count);
26857 ZERO_STRUCTP(r->out.count);
26859 if (flags & NDR_OUT) {
26860 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
26861 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26862 NDR_PULL_ALLOC(ndr, r->out.needed);
26864 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26865 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26866 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26868 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26869 NDR_PULL_ALLOC(ndr, r->out.count);
26871 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
26872 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
26873 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
26874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
26875 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26877 return NDR_ERR_SUCCESS;
26880 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
26882 uint32_t cntr_info_0;
26883 if (flags & NDR_IN) {
26884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
26886 if (flags & NDR_OUT) {
26887 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26888 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26890 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26891 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26894 return NDR_ERR_SUCCESS;
26897 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
26899 uint32_t cntr_info_0;
26900 TALLOC_CTX *_mem_save_info_0;
26901 if (flags & NDR_IN) {
26902 ZERO_STRUCT(r->out);
26904 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
26906 if (flags & NDR_OUT) {
26907 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
26908 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26909 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26910 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26911 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26913 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26914 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26918 return NDR_ERR_SUCCESS;
26921 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
26923 uint32_t cntr_info_2;
26924 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
26925 ndr->depth++;
26926 if (flags & NDR_SET_VALUES) {
26927 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26929 if (flags & NDR_IN) {
26930 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
26931 ndr->depth++;
26932 ndr_print_ptr(ndr, "handle", r->in.handle);
26933 ndr->depth++;
26934 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26935 ndr->depth--;
26936 ndr_print_string(ndr, "key_name", r->in.key_name);
26937 ndr_print_uint32(ndr, "offered", r->in.offered);
26938 ndr->depth--;
26940 if (flags & NDR_OUT) {
26941 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
26942 ndr->depth++;
26943 ndr_print_ptr(ndr, "count", r->out.count);
26944 ndr->depth++;
26945 ndr_print_uint32(ndr, "count", *r->out.count);
26946 ndr->depth--;
26947 ndr_print_ptr(ndr, "info", r->out.info);
26948 ndr->depth++;
26949 ndr_print_ptr(ndr, "info", *r->out.info);
26950 ndr->depth++;
26951 if (*r->out.info) {
26952 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
26953 ndr->depth++;
26954 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
26955 char *idx_2=NULL;
26956 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
26957 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
26958 free(idx_2);
26961 ndr->depth--;
26963 ndr->depth--;
26964 ndr->depth--;
26965 ndr_print_ptr(ndr, "needed", r->out.needed);
26966 ndr->depth++;
26967 ndr_print_uint32(ndr, "needed", *r->out.needed);
26968 ndr->depth--;
26969 ndr_print_WERROR(ndr, "result", r->out.result);
26970 ndr->depth--;
26972 ndr->depth--;
26975 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
26977 if (flags & NDR_IN) {
26978 if (r->in.handle == NULL) {
26979 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26981 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26985 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));
26986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26988 if (flags & NDR_OUT) {
26989 if (r->out._ndr_size == NULL) {
26990 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
26993 if (r->out.key_buffer == NULL) {
26994 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26997 struct ndr_push *_ndr_key_buffer;
26998 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
26999 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
27000 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
27001 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
27003 if (r->out.needed == NULL) {
27004 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27007 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27009 return NDR_ERR_SUCCESS;
27012 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
27014 TALLOC_CTX *_mem_save_handle_0;
27015 TALLOC_CTX *_mem_save__ndr_size_0;
27016 TALLOC_CTX *_mem_save_key_buffer_0;
27017 TALLOC_CTX *_mem_save_needed_0;
27018 if (flags & NDR_IN) {
27019 ZERO_STRUCT(r->out);
27021 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27022 NDR_PULL_ALLOC(ndr, r->in.handle);
27024 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27025 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27026 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27028 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27029 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27030 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27031 return 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));
27033 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27034 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));
27035 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27036 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
27037 ZERO_STRUCTP(r->out._ndr_size);
27038 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
27039 ZERO_STRUCTP(r->out.key_buffer);
27040 NDR_PULL_ALLOC(ndr, r->out.needed);
27041 ZERO_STRUCTP(r->out.needed);
27043 if (flags & NDR_OUT) {
27044 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27045 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
27047 _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
27048 NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
27049 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
27050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
27051 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27052 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
27054 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27055 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
27057 struct ndr_pull *_ndr_key_buffer;
27058 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
27059 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
27060 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
27061 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
27063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
27064 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27065 NDR_PULL_ALLOC(ndr, r->out.needed);
27067 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27068 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27069 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27071 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27073 return NDR_ERR_SUCCESS;
27076 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
27078 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
27079 ndr->depth++;
27080 if (flags & NDR_SET_VALUES) {
27081 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27083 if (flags & NDR_IN) {
27084 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
27085 ndr->depth++;
27086 ndr_print_ptr(ndr, "handle", r->in.handle);
27087 ndr->depth++;
27088 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27089 ndr->depth--;
27090 ndr_print_string(ndr, "key_name", r->in.key_name);
27091 ndr_print_uint32(ndr, "offered", r->in.offered);
27092 ndr->depth--;
27094 if (flags & NDR_OUT) {
27095 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
27096 ndr->depth++;
27097 ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
27098 ndr->depth++;
27099 ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
27100 ndr->depth--;
27101 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
27102 ndr->depth++;
27103 ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
27104 ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
27105 ndr->depth--;
27106 ndr_print_ptr(ndr, "needed", r->out.needed);
27107 ndr->depth++;
27108 ndr_print_uint32(ndr, "needed", *r->out.needed);
27109 ndr->depth--;
27110 ndr_print_WERROR(ndr, "result", r->out.result);
27111 ndr->depth--;
27113 ndr->depth--;
27116 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
27118 if (flags & NDR_IN) {
27119 if (r->in.handle == NULL) {
27120 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27122 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27126 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));
27127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27129 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27130 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));
27132 if (flags & NDR_OUT) {
27133 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27135 return NDR_ERR_SUCCESS;
27138 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
27140 TALLOC_CTX *_mem_save_handle_0;
27141 if (flags & NDR_IN) {
27142 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27143 NDR_PULL_ALLOC(ndr, r->in.handle);
27145 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27146 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27147 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27148 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27149 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27150 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27151 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27152 return 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));
27154 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27155 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));
27156 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27157 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27158 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27159 return 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));
27161 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27162 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));
27164 if (flags & NDR_OUT) {
27165 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27167 return NDR_ERR_SUCCESS;
27170 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
27172 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
27173 ndr->depth++;
27174 if (flags & NDR_SET_VALUES) {
27175 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27177 if (flags & NDR_IN) {
27178 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
27179 ndr->depth++;
27180 ndr_print_ptr(ndr, "handle", r->in.handle);
27181 ndr->depth++;
27182 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27183 ndr->depth--;
27184 ndr_print_string(ndr, "key_name", r->in.key_name);
27185 ndr_print_string(ndr, "value_name", r->in.value_name);
27186 ndr->depth--;
27188 if (flags & NDR_OUT) {
27189 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
27190 ndr->depth++;
27191 ndr_print_WERROR(ndr, "result", r->out.result);
27192 ndr->depth--;
27194 ndr->depth--;
27197 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
27199 if (flags & NDR_IN) {
27200 if (r->in.handle == NULL) {
27201 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27203 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27207 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));
27209 if (flags & NDR_OUT) {
27210 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27212 return NDR_ERR_SUCCESS;
27215 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
27217 TALLOC_CTX *_mem_save_handle_0;
27218 if (flags & NDR_IN) {
27219 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27220 NDR_PULL_ALLOC(ndr, r->in.handle);
27222 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27223 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27224 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27225 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27226 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27227 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27228 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27229 return 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));
27231 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27232 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));
27234 if (flags & NDR_OUT) {
27235 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27237 return NDR_ERR_SUCCESS;
27240 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
27242 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
27243 ndr->depth++;
27244 if (flags & NDR_SET_VALUES) {
27245 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27247 if (flags & NDR_IN) {
27248 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
27249 ndr->depth++;
27250 ndr_print_ptr(ndr, "handle", r->in.handle);
27251 ndr->depth++;
27252 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27253 ndr->depth--;
27254 ndr_print_string(ndr, "key_name", r->in.key_name);
27255 ndr->depth--;
27257 if (flags & NDR_OUT) {
27258 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
27259 ndr->depth++;
27260 ndr_print_WERROR(ndr, "result", r->out.result);
27261 ndr->depth--;
27263 ndr->depth--;
27266 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
27268 if (flags & NDR_IN) {
27270 if (flags & NDR_OUT) {
27271 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27273 return NDR_ERR_SUCCESS;
27276 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
27278 if (flags & NDR_IN) {
27280 if (flags & NDR_OUT) {
27281 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27283 return NDR_ERR_SUCCESS;
27286 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
27288 ndr_print_struct(ndr, name, "spoolss_53");
27289 ndr->depth++;
27290 if (flags & NDR_SET_VALUES) {
27291 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27293 if (flags & NDR_IN) {
27294 ndr_print_struct(ndr, "in", "spoolss_53");
27295 ndr->depth++;
27296 ndr->depth--;
27298 if (flags & NDR_OUT) {
27299 ndr_print_struct(ndr, "out", "spoolss_53");
27300 ndr->depth++;
27301 ndr_print_WERROR(ndr, "result", r->out.result);
27302 ndr->depth--;
27304 ndr->depth--;
27307 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
27309 if (flags & NDR_IN) {
27310 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27311 if (r->in.server) {
27312 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27313 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27315 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27317 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
27318 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
27320 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
27322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
27324 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27325 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
27326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
27328 if (flags & NDR_OUT) {
27329 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27331 return NDR_ERR_SUCCESS;
27334 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
27336 uint32_t _ptr_server;
27337 TALLOC_CTX *_mem_save_server_0;
27338 if (flags & NDR_IN) {
27339 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27340 if (_ptr_server) {
27341 NDR_PULL_ALLOC(ndr, r->in.server);
27342 } else {
27343 r->in.server = NULL;
27345 if (r->in.server) {
27346 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27347 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27348 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27349 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27350 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
27351 return 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));
27353 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
27354 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
27355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27357 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
27358 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
27359 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
27360 return 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));
27362 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
27363 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
27364 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
27365 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
27366 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
27367 return 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));
27369 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
27370 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
27371 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
27372 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
27374 if (flags & NDR_OUT) {
27375 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27377 return NDR_ERR_SUCCESS;
27380 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
27382 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
27383 ndr->depth++;
27384 if (flags & NDR_SET_VALUES) {
27385 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27387 if (flags & NDR_IN) {
27388 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
27389 ndr->depth++;
27390 ndr_print_ptr(ndr, "server", r->in.server);
27391 ndr->depth++;
27392 if (r->in.server) {
27393 ndr_print_string(ndr, "server", r->in.server);
27395 ndr->depth--;
27396 ndr_print_string(ndr, "architecture", r->in.architecture);
27397 ndr_print_string(ndr, "driver", r->in.driver);
27398 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
27399 ndr_print_uint32(ndr, "version", r->in.version);
27400 ndr->depth--;
27402 if (flags & NDR_OUT) {
27403 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
27404 ndr->depth++;
27405 ndr_print_WERROR(ndr, "result", r->out.result);
27406 ndr->depth--;
27408 ndr->depth--;
27411 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
27413 if (flags & NDR_IN) {
27415 if (flags & NDR_OUT) {
27416 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27418 return NDR_ERR_SUCCESS;
27421 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
27423 if (flags & NDR_IN) {
27425 if (flags & NDR_OUT) {
27426 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27428 return NDR_ERR_SUCCESS;
27431 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
27433 ndr_print_struct(ndr, name, "spoolss_55");
27434 ndr->depth++;
27435 if (flags & NDR_SET_VALUES) {
27436 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27438 if (flags & NDR_IN) {
27439 ndr_print_struct(ndr, "in", "spoolss_55");
27440 ndr->depth++;
27441 ndr->depth--;
27443 if (flags & NDR_OUT) {
27444 ndr_print_struct(ndr, "out", "spoolss_55");
27445 ndr->depth++;
27446 ndr_print_WERROR(ndr, "result", r->out.result);
27447 ndr->depth--;
27449 ndr->depth--;
27452 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
27454 if (flags & NDR_IN) {
27456 if (flags & NDR_OUT) {
27457 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27459 return NDR_ERR_SUCCESS;
27462 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
27464 if (flags & NDR_IN) {
27466 if (flags & NDR_OUT) {
27467 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27469 return NDR_ERR_SUCCESS;
27472 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
27474 ndr_print_struct(ndr, name, "spoolss_56");
27475 ndr->depth++;
27476 if (flags & NDR_SET_VALUES) {
27477 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27479 if (flags & NDR_IN) {
27480 ndr_print_struct(ndr, "in", "spoolss_56");
27481 ndr->depth++;
27482 ndr->depth--;
27484 if (flags & NDR_OUT) {
27485 ndr_print_struct(ndr, "out", "spoolss_56");
27486 ndr->depth++;
27487 ndr_print_WERROR(ndr, "result", r->out.result);
27488 ndr->depth--;
27490 ndr->depth--;
27493 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
27495 if (flags & NDR_IN) {
27497 if (flags & NDR_OUT) {
27498 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27500 return NDR_ERR_SUCCESS;
27503 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
27505 if (flags & NDR_IN) {
27507 if (flags & NDR_OUT) {
27508 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27510 return NDR_ERR_SUCCESS;
27513 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
27515 ndr_print_struct(ndr, name, "spoolss_57");
27516 ndr->depth++;
27517 if (flags & NDR_SET_VALUES) {
27518 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27520 if (flags & NDR_IN) {
27521 ndr_print_struct(ndr, "in", "spoolss_57");
27522 ndr->depth++;
27523 ndr->depth--;
27525 if (flags & NDR_OUT) {
27526 ndr_print_struct(ndr, "out", "spoolss_57");
27527 ndr->depth++;
27528 ndr_print_WERROR(ndr, "result", r->out.result);
27529 ndr->depth--;
27531 ndr->depth--;
27534 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
27536 if (flags & NDR_IN) {
27537 if (r->in.handle == NULL) {
27538 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27540 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
27542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
27544 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));
27545 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
27546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
27547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
27548 if (r->in.status_code == NULL) {
27549 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
27553 if (flags & NDR_OUT) {
27554 if (r->out.out_data == NULL) {
27555 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
27558 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
27559 if (r->out.needed == NULL) {
27560 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27563 if (r->out.status_code == NULL) {
27564 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
27567 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27569 return NDR_ERR_SUCCESS;
27572 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
27574 TALLOC_CTX *_mem_save_handle_0;
27575 TALLOC_CTX *_mem_save_needed_0;
27576 TALLOC_CTX *_mem_save_status_code_0;
27577 if (flags & NDR_IN) {
27578 ZERO_STRUCT(r->out);
27580 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27581 NDR_PULL_ALLOC(ndr, r->in.handle);
27583 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27584 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27585 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27587 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
27588 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
27589 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
27590 return 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));
27592 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
27593 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));
27594 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
27595 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
27596 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
27597 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27598 NDR_PULL_ALLOC(ndr, r->in.status_code);
27600 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
27601 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
27602 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
27603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
27604 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
27605 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
27606 NDR_PULL_ALLOC(ndr, r->out.needed);
27607 ZERO_STRUCTP(r->out.needed);
27608 NDR_PULL_ALLOC(ndr, r->out.status_code);
27609 *r->out.status_code = *r->in.status_code;
27611 if (flags & NDR_OUT) {
27612 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
27613 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27614 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
27616 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
27617 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27618 NDR_PULL_ALLOC(ndr, r->out.needed);
27620 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27621 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27622 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27623 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27624 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27625 NDR_PULL_ALLOC(ndr, r->out.status_code);
27627 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
27628 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
27629 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
27630 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
27631 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27632 if (r->out.out_data) {
27633 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
27636 return NDR_ERR_SUCCESS;
27639 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
27641 ndr_print_struct(ndr, name, "spoolss_XcvData");
27642 ndr->depth++;
27643 if (flags & NDR_SET_VALUES) {
27644 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27646 if (flags & NDR_IN) {
27647 ndr_print_struct(ndr, "in", "spoolss_XcvData");
27648 ndr->depth++;
27649 ndr_print_ptr(ndr, "handle", r->in.handle);
27650 ndr->depth++;
27651 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27652 ndr->depth--;
27653 ndr_print_string(ndr, "function_name", r->in.function_name);
27654 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
27655 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
27656 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
27657 ndr_print_ptr(ndr, "status_code", r->in.status_code);
27658 ndr->depth++;
27659 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
27660 ndr->depth--;
27661 ndr->depth--;
27663 if (flags & NDR_OUT) {
27664 ndr_print_struct(ndr, "out", "spoolss_XcvData");
27665 ndr->depth++;
27666 ndr_print_ptr(ndr, "out_data", r->out.out_data);
27667 ndr->depth++;
27668 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
27669 ndr->depth--;
27670 ndr_print_ptr(ndr, "needed", r->out.needed);
27671 ndr->depth++;
27672 ndr_print_uint32(ndr, "needed", *r->out.needed);
27673 ndr->depth--;
27674 ndr_print_ptr(ndr, "status_code", r->out.status_code);
27675 ndr->depth++;
27676 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
27677 ndr->depth--;
27678 ndr_print_WERROR(ndr, "result", r->out.result);
27679 ndr->depth--;
27681 ndr->depth--;
27684 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
27686 if (flags & NDR_IN) {
27687 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
27688 if (r->in.servername) {
27689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
27690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
27692 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27694 if (r->in.info_ctr == NULL) {
27695 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27697 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27698 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
27700 if (flags & NDR_OUT) {
27701 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27703 return NDR_ERR_SUCCESS;
27706 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
27708 uint32_t _ptr_servername;
27709 TALLOC_CTX *_mem_save_servername_0;
27710 TALLOC_CTX *_mem_save_info_ctr_0;
27711 if (flags & NDR_IN) {
27712 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
27713 if (_ptr_servername) {
27714 NDR_PULL_ALLOC(ndr, r->in.servername);
27715 } else {
27716 r->in.servername = NULL;
27718 if (r->in.servername) {
27719 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27720 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
27721 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
27722 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
27723 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
27724 return 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));
27726 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
27727 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
27728 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
27730 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27731 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27733 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27734 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27735 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27737 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
27739 if (flags & NDR_OUT) {
27740 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27742 return NDR_ERR_SUCCESS;
27745 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
27747 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
27748 ndr->depth++;
27749 if (flags & NDR_SET_VALUES) {
27750 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27752 if (flags & NDR_IN) {
27753 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
27754 ndr->depth++;
27755 ndr_print_ptr(ndr, "servername", r->in.servername);
27756 ndr->depth++;
27757 if (r->in.servername) {
27758 ndr_print_string(ndr, "servername", r->in.servername);
27760 ndr->depth--;
27761 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27762 ndr->depth++;
27763 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27764 ndr->depth--;
27765 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
27766 ndr->depth--;
27768 if (flags & NDR_OUT) {
27769 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
27770 ndr->depth++;
27771 ndr_print_WERROR(ndr, "result", r->out.result);
27772 ndr->depth--;
27774 ndr->depth--;
27777 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
27779 if (flags & NDR_IN) {
27781 if (flags & NDR_OUT) {
27782 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27784 return NDR_ERR_SUCCESS;
27787 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
27789 if (flags & NDR_IN) {
27791 if (flags & NDR_OUT) {
27792 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27794 return NDR_ERR_SUCCESS;
27797 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
27799 ndr_print_struct(ndr, name, "spoolss_5a");
27800 ndr->depth++;
27801 if (flags & NDR_SET_VALUES) {
27802 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27804 if (flags & NDR_IN) {
27805 ndr_print_struct(ndr, "in", "spoolss_5a");
27806 ndr->depth++;
27807 ndr->depth--;
27809 if (flags & NDR_OUT) {
27810 ndr_print_struct(ndr, "out", "spoolss_5a");
27811 ndr->depth++;
27812 ndr_print_WERROR(ndr, "result", r->out.result);
27813 ndr->depth--;
27815 ndr->depth--;
27818 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
27820 if (flags & NDR_IN) {
27822 if (flags & NDR_OUT) {
27823 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27825 return NDR_ERR_SUCCESS;
27828 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
27830 if (flags & NDR_IN) {
27832 if (flags & NDR_OUT) {
27833 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27835 return NDR_ERR_SUCCESS;
27838 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
27840 ndr_print_struct(ndr, name, "spoolss_5b");
27841 ndr->depth++;
27842 if (flags & NDR_SET_VALUES) {
27843 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27845 if (flags & NDR_IN) {
27846 ndr_print_struct(ndr, "in", "spoolss_5b");
27847 ndr->depth++;
27848 ndr->depth--;
27850 if (flags & NDR_OUT) {
27851 ndr_print_struct(ndr, "out", "spoolss_5b");
27852 ndr->depth++;
27853 ndr_print_WERROR(ndr, "result", r->out.result);
27854 ndr->depth--;
27856 ndr->depth--;
27859 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
27861 if (flags & NDR_IN) {
27863 if (flags & NDR_OUT) {
27864 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27866 return NDR_ERR_SUCCESS;
27869 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
27871 if (flags & NDR_IN) {
27873 if (flags & NDR_OUT) {
27874 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27876 return NDR_ERR_SUCCESS;
27879 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
27881 ndr_print_struct(ndr, name, "spoolss_5c");
27882 ndr->depth++;
27883 if (flags & NDR_SET_VALUES) {
27884 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27886 if (flags & NDR_IN) {
27887 ndr_print_struct(ndr, "in", "spoolss_5c");
27888 ndr->depth++;
27889 ndr->depth--;
27891 if (flags & NDR_OUT) {
27892 ndr_print_struct(ndr, "out", "spoolss_5c");
27893 ndr->depth++;
27894 ndr_print_WERROR(ndr, "result", r->out.result);
27895 ndr->depth--;
27897 ndr->depth--;
27900 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
27902 if (flags & NDR_IN) {
27904 if (flags & NDR_OUT) {
27905 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27907 return NDR_ERR_SUCCESS;
27910 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
27912 if (flags & NDR_IN) {
27914 if (flags & NDR_OUT) {
27915 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27917 return NDR_ERR_SUCCESS;
27920 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
27922 ndr_print_struct(ndr, name, "spoolss_5d");
27923 ndr->depth++;
27924 if (flags & NDR_SET_VALUES) {
27925 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27927 if (flags & NDR_IN) {
27928 ndr_print_struct(ndr, "in", "spoolss_5d");
27929 ndr->depth++;
27930 ndr->depth--;
27932 if (flags & NDR_OUT) {
27933 ndr_print_struct(ndr, "out", "spoolss_5d");
27934 ndr->depth++;
27935 ndr_print_WERROR(ndr, "result", r->out.result);
27936 ndr->depth--;
27938 ndr->depth--;
27941 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
27943 if (flags & NDR_IN) {
27945 if (flags & NDR_OUT) {
27946 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27948 return NDR_ERR_SUCCESS;
27951 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
27953 if (flags & NDR_IN) {
27955 if (flags & NDR_OUT) {
27956 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27958 return NDR_ERR_SUCCESS;
27961 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
27963 ndr_print_struct(ndr, name, "spoolss_5e");
27964 ndr->depth++;
27965 if (flags & NDR_SET_VALUES) {
27966 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27968 if (flags & NDR_IN) {
27969 ndr_print_struct(ndr, "in", "spoolss_5e");
27970 ndr->depth++;
27971 ndr->depth--;
27973 if (flags & NDR_OUT) {
27974 ndr_print_struct(ndr, "out", "spoolss_5e");
27975 ndr->depth++;
27976 ndr_print_WERROR(ndr, "result", r->out.result);
27977 ndr->depth--;
27979 ndr->depth--;
27982 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
27984 if (flags & NDR_IN) {
27986 if (flags & NDR_OUT) {
27987 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27989 return NDR_ERR_SUCCESS;
27992 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
27994 if (flags & NDR_IN) {
27996 if (flags & NDR_OUT) {
27997 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27999 return NDR_ERR_SUCCESS;
28002 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
28004 ndr_print_struct(ndr, name, "spoolss_5f");
28005 ndr->depth++;
28006 if (flags & NDR_SET_VALUES) {
28007 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28009 if (flags & NDR_IN) {
28010 ndr_print_struct(ndr, "in", "spoolss_5f");
28011 ndr->depth++;
28012 ndr->depth--;
28014 if (flags & NDR_OUT) {
28015 ndr_print_struct(ndr, "out", "spoolss_5f");
28016 ndr->depth++;
28017 ndr_print_WERROR(ndr, "result", r->out.result);
28018 ndr->depth--;
28020 ndr->depth--;
28023 static const struct ndr_interface_call spoolss_calls[] = {
28025 "spoolss_EnumPrinters",
28026 sizeof(struct spoolss_EnumPrinters),
28027 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
28028 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
28029 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
28030 false,
28033 "spoolss_OpenPrinter",
28034 sizeof(struct spoolss_OpenPrinter),
28035 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
28036 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
28037 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
28038 false,
28041 "spoolss_SetJob",
28042 sizeof(struct spoolss_SetJob),
28043 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
28044 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
28045 (ndr_print_function_t) ndr_print_spoolss_SetJob,
28046 false,
28049 "spoolss_GetJob",
28050 sizeof(struct spoolss_GetJob),
28051 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
28052 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
28053 (ndr_print_function_t) ndr_print_spoolss_GetJob,
28054 false,
28057 "spoolss_EnumJobs",
28058 sizeof(struct spoolss_EnumJobs),
28059 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
28060 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
28061 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
28062 false,
28065 "spoolss_AddPrinter",
28066 sizeof(struct spoolss_AddPrinter),
28067 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
28068 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
28069 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
28070 false,
28073 "spoolss_DeletePrinter",
28074 sizeof(struct spoolss_DeletePrinter),
28075 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
28076 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
28077 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
28078 false,
28081 "spoolss_SetPrinter",
28082 sizeof(struct spoolss_SetPrinter),
28083 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
28084 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
28085 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
28086 false,
28089 "spoolss_GetPrinter",
28090 sizeof(struct spoolss_GetPrinter),
28091 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
28092 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
28093 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
28094 false,
28097 "spoolss_AddPrinterDriver",
28098 sizeof(struct spoolss_AddPrinterDriver),
28099 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
28100 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
28101 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
28102 false,
28105 "spoolss_EnumPrinterDrivers",
28106 sizeof(struct spoolss_EnumPrinterDrivers),
28107 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
28108 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
28109 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
28110 false,
28113 "spoolss_GetPrinterDriver",
28114 sizeof(struct spoolss_GetPrinterDriver),
28115 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
28116 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
28117 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
28118 false,
28121 "spoolss_GetPrinterDriverDirectory",
28122 sizeof(struct spoolss_GetPrinterDriverDirectory),
28123 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
28124 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
28125 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
28126 false,
28129 "spoolss_DeletePrinterDriver",
28130 sizeof(struct spoolss_DeletePrinterDriver),
28131 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
28132 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
28133 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
28134 false,
28137 "spoolss_AddPrintProcessor",
28138 sizeof(struct spoolss_AddPrintProcessor),
28139 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
28140 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
28141 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
28142 false,
28145 "spoolss_EnumPrintProcessors",
28146 sizeof(struct spoolss_EnumPrintProcessors),
28147 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
28148 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
28149 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
28150 false,
28153 "spoolss_GetPrintProcessorDirectory",
28154 sizeof(struct spoolss_GetPrintProcessorDirectory),
28155 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
28156 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
28157 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
28158 false,
28161 "spoolss_StartDocPrinter",
28162 sizeof(struct spoolss_StartDocPrinter),
28163 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
28164 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
28165 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
28166 false,
28169 "spoolss_StartPagePrinter",
28170 sizeof(struct spoolss_StartPagePrinter),
28171 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
28172 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
28173 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
28174 false,
28177 "spoolss_WritePrinter",
28178 sizeof(struct spoolss_WritePrinter),
28179 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
28180 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
28181 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
28182 false,
28185 "spoolss_EndPagePrinter",
28186 sizeof(struct spoolss_EndPagePrinter),
28187 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
28188 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
28189 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
28190 false,
28193 "spoolss_AbortPrinter",
28194 sizeof(struct spoolss_AbortPrinter),
28195 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
28196 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
28197 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
28198 false,
28201 "spoolss_ReadPrinter",
28202 sizeof(struct spoolss_ReadPrinter),
28203 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
28204 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
28205 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
28206 false,
28209 "spoolss_EndDocPrinter",
28210 sizeof(struct spoolss_EndDocPrinter),
28211 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
28212 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
28213 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
28214 false,
28217 "spoolss_AddJob",
28218 sizeof(struct spoolss_AddJob),
28219 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
28220 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
28221 (ndr_print_function_t) ndr_print_spoolss_AddJob,
28222 false,
28225 "spoolss_ScheduleJob",
28226 sizeof(struct spoolss_ScheduleJob),
28227 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
28228 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
28229 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
28230 false,
28233 "spoolss_GetPrinterData",
28234 sizeof(struct spoolss_GetPrinterData),
28235 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
28236 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
28237 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
28238 false,
28241 "spoolss_SetPrinterData",
28242 sizeof(struct spoolss_SetPrinterData),
28243 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
28244 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
28245 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
28246 false,
28249 "spoolss_WaitForPrinterChange",
28250 sizeof(struct spoolss_WaitForPrinterChange),
28251 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
28252 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
28253 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
28254 false,
28257 "spoolss_ClosePrinter",
28258 sizeof(struct spoolss_ClosePrinter),
28259 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
28260 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
28261 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
28262 false,
28265 "spoolss_AddForm",
28266 sizeof(struct spoolss_AddForm),
28267 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
28268 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
28269 (ndr_print_function_t) ndr_print_spoolss_AddForm,
28270 false,
28273 "spoolss_DeleteForm",
28274 sizeof(struct spoolss_DeleteForm),
28275 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
28276 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
28277 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
28278 false,
28281 "spoolss_GetForm",
28282 sizeof(struct spoolss_GetForm),
28283 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
28284 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
28285 (ndr_print_function_t) ndr_print_spoolss_GetForm,
28286 false,
28289 "spoolss_SetForm",
28290 sizeof(struct spoolss_SetForm),
28291 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
28292 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
28293 (ndr_print_function_t) ndr_print_spoolss_SetForm,
28294 false,
28297 "spoolss_EnumForms",
28298 sizeof(struct spoolss_EnumForms),
28299 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
28300 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
28301 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
28302 false,
28305 "spoolss_EnumPorts",
28306 sizeof(struct spoolss_EnumPorts),
28307 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
28308 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
28309 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
28310 false,
28313 "spoolss_EnumMonitors",
28314 sizeof(struct spoolss_EnumMonitors),
28315 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
28316 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
28317 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
28318 false,
28321 "spoolss_AddPort",
28322 sizeof(struct spoolss_AddPort),
28323 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
28324 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
28325 (ndr_print_function_t) ndr_print_spoolss_AddPort,
28326 false,
28329 "spoolss_ConfigurePort",
28330 sizeof(struct spoolss_ConfigurePort),
28331 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
28332 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
28333 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
28334 false,
28337 "spoolss_DeletePort",
28338 sizeof(struct spoolss_DeletePort),
28339 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
28340 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
28341 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
28342 false,
28345 "spoolss_CreatePrinterIC",
28346 sizeof(struct spoolss_CreatePrinterIC),
28347 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
28348 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
28349 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
28350 false,
28353 "spoolss_PlayGDIScriptOnPrinterIC",
28354 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
28355 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
28356 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
28357 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
28358 false,
28361 "spoolss_DeletePrinterIC",
28362 sizeof(struct spoolss_DeletePrinterIC),
28363 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
28364 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
28365 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
28366 false,
28369 "spoolss_AddPrinterConnection",
28370 sizeof(struct spoolss_AddPrinterConnection),
28371 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
28372 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
28373 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
28374 false,
28377 "spoolss_DeletePrinterConnection",
28378 sizeof(struct spoolss_DeletePrinterConnection),
28379 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
28380 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
28381 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
28382 false,
28385 "spoolss_PrinterMessageBox",
28386 sizeof(struct spoolss_PrinterMessageBox),
28387 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
28388 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
28389 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
28390 false,
28393 "spoolss_AddMonitor",
28394 sizeof(struct spoolss_AddMonitor),
28395 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
28396 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
28397 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
28398 false,
28401 "spoolss_DeleteMonitor",
28402 sizeof(struct spoolss_DeleteMonitor),
28403 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
28404 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
28405 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
28406 false,
28409 "spoolss_DeletePrintProcessor",
28410 sizeof(struct spoolss_DeletePrintProcessor),
28411 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
28412 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
28413 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
28414 false,
28417 "spoolss_AddPrintProvidor",
28418 sizeof(struct spoolss_AddPrintProvidor),
28419 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
28420 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
28421 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
28422 false,
28425 "spoolss_DeletePrintProvidor",
28426 sizeof(struct spoolss_DeletePrintProvidor),
28427 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
28428 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
28429 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
28430 false,
28433 "spoolss_EnumPrintProcDataTypes",
28434 sizeof(struct spoolss_EnumPrintProcDataTypes),
28435 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
28436 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
28437 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
28438 false,
28441 "spoolss_ResetPrinter",
28442 sizeof(struct spoolss_ResetPrinter),
28443 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
28444 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
28445 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
28446 false,
28449 "spoolss_GetPrinterDriver2",
28450 sizeof(struct spoolss_GetPrinterDriver2),
28451 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
28452 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
28453 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
28454 false,
28457 "spoolss_FindFirstPrinterChangeNotification",
28458 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
28459 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
28460 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
28461 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
28462 false,
28465 "spoolss_FindNextPrinterChangeNotification",
28466 sizeof(struct spoolss_FindNextPrinterChangeNotification),
28467 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
28468 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
28469 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
28470 false,
28473 "spoolss_FindClosePrinterNotify",
28474 sizeof(struct spoolss_FindClosePrinterNotify),
28475 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
28476 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
28477 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
28478 false,
28481 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
28482 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
28483 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
28484 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
28485 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
28486 false,
28489 "spoolss_ReplyOpenPrinter",
28490 sizeof(struct spoolss_ReplyOpenPrinter),
28491 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
28492 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
28493 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
28494 false,
28497 "spoolss_RouterReplyPrinter",
28498 sizeof(struct spoolss_RouterReplyPrinter),
28499 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
28500 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
28501 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
28502 false,
28505 "spoolss_ReplyClosePrinter",
28506 sizeof(struct spoolss_ReplyClosePrinter),
28507 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
28508 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
28509 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
28510 false,
28513 "spoolss_AddPortEx",
28514 sizeof(struct spoolss_AddPortEx),
28515 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
28516 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
28517 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
28518 false,
28521 "spoolss_RouterFindFirstPrinterChangeNotification",
28522 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
28523 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
28524 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
28525 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
28526 false,
28529 "spoolss_SpoolerInit",
28530 sizeof(struct spoolss_SpoolerInit),
28531 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
28532 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
28533 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
28534 false,
28537 "spoolss_ResetPrinterEx",
28538 sizeof(struct spoolss_ResetPrinterEx),
28539 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
28540 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
28541 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
28542 false,
28545 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
28546 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
28547 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
28548 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
28549 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
28550 false,
28553 "spoolss_RouterReplyPrinterEx",
28554 sizeof(struct spoolss_RouterReplyPrinterEx),
28555 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
28556 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
28557 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
28558 false,
28561 "spoolss_RouterRefreshPrinterChangeNotify",
28562 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
28563 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
28564 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
28565 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
28566 false,
28569 "spoolss_44",
28570 sizeof(struct spoolss_44),
28571 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
28572 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
28573 (ndr_print_function_t) ndr_print_spoolss_44,
28574 false,
28577 "spoolss_OpenPrinterEx",
28578 sizeof(struct spoolss_OpenPrinterEx),
28579 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
28580 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
28581 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
28582 false,
28585 "spoolss_AddPrinterEx",
28586 sizeof(struct spoolss_AddPrinterEx),
28587 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
28588 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
28589 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
28590 false,
28593 "spoolss_47",
28594 sizeof(struct spoolss_47),
28595 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
28596 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
28597 (ndr_print_function_t) ndr_print_spoolss_47,
28598 false,
28601 "spoolss_EnumPrinterData",
28602 sizeof(struct spoolss_EnumPrinterData),
28603 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
28604 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
28605 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
28606 false,
28609 "spoolss_DeletePrinterData",
28610 sizeof(struct spoolss_DeletePrinterData),
28611 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
28612 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
28613 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
28614 false,
28617 "spoolss_4a",
28618 sizeof(struct spoolss_4a),
28619 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
28620 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
28621 (ndr_print_function_t) ndr_print_spoolss_4a,
28622 false,
28625 "spoolss_4b",
28626 sizeof(struct spoolss_4b),
28627 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
28628 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
28629 (ndr_print_function_t) ndr_print_spoolss_4b,
28630 false,
28633 "spoolss_4c",
28634 sizeof(struct spoolss_4c),
28635 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
28636 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
28637 (ndr_print_function_t) ndr_print_spoolss_4c,
28638 false,
28641 "spoolss_SetPrinterDataEx",
28642 sizeof(struct spoolss_SetPrinterDataEx),
28643 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
28644 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
28645 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
28646 false,
28649 "spoolss_GetPrinterDataEx",
28650 sizeof(struct spoolss_GetPrinterDataEx),
28651 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
28652 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
28653 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
28654 false,
28657 "spoolss_EnumPrinterDataEx",
28658 sizeof(struct spoolss_EnumPrinterDataEx),
28659 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
28660 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
28661 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
28662 false,
28665 "spoolss_EnumPrinterKey",
28666 sizeof(struct spoolss_EnumPrinterKey),
28667 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
28668 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
28669 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
28670 false,
28673 "spoolss_DeletePrinterDataEx",
28674 sizeof(struct spoolss_DeletePrinterDataEx),
28675 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
28676 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
28677 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
28678 false,
28681 "spoolss_DeletePrinterKey",
28682 sizeof(struct spoolss_DeletePrinterKey),
28683 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
28684 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
28685 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
28686 false,
28689 "spoolss_53",
28690 sizeof(struct spoolss_53),
28691 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
28692 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
28693 (ndr_print_function_t) ndr_print_spoolss_53,
28694 false,
28697 "spoolss_DeletePrinterDriverEx",
28698 sizeof(struct spoolss_DeletePrinterDriverEx),
28699 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
28700 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
28701 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
28702 false,
28705 "spoolss_55",
28706 sizeof(struct spoolss_55),
28707 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
28708 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
28709 (ndr_print_function_t) ndr_print_spoolss_55,
28710 false,
28713 "spoolss_56",
28714 sizeof(struct spoolss_56),
28715 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
28716 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
28717 (ndr_print_function_t) ndr_print_spoolss_56,
28718 false,
28721 "spoolss_57",
28722 sizeof(struct spoolss_57),
28723 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
28724 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
28725 (ndr_print_function_t) ndr_print_spoolss_57,
28726 false,
28729 "spoolss_XcvData",
28730 sizeof(struct spoolss_XcvData),
28731 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
28732 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
28733 (ndr_print_function_t) ndr_print_spoolss_XcvData,
28734 false,
28737 "spoolss_AddPrinterDriverEx",
28738 sizeof(struct spoolss_AddPrinterDriverEx),
28739 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
28740 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
28741 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
28742 false,
28745 "spoolss_5a",
28746 sizeof(struct spoolss_5a),
28747 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
28748 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
28749 (ndr_print_function_t) ndr_print_spoolss_5a,
28750 false,
28753 "spoolss_5b",
28754 sizeof(struct spoolss_5b),
28755 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
28756 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
28757 (ndr_print_function_t) ndr_print_spoolss_5b,
28758 false,
28761 "spoolss_5c",
28762 sizeof(struct spoolss_5c),
28763 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
28764 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
28765 (ndr_print_function_t) ndr_print_spoolss_5c,
28766 false,
28769 "spoolss_5d",
28770 sizeof(struct spoolss_5d),
28771 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
28772 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
28773 (ndr_print_function_t) ndr_print_spoolss_5d,
28774 false,
28777 "spoolss_5e",
28778 sizeof(struct spoolss_5e),
28779 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
28780 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
28781 (ndr_print_function_t) ndr_print_spoolss_5e,
28782 false,
28785 "spoolss_5f",
28786 sizeof(struct spoolss_5f),
28787 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
28788 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
28789 (ndr_print_function_t) ndr_print_spoolss_5f,
28790 false,
28792 { NULL, 0, NULL, NULL, NULL, false }
28795 static const char * const spoolss_endpoint_strings[] = {
28796 "ncacn_np:[\\pipe\\spoolss]",
28799 static const struct ndr_interface_string_array spoolss_endpoints = {
28800 .count = 1,
28801 .names = spoolss_endpoint_strings
28804 static const char * const spoolss_authservice_strings[] = {
28805 "host",
28808 static const struct ndr_interface_string_array spoolss_authservices = {
28809 .count = 1,
28810 .names = spoolss_authservice_strings
28814 const struct ndr_interface_table ndr_table_spoolss = {
28815 .name = "spoolss",
28816 .syntax_id = {
28817 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
28818 NDR_SPOOLSS_VERSION
28820 .helpstring = NDR_SPOOLSS_HELPSTRING,
28821 .num_calls = 96,
28822 .calls = spoolss_calls,
28823 .endpoints = &spoolss_endpoints,
28824 .authservices = &spoolss_authservices