rerun 'make samba3-idl'
[Samba.git] / librpc / gen_ndr / ndr_spoolss.c
blob8cd1f5dc85580053a4e0b593401bc3dcb5fdba4d
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 uint32_t size_devicename_0 = 0;
629 uint32_t size_formname_0 = 0;
630 if (ndr_flags & NDR_SCALARS) {
631 NDR_CHECK(ndr_pull_align(ndr, 4));
632 size_devicename_0 = 32;
633 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, size_devicename_0, sizeof(uint16_t), CH_UTF16));
634 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->specversion));
635 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
636 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
637 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
638 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
639 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->orientation));
640 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->papersize));
641 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
642 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
643 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
644 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
645 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->defaultsource));
646 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->printquality));
647 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->color));
648 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->duplex));
649 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
650 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ttoption));
651 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->collate));
652 size_formname_0 = 32;
653 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, size_formname_0, sizeof(uint16_t), CH_UTF16));
654 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
657 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
658 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayflags));
659 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
660 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmmethod));
661 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmintent));
662 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mediatype));
663 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dithertype));
664 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
666 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
667 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
669 uint32_t _flags_save_DATA_BLOB = ndr->flags;
670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
672 struct ndr_pull *_ndr_driverextra_data;
673 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
674 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
675 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
677 ndr->flags = _flags_save_DATA_BLOB;
680 if (ndr_flags & NDR_BUFFERS) {
682 return NDR_ERR_SUCCESS;
685 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
687 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
688 ndr->depth++;
689 ndr_print_string(ndr, "devicename", r->devicename);
690 ndr_print_uint16(ndr, "specversion", r->specversion);
691 ndr_print_uint16(ndr, "driverversion", r->driverversion);
692 ndr_print_uint16(ndr, "size", r->size);
693 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
694 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
695 ndr_print_uint16(ndr, "orientation", r->orientation);
696 ndr_print_uint16(ndr, "papersize", r->papersize);
697 ndr_print_uint16(ndr, "paperlength", r->paperlength);
698 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
699 ndr_print_uint16(ndr, "scale", r->scale);
700 ndr_print_uint16(ndr, "copies", r->copies);
701 ndr_print_uint16(ndr, "defaultsource", r->defaultsource);
702 ndr_print_uint16(ndr, "printquality", r->printquality);
703 ndr_print_uint16(ndr, "color", r->color);
704 ndr_print_uint16(ndr, "duplex", r->duplex);
705 ndr_print_uint16(ndr, "yresolution", r->yresolution);
706 ndr_print_uint16(ndr, "ttoption", r->ttoption);
707 ndr_print_uint16(ndr, "collate", r->collate);
708 ndr_print_string(ndr, "formname", r->formname);
709 ndr_print_uint16(ndr, "logpixels", r->logpixels);
710 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
711 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
712 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
713 ndr_print_uint32(ndr, "displayflags", r->displayflags);
714 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
715 ndr_print_uint32(ndr, "icmmethod", r->icmmethod);
716 ndr_print_uint32(ndr, "icmintent", r->icmintent);
717 ndr_print_uint32(ndr, "mediatype", r->mediatype);
718 ndr_print_uint32(ndr, "dithertype", r->dithertype);
719 ndr_print_uint32(ndr, "reserved1", r->reserved1);
720 ndr_print_uint32(ndr, "reserved2", r->reserved2);
721 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
722 ndr_print_uint32(ndr, "panningheight", r->panningheight);
723 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
724 ndr->depth--;
727 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
729 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
732 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
735 return NDR_ERR_SUCCESS;
738 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
740 uint32_t v;
741 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
742 *r = v;
743 return NDR_ERR_SUCCESS;
746 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
748 ndr_print_uint32(ndr, name, r);
749 ndr->depth++;
750 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
751 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
752 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
753 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
754 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
755 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
756 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
757 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
758 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
759 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
760 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
761 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
762 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
763 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
764 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
765 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
766 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
767 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
768 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
769 ndr->depth--;
772 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
774 if (ndr_flags & NDR_SCALARS) {
775 NDR_CHECK(ndr_push_align(ndr, 4));
776 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
778 uint32_t _flags_save_string = ndr->flags;
779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
780 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
781 ndr->flags = _flags_save_string;
784 uint32_t _flags_save_string = ndr->flags;
785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
786 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
787 ndr->flags = _flags_save_string;
790 uint32_t _flags_save_string = ndr->flags;
791 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
792 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
793 ndr->flags = _flags_save_string;
796 if (ndr_flags & NDR_BUFFERS) {
798 uint32_t _flags_save_string = ndr->flags;
799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
800 if (r->description) {
801 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
802 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
803 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
805 ndr->flags = _flags_save_string;
808 uint32_t _flags_save_string = ndr->flags;
809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
810 if (r->name) {
811 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name));
812 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
813 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name));
815 ndr->flags = _flags_save_string;
818 uint32_t _flags_save_string = ndr->flags;
819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
820 if (r->comment) {
821 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment));
822 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
823 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->comment));
825 ndr->flags = _flags_save_string;
828 return NDR_ERR_SUCCESS;
831 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
833 uint32_t _ptr_description;
834 TALLOC_CTX *_mem_save_description_0;
835 uint32_t _ptr_name;
836 TALLOC_CTX *_mem_save_name_0;
837 uint32_t _ptr_comment;
838 TALLOC_CTX *_mem_save_comment_0;
839 if (ndr_flags & NDR_SCALARS) {
840 NDR_CHECK(ndr_pull_align(ndr, 4));
841 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
843 uint32_t _flags_save_string = ndr->flags;
844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
846 if (_ptr_description) {
847 NDR_PULL_ALLOC(ndr, r->description);
848 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
849 } else {
850 r->description = NULL;
852 ndr->flags = _flags_save_string;
855 uint32_t _flags_save_string = ndr->flags;
856 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
857 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
858 if (_ptr_name) {
859 NDR_PULL_ALLOC(ndr, r->name);
860 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
861 } else {
862 r->name = NULL;
864 ndr->flags = _flags_save_string;
867 uint32_t _flags_save_string = ndr->flags;
868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
869 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
870 if (_ptr_comment) {
871 NDR_PULL_ALLOC(ndr, r->comment);
872 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
873 } else {
874 r->comment = NULL;
876 ndr->flags = _flags_save_string;
879 if (ndr_flags & NDR_BUFFERS) {
881 uint32_t _flags_save_string = ndr->flags;
882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
883 if (r->description) {
884 uint32_t _relative_save_offset;
885 _relative_save_offset = ndr->offset;
886 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
887 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
888 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
889 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
891 ndr->offset = _relative_save_offset;
893 ndr->flags = _flags_save_string;
896 uint32_t _flags_save_string = ndr->flags;
897 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
898 if (r->name) {
899 uint32_t _relative_save_offset;
900 _relative_save_offset = ndr->offset;
901 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
902 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
903 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
904 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
906 ndr->offset = _relative_save_offset;
908 ndr->flags = _flags_save_string;
911 uint32_t _flags_save_string = ndr->flags;
912 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
913 if (r->comment) {
914 uint32_t _relative_save_offset;
915 _relative_save_offset = ndr->offset;
916 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
917 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
918 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
919 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
921 ndr->offset = _relative_save_offset;
923 ndr->flags = _flags_save_string;
926 return NDR_ERR_SUCCESS;
929 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
931 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
932 ndr->depth++;
933 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
934 ndr_print_ptr(ndr, "description", r->description);
935 ndr->depth++;
936 if (r->description) {
937 ndr_print_string(ndr, "description", r->description);
939 ndr->depth--;
940 ndr_print_ptr(ndr, "name", r->name);
941 ndr->depth++;
942 if (r->name) {
943 ndr_print_string(ndr, "name", r->name);
945 ndr->depth--;
946 ndr_print_ptr(ndr, "comment", r->comment);
947 ndr->depth++;
948 if (r->comment) {
949 ndr_print_string(ndr, "comment", r->comment);
951 ndr->depth--;
952 ndr->depth--;
955 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
957 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
960 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
963 return NDR_ERR_SUCCESS;
966 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
968 uint32_t v;
969 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
970 *r = v;
971 return NDR_ERR_SUCCESS;
974 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
976 ndr_print_uint32(ndr, name, r);
977 ndr->depth++;
978 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
979 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
980 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
981 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
982 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
983 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
984 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
985 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
986 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
987 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
988 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
989 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
990 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
991 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
992 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
993 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
994 ndr->depth--;
997 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
999 uint32_t _ptr_servername;
1000 TALLOC_CTX *_mem_save_servername_0;
1001 uint32_t _ptr_printername;
1002 TALLOC_CTX *_mem_save_printername_0;
1003 uint32_t _ptr_sharename;
1004 TALLOC_CTX *_mem_save_sharename_0;
1005 uint32_t _ptr_portname;
1006 TALLOC_CTX *_mem_save_portname_0;
1007 uint32_t _ptr_drivername;
1008 TALLOC_CTX *_mem_save_drivername_0;
1009 uint32_t _ptr_comment;
1010 TALLOC_CTX *_mem_save_comment_0;
1011 uint32_t _ptr_location;
1012 TALLOC_CTX *_mem_save_location_0;
1013 uint32_t _ptr_devmode;
1014 TALLOC_CTX *_mem_save_devmode_0;
1015 uint32_t _ptr_sepfile;
1016 TALLOC_CTX *_mem_save_sepfile_0;
1017 uint32_t _ptr_printprocessor;
1018 TALLOC_CTX *_mem_save_printprocessor_0;
1019 uint32_t _ptr_datatype;
1020 TALLOC_CTX *_mem_save_datatype_0;
1021 uint32_t _ptr_parameters;
1022 TALLOC_CTX *_mem_save_parameters_0;
1023 uint32_t _ptr_secdesc;
1024 TALLOC_CTX *_mem_save_secdesc_0;
1025 if (ndr_flags & NDR_SCALARS) {
1026 NDR_CHECK(ndr_pull_align(ndr, 4));
1028 uint32_t _flags_save_string = ndr->flags;
1029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1030 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1031 if (_ptr_servername) {
1032 NDR_PULL_ALLOC(ndr, r->servername);
1033 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1034 } else {
1035 r->servername = NULL;
1037 ndr->flags = _flags_save_string;
1040 uint32_t _flags_save_string = ndr->flags;
1041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1042 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1043 if (_ptr_printername) {
1044 NDR_PULL_ALLOC(ndr, r->printername);
1045 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1046 } else {
1047 r->printername = NULL;
1049 ndr->flags = _flags_save_string;
1052 uint32_t _flags_save_string = ndr->flags;
1053 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1055 if (_ptr_sharename) {
1056 NDR_PULL_ALLOC(ndr, r->sharename);
1057 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1058 } else {
1059 r->sharename = NULL;
1061 ndr->flags = _flags_save_string;
1064 uint32_t _flags_save_string = ndr->flags;
1065 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1066 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1067 if (_ptr_portname) {
1068 NDR_PULL_ALLOC(ndr, r->portname);
1069 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1070 } else {
1071 r->portname = NULL;
1073 ndr->flags = _flags_save_string;
1076 uint32_t _flags_save_string = ndr->flags;
1077 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1079 if (_ptr_drivername) {
1080 NDR_PULL_ALLOC(ndr, r->drivername);
1081 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1082 } else {
1083 r->drivername = NULL;
1085 ndr->flags = _flags_save_string;
1088 uint32_t _flags_save_string = ndr->flags;
1089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1090 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1091 if (_ptr_comment) {
1092 NDR_PULL_ALLOC(ndr, r->comment);
1093 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1094 } else {
1095 r->comment = NULL;
1097 ndr->flags = _flags_save_string;
1100 uint32_t _flags_save_string = ndr->flags;
1101 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1102 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1103 if (_ptr_location) {
1104 NDR_PULL_ALLOC(ndr, r->location);
1105 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1106 } else {
1107 r->location = NULL;
1109 ndr->flags = _flags_save_string;
1112 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1114 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1115 if (_ptr_devmode) {
1116 NDR_PULL_ALLOC(ndr, r->devmode);
1117 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1118 } else {
1119 r->devmode = NULL;
1121 ndr->flags = _flags_save_spoolss_DeviceMode;
1124 uint32_t _flags_save_string = ndr->flags;
1125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1126 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1127 if (_ptr_sepfile) {
1128 NDR_PULL_ALLOC(ndr, r->sepfile);
1129 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1130 } else {
1131 r->sepfile = NULL;
1133 ndr->flags = _flags_save_string;
1136 uint32_t _flags_save_string = ndr->flags;
1137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1138 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1139 if (_ptr_printprocessor) {
1140 NDR_PULL_ALLOC(ndr, r->printprocessor);
1141 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1142 } else {
1143 r->printprocessor = NULL;
1145 ndr->flags = _flags_save_string;
1148 uint32_t _flags_save_string = ndr->flags;
1149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1150 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1151 if (_ptr_datatype) {
1152 NDR_PULL_ALLOC(ndr, r->datatype);
1153 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1154 } else {
1155 r->datatype = NULL;
1157 ndr->flags = _flags_save_string;
1160 uint32_t _flags_save_string = ndr->flags;
1161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1162 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1163 if (_ptr_parameters) {
1164 NDR_PULL_ALLOC(ndr, r->parameters);
1165 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1166 } else {
1167 r->parameters = NULL;
1169 ndr->flags = _flags_save_string;
1172 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1173 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1174 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1175 if (_ptr_secdesc) {
1176 NDR_PULL_ALLOC(ndr, r->secdesc);
1177 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1178 } else {
1179 r->secdesc = NULL;
1181 ndr->flags = _flags_save_spoolss_security_descriptor;
1183 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1185 if (r->priority > 99) {
1186 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1188 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1189 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1190 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1191 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1192 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1193 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1195 if (ndr_flags & NDR_BUFFERS) {
1197 uint32_t _flags_save_string = ndr->flags;
1198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1199 if (r->servername) {
1200 uint32_t _relative_save_offset;
1201 _relative_save_offset = ndr->offset;
1202 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1203 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1204 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1205 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1207 ndr->offset = _relative_save_offset;
1209 ndr->flags = _flags_save_string;
1212 uint32_t _flags_save_string = ndr->flags;
1213 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1214 if (r->printername) {
1215 uint32_t _relative_save_offset;
1216 _relative_save_offset = ndr->offset;
1217 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1218 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1219 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1220 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1222 ndr->offset = _relative_save_offset;
1224 ndr->flags = _flags_save_string;
1227 uint32_t _flags_save_string = ndr->flags;
1228 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1229 if (r->sharename) {
1230 uint32_t _relative_save_offset;
1231 _relative_save_offset = ndr->offset;
1232 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1233 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1234 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1235 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1236 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1237 ndr->offset = _relative_save_offset;
1239 ndr->flags = _flags_save_string;
1242 uint32_t _flags_save_string = ndr->flags;
1243 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1244 if (r->portname) {
1245 uint32_t _relative_save_offset;
1246 _relative_save_offset = ndr->offset;
1247 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1248 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1249 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1250 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1252 ndr->offset = _relative_save_offset;
1254 ndr->flags = _flags_save_string;
1257 uint32_t _flags_save_string = ndr->flags;
1258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1259 if (r->drivername) {
1260 uint32_t _relative_save_offset;
1261 _relative_save_offset = ndr->offset;
1262 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1263 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1264 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1265 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1266 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1267 ndr->offset = _relative_save_offset;
1269 ndr->flags = _flags_save_string;
1272 uint32_t _flags_save_string = ndr->flags;
1273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1274 if (r->comment) {
1275 uint32_t _relative_save_offset;
1276 _relative_save_offset = ndr->offset;
1277 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1278 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1279 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1280 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1282 ndr->offset = _relative_save_offset;
1284 ndr->flags = _flags_save_string;
1287 uint32_t _flags_save_string = ndr->flags;
1288 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1289 if (r->location) {
1290 uint32_t _relative_save_offset;
1291 _relative_save_offset = ndr->offset;
1292 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1293 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1294 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1295 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1296 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1297 ndr->offset = _relative_save_offset;
1299 ndr->flags = _flags_save_string;
1302 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1303 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1304 if (r->devmode) {
1305 uint32_t _relative_save_offset;
1306 _relative_save_offset = ndr->offset;
1307 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1308 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1309 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1311 struct ndr_pull *_ndr_devmode;
1312 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1313 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1314 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1317 ndr->offset = _relative_save_offset;
1319 ndr->flags = _flags_save_spoolss_DeviceMode;
1322 uint32_t _flags_save_string = ndr->flags;
1323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1324 if (r->sepfile) {
1325 uint32_t _relative_save_offset;
1326 _relative_save_offset = ndr->offset;
1327 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1328 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1329 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1330 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1332 ndr->offset = _relative_save_offset;
1334 ndr->flags = _flags_save_string;
1337 uint32_t _flags_save_string = ndr->flags;
1338 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1339 if (r->printprocessor) {
1340 uint32_t _relative_save_offset;
1341 _relative_save_offset = ndr->offset;
1342 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1343 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1344 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1345 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1347 ndr->offset = _relative_save_offset;
1349 ndr->flags = _flags_save_string;
1352 uint32_t _flags_save_string = ndr->flags;
1353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1354 if (r->datatype) {
1355 uint32_t _relative_save_offset;
1356 _relative_save_offset = ndr->offset;
1357 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
1358 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
1359 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
1360 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
1361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
1362 ndr->offset = _relative_save_offset;
1364 ndr->flags = _flags_save_string;
1367 uint32_t _flags_save_string = ndr->flags;
1368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1369 if (r->parameters) {
1370 uint32_t _relative_save_offset;
1371 _relative_save_offset = ndr->offset;
1372 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
1373 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
1374 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
1375 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
1376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
1377 ndr->offset = _relative_save_offset;
1379 ndr->flags = _flags_save_string;
1382 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1383 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1384 if (r->secdesc) {
1385 uint32_t _relative_save_offset;
1386 _relative_save_offset = ndr->offset;
1387 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1388 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1389 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1391 struct ndr_pull *_ndr_secdesc;
1392 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1393 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1394 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1397 ndr->offset = _relative_save_offset;
1399 ndr->flags = _flags_save_spoolss_security_descriptor;
1402 return NDR_ERR_SUCCESS;
1405 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
1407 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
1408 ndr->depth++;
1409 ndr_print_ptr(ndr, "servername", r->servername);
1410 ndr->depth++;
1411 if (r->servername) {
1412 ndr_print_string(ndr, "servername", r->servername);
1414 ndr->depth--;
1415 ndr_print_ptr(ndr, "printername", r->printername);
1416 ndr->depth++;
1417 if (r->printername) {
1418 ndr_print_string(ndr, "printername", r->printername);
1420 ndr->depth--;
1421 ndr_print_ptr(ndr, "sharename", r->sharename);
1422 ndr->depth++;
1423 if (r->sharename) {
1424 ndr_print_string(ndr, "sharename", r->sharename);
1426 ndr->depth--;
1427 ndr_print_ptr(ndr, "portname", r->portname);
1428 ndr->depth++;
1429 if (r->portname) {
1430 ndr_print_string(ndr, "portname", r->portname);
1432 ndr->depth--;
1433 ndr_print_ptr(ndr, "drivername", r->drivername);
1434 ndr->depth++;
1435 if (r->drivername) {
1436 ndr_print_string(ndr, "drivername", r->drivername);
1438 ndr->depth--;
1439 ndr_print_ptr(ndr, "comment", r->comment);
1440 ndr->depth++;
1441 if (r->comment) {
1442 ndr_print_string(ndr, "comment", r->comment);
1444 ndr->depth--;
1445 ndr_print_ptr(ndr, "location", r->location);
1446 ndr->depth++;
1447 if (r->location) {
1448 ndr_print_string(ndr, "location", r->location);
1450 ndr->depth--;
1451 ndr_print_ptr(ndr, "devmode", r->devmode);
1452 ndr->depth++;
1453 if (r->devmode) {
1454 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1456 ndr->depth--;
1457 ndr_print_ptr(ndr, "sepfile", r->sepfile);
1458 ndr->depth++;
1459 if (r->sepfile) {
1460 ndr_print_string(ndr, "sepfile", r->sepfile);
1462 ndr->depth--;
1463 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
1464 ndr->depth++;
1465 if (r->printprocessor) {
1466 ndr_print_string(ndr, "printprocessor", r->printprocessor);
1468 ndr->depth--;
1469 ndr_print_ptr(ndr, "datatype", r->datatype);
1470 ndr->depth++;
1471 if (r->datatype) {
1472 ndr_print_string(ndr, "datatype", r->datatype);
1474 ndr->depth--;
1475 ndr_print_ptr(ndr, "parameters", r->parameters);
1476 ndr->depth++;
1477 if (r->parameters) {
1478 ndr_print_string(ndr, "parameters", r->parameters);
1480 ndr->depth--;
1481 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1482 ndr->depth++;
1483 if (r->secdesc) {
1484 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
1486 ndr->depth--;
1487 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1488 ndr_print_uint32(ndr, "priority", r->priority);
1489 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
1490 ndr_print_uint32(ndr, "starttime", r->starttime);
1491 ndr_print_uint32(ndr, "untiltime", r->untiltime);
1492 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1493 ndr_print_uint32(ndr, "cjobs", r->cjobs);
1494 ndr_print_uint32(ndr, "averageppm", r->averageppm);
1495 ndr->depth--;
1498 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
1500 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
1503 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
1505 if (ndr_flags & NDR_SCALARS) {
1506 NDR_CHECK(ndr_push_align(ndr, 4));
1508 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1510 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1511 ndr->flags = _flags_save_spoolss_security_descriptor;
1514 if (ndr_flags & NDR_BUFFERS) {
1516 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1517 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1518 if (r->secdesc) {
1519 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
1521 struct ndr_push *_ndr_secdesc;
1522 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1523 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1524 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1526 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
1528 ndr->flags = _flags_save_spoolss_security_descriptor;
1531 return NDR_ERR_SUCCESS;
1534 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
1536 uint32_t _ptr_secdesc;
1537 TALLOC_CTX *_mem_save_secdesc_0;
1538 if (ndr_flags & NDR_SCALARS) {
1539 NDR_CHECK(ndr_pull_align(ndr, 4));
1541 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1543 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1544 if (_ptr_secdesc) {
1545 NDR_PULL_ALLOC(ndr, r->secdesc);
1546 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1547 } else {
1548 r->secdesc = NULL;
1550 ndr->flags = _flags_save_spoolss_security_descriptor;
1553 if (ndr_flags & NDR_BUFFERS) {
1555 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1557 if (r->secdesc) {
1558 uint32_t _relative_save_offset;
1559 _relative_save_offset = ndr->offset;
1560 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1561 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1562 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1564 struct ndr_pull *_ndr_secdesc;
1565 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1566 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1567 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1570 ndr->offset = _relative_save_offset;
1572 ndr->flags = _flags_save_spoolss_security_descriptor;
1575 return NDR_ERR_SUCCESS;
1578 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
1580 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
1581 ndr->depth++;
1582 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1583 ndr->depth++;
1584 if (r->secdesc) {
1585 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
1587 ndr->depth--;
1588 ndr->depth--;
1591 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
1593 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
1596 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
1598 if (ndr_flags & NDR_SCALARS) {
1599 NDR_CHECK(ndr_push_align(ndr, 4));
1601 uint32_t _flags_save_string = ndr->flags;
1602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1603 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1604 ndr->flags = _flags_save_string;
1607 uint32_t _flags_save_string = ndr->flags;
1608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1609 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1610 ndr->flags = _flags_save_string;
1612 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1614 if (ndr_flags & NDR_BUFFERS) {
1616 uint32_t _flags_save_string = ndr->flags;
1617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1618 if (r->printername) {
1619 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
1620 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1621 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
1623 ndr->flags = _flags_save_string;
1626 uint32_t _flags_save_string = ndr->flags;
1627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1628 if (r->servername) {
1629 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
1630 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1631 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
1633 ndr->flags = _flags_save_string;
1636 return NDR_ERR_SUCCESS;
1639 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
1641 uint32_t _ptr_printername;
1642 TALLOC_CTX *_mem_save_printername_0;
1643 uint32_t _ptr_servername;
1644 TALLOC_CTX *_mem_save_servername_0;
1645 if (ndr_flags & NDR_SCALARS) {
1646 NDR_CHECK(ndr_pull_align(ndr, 4));
1648 uint32_t _flags_save_string = ndr->flags;
1649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1650 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1651 if (_ptr_printername) {
1652 NDR_PULL_ALLOC(ndr, r->printername);
1653 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1654 } else {
1655 r->printername = NULL;
1657 ndr->flags = _flags_save_string;
1660 uint32_t _flags_save_string = ndr->flags;
1661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1662 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1663 if (_ptr_servername) {
1664 NDR_PULL_ALLOC(ndr, r->servername);
1665 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1666 } else {
1667 r->servername = NULL;
1669 ndr->flags = _flags_save_string;
1671 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1673 if (ndr_flags & NDR_BUFFERS) {
1675 uint32_t _flags_save_string = ndr->flags;
1676 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1677 if (r->printername) {
1678 uint32_t _relative_save_offset;
1679 _relative_save_offset = ndr->offset;
1680 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1681 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1682 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1683 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1684 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1685 ndr->offset = _relative_save_offset;
1687 ndr->flags = _flags_save_string;
1690 uint32_t _flags_save_string = ndr->flags;
1691 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1692 if (r->servername) {
1693 uint32_t _relative_save_offset;
1694 _relative_save_offset = ndr->offset;
1695 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1696 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1697 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1698 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1700 ndr->offset = _relative_save_offset;
1702 ndr->flags = _flags_save_string;
1705 return NDR_ERR_SUCCESS;
1708 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
1710 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
1711 ndr->depth++;
1712 ndr_print_ptr(ndr, "printername", r->printername);
1713 ndr->depth++;
1714 if (r->printername) {
1715 ndr_print_string(ndr, "printername", r->printername);
1717 ndr->depth--;
1718 ndr_print_ptr(ndr, "servername", r->servername);
1719 ndr->depth++;
1720 if (r->servername) {
1721 ndr_print_string(ndr, "servername", r->servername);
1723 ndr->depth--;
1724 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1725 ndr->depth--;
1728 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
1730 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
1733 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
1735 if (ndr_flags & NDR_SCALARS) {
1736 NDR_CHECK(ndr_push_align(ndr, 4));
1738 uint32_t _flags_save_string = ndr->flags;
1739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1740 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1741 ndr->flags = _flags_save_string;
1744 uint32_t _flags_save_string = ndr->flags;
1745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1746 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1747 ndr->flags = _flags_save_string;
1749 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
1751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
1753 if (ndr_flags & NDR_BUFFERS) {
1755 uint32_t _flags_save_string = ndr->flags;
1756 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1757 if (r->printername) {
1758 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
1759 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1760 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
1762 ndr->flags = _flags_save_string;
1765 uint32_t _flags_save_string = ndr->flags;
1766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1767 if (r->portname) {
1768 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname));
1769 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1770 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->portname));
1772 ndr->flags = _flags_save_string;
1775 return NDR_ERR_SUCCESS;
1778 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
1780 uint32_t _ptr_printername;
1781 TALLOC_CTX *_mem_save_printername_0;
1782 uint32_t _ptr_portname;
1783 TALLOC_CTX *_mem_save_portname_0;
1784 if (ndr_flags & NDR_SCALARS) {
1785 NDR_CHECK(ndr_pull_align(ndr, 4));
1787 uint32_t _flags_save_string = ndr->flags;
1788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1790 if (_ptr_printername) {
1791 NDR_PULL_ALLOC(ndr, r->printername);
1792 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1793 } else {
1794 r->printername = NULL;
1796 ndr->flags = _flags_save_string;
1799 uint32_t _flags_save_string = ndr->flags;
1800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1801 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1802 if (_ptr_portname) {
1803 NDR_PULL_ALLOC(ndr, r->portname);
1804 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1805 } else {
1806 r->portname = NULL;
1808 ndr->flags = _flags_save_string;
1810 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1811 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
1812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
1814 if (ndr_flags & NDR_BUFFERS) {
1816 uint32_t _flags_save_string = ndr->flags;
1817 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1818 if (r->printername) {
1819 uint32_t _relative_save_offset;
1820 _relative_save_offset = ndr->offset;
1821 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1822 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1823 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1824 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1825 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1826 ndr->offset = _relative_save_offset;
1828 ndr->flags = _flags_save_string;
1831 uint32_t _flags_save_string = ndr->flags;
1832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1833 if (r->portname) {
1834 uint32_t _relative_save_offset;
1835 _relative_save_offset = ndr->offset;
1836 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1837 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1838 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1839 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1841 ndr->offset = _relative_save_offset;
1843 ndr->flags = _flags_save_string;
1846 return NDR_ERR_SUCCESS;
1849 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
1851 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
1852 ndr->depth++;
1853 ndr_print_ptr(ndr, "printername", r->printername);
1854 ndr->depth++;
1855 if (r->printername) {
1856 ndr_print_string(ndr, "printername", r->printername);
1858 ndr->depth--;
1859 ndr_print_ptr(ndr, "portname", r->portname);
1860 ndr->depth++;
1861 if (r->portname) {
1862 ndr_print_string(ndr, "portname", r->portname);
1864 ndr->depth--;
1865 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1866 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
1867 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
1868 ndr->depth--;
1871 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
1873 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
1876 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
1878 if (ndr_flags & NDR_SCALARS) {
1879 NDR_CHECK(ndr_push_align(ndr, 4));
1880 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1882 if (ndr_flags & NDR_BUFFERS) {
1884 return NDR_ERR_SUCCESS;
1887 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
1889 if (ndr_flags & NDR_SCALARS) {
1890 NDR_CHECK(ndr_pull_align(ndr, 4));
1891 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1893 if (ndr_flags & NDR_BUFFERS) {
1895 return NDR_ERR_SUCCESS;
1898 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
1900 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
1901 ndr->depth++;
1902 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1903 ndr->depth--;
1906 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
1908 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
1911 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1914 return NDR_ERR_SUCCESS;
1917 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1919 uint32_t v;
1920 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1921 *r = v;
1922 return NDR_ERR_SUCCESS;
1925 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
1927 ndr_print_uint32(ndr, name, r);
1928 ndr->depth++;
1929 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
1930 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
1931 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
1932 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
1933 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
1934 ndr->depth--;
1937 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
1939 if (ndr_flags & NDR_SCALARS) {
1940 NDR_CHECK(ndr_push_align(ndr, 4));
1942 uint32_t _flags_save_string = ndr->flags;
1943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1944 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
1945 ndr->flags = _flags_save_string;
1947 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
1949 if (ndr_flags & NDR_BUFFERS) {
1951 uint32_t _flags_save_string = ndr->flags;
1952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1953 if (r->guid) {
1954 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->guid));
1955 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
1956 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->guid));
1958 ndr->flags = _flags_save_string;
1961 return NDR_ERR_SUCCESS;
1964 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
1966 uint32_t _ptr_guid;
1967 TALLOC_CTX *_mem_save_guid_0;
1968 if (ndr_flags & NDR_SCALARS) {
1969 NDR_CHECK(ndr_pull_align(ndr, 4));
1971 uint32_t _flags_save_string = ndr->flags;
1972 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1973 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
1974 if (_ptr_guid) {
1975 NDR_PULL_ALLOC(ndr, r->guid);
1976 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
1977 } else {
1978 r->guid = NULL;
1980 ndr->flags = _flags_save_string;
1982 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
1984 if (ndr_flags & NDR_BUFFERS) {
1986 uint32_t _flags_save_string = ndr->flags;
1987 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1988 if (r->guid) {
1989 uint32_t _relative_save_offset;
1990 _relative_save_offset = ndr->offset;
1991 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
1992 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1993 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
1994 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
1995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
1996 ndr->offset = _relative_save_offset;
1998 ndr->flags = _flags_save_string;
2001 return NDR_ERR_SUCCESS;
2004 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2006 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2007 ndr->depth++;
2008 ndr_print_ptr(ndr, "guid", r->guid);
2009 ndr->depth++;
2010 if (r->guid) {
2011 ndr_print_string(ndr, "guid", r->guid);
2013 ndr->depth--;
2014 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2015 ndr->depth--;
2018 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2020 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2023 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2025 if (ndr_flags & NDR_SCALARS) {
2026 NDR_CHECK(ndr_push_align(ndr, 4));
2028 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2030 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2031 ndr->flags = _flags_save_spoolss_DeviceMode;
2034 if (ndr_flags & NDR_BUFFERS) {
2036 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2038 if (r->devmode) {
2039 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
2041 struct ndr_push *_ndr_devmode;
2042 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2043 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2044 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2046 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
2048 ndr->flags = _flags_save_spoolss_DeviceMode;
2051 return NDR_ERR_SUCCESS;
2054 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2056 uint32_t _ptr_devmode;
2057 TALLOC_CTX *_mem_save_devmode_0;
2058 if (ndr_flags & NDR_SCALARS) {
2059 NDR_CHECK(ndr_pull_align(ndr, 4));
2061 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2062 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2063 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2064 if (_ptr_devmode) {
2065 NDR_PULL_ALLOC(ndr, r->devmode);
2066 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2067 } else {
2068 r->devmode = NULL;
2070 ndr->flags = _flags_save_spoolss_DeviceMode;
2073 if (ndr_flags & NDR_BUFFERS) {
2075 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2077 if (r->devmode) {
2078 uint32_t _relative_save_offset;
2079 _relative_save_offset = ndr->offset;
2080 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2081 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2082 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2084 struct ndr_pull *_ndr_devmode;
2085 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2086 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2087 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2089 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2090 ndr->offset = _relative_save_offset;
2092 ndr->flags = _flags_save_spoolss_DeviceMode;
2095 return NDR_ERR_SUCCESS;
2098 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2100 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2101 ndr->depth++;
2102 ndr_print_ptr(ndr, "devmode", r->devmode);
2103 ndr->depth++;
2104 if (r->devmode) {
2105 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2107 ndr->depth--;
2108 ndr->depth--;
2111 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2113 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2115 uint32_t _flags_save_UNION = ndr->flags;
2116 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
2117 if (ndr_flags & NDR_SCALARS) {
2118 int level = ndr_push_get_switch_value(ndr, r);
2119 switch (level) {
2120 case 0: {
2121 NDR_CHECK(ndr_push_align(ndr, 4));
2122 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2123 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2124 break; }
2126 case 1: {
2127 NDR_CHECK(ndr_push_align(ndr, 4));
2128 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2129 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2130 break; }
2132 case 2: {
2133 NDR_CHECK(ndr_push_align(ndr, 4));
2134 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2135 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2136 break; }
2138 case 3: {
2139 NDR_CHECK(ndr_push_align(ndr, 4));
2140 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2141 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2142 break; }
2144 case 4: {
2145 NDR_CHECK(ndr_push_align(ndr, 4));
2146 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2147 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2148 break; }
2150 case 5: {
2151 NDR_CHECK(ndr_push_align(ndr, 4));
2152 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2153 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2154 break; }
2156 case 6: {
2157 NDR_CHECK(ndr_push_align(ndr, 4));
2158 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2159 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2160 break; }
2162 case 7: {
2163 NDR_CHECK(ndr_push_align(ndr, 4));
2164 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2165 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2166 break; }
2168 case 8: {
2169 NDR_CHECK(ndr_push_align(ndr, 4));
2170 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2171 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2172 break; }
2174 case 9: {
2175 NDR_CHECK(ndr_push_align(ndr, 4));
2176 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2177 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2178 break; }
2180 default: {
2181 break; }
2185 if (ndr_flags & NDR_BUFFERS) {
2186 int level = ndr_push_get_switch_value(ndr, r);
2187 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2188 switch (level) {
2189 case 0:
2190 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2191 break;
2193 case 1:
2194 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2195 break;
2197 case 2:
2198 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2199 break;
2201 case 3:
2202 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2203 break;
2205 case 4:
2206 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2207 break;
2209 case 5:
2210 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2211 break;
2213 case 6:
2214 break;
2216 case 7:
2217 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2218 break;
2220 case 8:
2221 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2222 break;
2224 case 9:
2225 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2226 break;
2228 default:
2229 break;
2233 ndr->flags = _flags_save_UNION;
2235 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2236 return NDR_ERR_SUCCESS;
2239 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2241 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2242 int level;
2244 uint32_t _flags_save_UNION = ndr->flags;
2245 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
2246 level = ndr_pull_get_switch_value(ndr, r);
2247 if (ndr_flags & NDR_SCALARS) {
2248 switch (level) {
2249 case 0: {
2250 NDR_CHECK(ndr_pull_align(ndr, 4));
2251 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2252 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2253 break; }
2255 case 1: {
2256 NDR_CHECK(ndr_pull_align(ndr, 4));
2257 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2258 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2259 break; }
2261 case 2: {
2262 NDR_CHECK(ndr_pull_align(ndr, 4));
2263 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2264 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2265 break; }
2267 case 3: {
2268 NDR_CHECK(ndr_pull_align(ndr, 4));
2269 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2270 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2271 break; }
2273 case 4: {
2274 NDR_CHECK(ndr_pull_align(ndr, 4));
2275 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2276 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2277 break; }
2279 case 5: {
2280 NDR_CHECK(ndr_pull_align(ndr, 4));
2281 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2282 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2283 break; }
2285 case 6: {
2286 NDR_CHECK(ndr_pull_align(ndr, 4));
2287 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2288 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2289 break; }
2291 case 7: {
2292 NDR_CHECK(ndr_pull_align(ndr, 4));
2293 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2294 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2295 break; }
2297 case 8: {
2298 NDR_CHECK(ndr_pull_align(ndr, 4));
2299 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2300 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2301 break; }
2303 case 9: {
2304 NDR_CHECK(ndr_pull_align(ndr, 4));
2305 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2306 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2307 break; }
2309 default: {
2310 break; }
2314 if (ndr_flags & NDR_BUFFERS) {
2315 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2316 switch (level) {
2317 case 0:
2318 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2319 break;
2321 case 1:
2322 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2323 break;
2325 case 2:
2326 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2327 break;
2329 case 3:
2330 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2331 break;
2333 case 4:
2334 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2335 break;
2337 case 5:
2338 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2339 break;
2341 case 6:
2342 break;
2344 case 7:
2345 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2346 break;
2348 case 8:
2349 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2350 break;
2352 case 9:
2353 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2354 break;
2356 default:
2357 break;
2361 ndr->flags = _flags_save_UNION;
2363 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2364 return NDR_ERR_SUCCESS;
2367 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2369 int level;
2371 uint32_t _flags_save_UNION = ndr->flags;
2372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
2373 level = ndr_print_get_switch_value(ndr, r);
2374 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2375 switch (level) {
2376 case 0:
2377 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2378 break;
2380 case 1:
2381 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2382 break;
2384 case 2:
2385 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2386 break;
2388 case 3:
2389 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2390 break;
2392 case 4:
2393 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2394 break;
2396 case 5:
2397 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2398 break;
2400 case 6:
2401 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2402 break;
2404 case 7:
2405 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2406 break;
2408 case 8:
2409 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2410 break;
2412 case 9:
2413 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
2414 break;
2416 default:
2417 break;
2420 ndr->flags = _flags_save_UNION;
2424 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
2426 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
2427 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
2430 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
2432 if (ndr_flags & NDR_SCALARS) {
2433 NDR_CHECK(ndr_push_align(ndr, 4));
2434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2435 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
2437 if (ndr_flags & NDR_BUFFERS) {
2438 if (r->devmode) {
2440 struct ndr_push *_ndr_devmode;
2441 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2442 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2443 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2447 return NDR_ERR_SUCCESS;
2450 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
2452 uint32_t _ptr_devmode;
2453 TALLOC_CTX *_mem_save_devmode_0;
2454 if (ndr_flags & NDR_SCALARS) {
2455 NDR_CHECK(ndr_pull_align(ndr, 4));
2456 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
2457 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2458 if (_ptr_devmode) {
2459 NDR_PULL_ALLOC(ndr, r->devmode);
2460 } else {
2461 r->devmode = NULL;
2464 if (ndr_flags & NDR_BUFFERS) {
2465 if (r->devmode) {
2466 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2467 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2469 struct ndr_pull *_ndr_devmode;
2470 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
2471 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2472 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
2474 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2477 return NDR_ERR_SUCCESS;
2480 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
2482 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
2483 ndr->depth++;
2484 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);
2485 ndr_print_ptr(ndr, "devmode", r->devmode);
2486 ndr->depth++;
2487 if (r->devmode) {
2488 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2490 ndr->depth--;
2491 ndr->depth--;
2494 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
2496 if (ndr_flags & NDR_SCALARS) {
2497 NDR_CHECK(ndr_push_align(ndr, 4));
2498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2500 uint32_t _flags_save_string = ndr->flags;
2501 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2502 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2503 ndr->flags = _flags_save_string;
2506 uint32_t _flags_save_string = ndr->flags;
2507 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2508 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2509 ndr->flags = _flags_save_string;
2512 uint32_t _flags_save_string = ndr->flags;
2513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2514 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2515 ndr->flags = _flags_save_string;
2518 uint32_t _flags_save_string = ndr->flags;
2519 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2520 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2521 ndr->flags = _flags_save_string;
2524 uint32_t _flags_save_string = ndr->flags;
2525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2526 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2527 ndr->flags = _flags_save_string;
2530 uint32_t _flags_save_string = ndr->flags;
2531 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2532 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2533 ndr->flags = _flags_save_string;
2535 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
2536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2538 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2540 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2542 if (ndr_flags & NDR_BUFFERS) {
2544 uint32_t _flags_save_string = ndr->flags;
2545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2546 if (r->printer_name) {
2547 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
2548 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2549 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
2551 ndr->flags = _flags_save_string;
2554 uint32_t _flags_save_string = ndr->flags;
2555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2556 if (r->server_name) {
2557 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
2558 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
2559 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
2561 ndr->flags = _flags_save_string;
2564 uint32_t _flags_save_string = ndr->flags;
2565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2566 if (r->user_name) {
2567 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
2568 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2569 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
2571 ndr->flags = _flags_save_string;
2574 uint32_t _flags_save_string = ndr->flags;
2575 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2576 if (r->document_name) {
2577 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
2578 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
2579 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
2581 ndr->flags = _flags_save_string;
2584 uint32_t _flags_save_string = ndr->flags;
2585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2586 if (r->data_type) {
2587 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
2588 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
2589 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
2591 ndr->flags = _flags_save_string;
2594 uint32_t _flags_save_string = ndr->flags;
2595 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2596 if (r->text_status) {
2597 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
2598 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
2599 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
2601 ndr->flags = _flags_save_string;
2604 return NDR_ERR_SUCCESS;
2607 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
2609 uint32_t _ptr_printer_name;
2610 TALLOC_CTX *_mem_save_printer_name_0;
2611 uint32_t _ptr_server_name;
2612 TALLOC_CTX *_mem_save_server_name_0;
2613 uint32_t _ptr_user_name;
2614 TALLOC_CTX *_mem_save_user_name_0;
2615 uint32_t _ptr_document_name;
2616 TALLOC_CTX *_mem_save_document_name_0;
2617 uint32_t _ptr_data_type;
2618 TALLOC_CTX *_mem_save_data_type_0;
2619 uint32_t _ptr_text_status;
2620 TALLOC_CTX *_mem_save_text_status_0;
2621 if (ndr_flags & NDR_SCALARS) {
2622 NDR_CHECK(ndr_pull_align(ndr, 4));
2623 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
2625 uint32_t _flags_save_string = ndr->flags;
2626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2627 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
2628 if (_ptr_printer_name) {
2629 NDR_PULL_ALLOC(ndr, r->printer_name);
2630 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
2631 } else {
2632 r->printer_name = NULL;
2634 ndr->flags = _flags_save_string;
2637 uint32_t _flags_save_string = ndr->flags;
2638 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2639 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
2640 if (_ptr_server_name) {
2641 NDR_PULL_ALLOC(ndr, r->server_name);
2642 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
2643 } else {
2644 r->server_name = NULL;
2646 ndr->flags = _flags_save_string;
2649 uint32_t _flags_save_string = ndr->flags;
2650 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
2652 if (_ptr_user_name) {
2653 NDR_PULL_ALLOC(ndr, r->user_name);
2654 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
2655 } else {
2656 r->user_name = NULL;
2658 ndr->flags = _flags_save_string;
2661 uint32_t _flags_save_string = ndr->flags;
2662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2663 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
2664 if (_ptr_document_name) {
2665 NDR_PULL_ALLOC(ndr, r->document_name);
2666 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
2667 } else {
2668 r->document_name = NULL;
2670 ndr->flags = _flags_save_string;
2673 uint32_t _flags_save_string = ndr->flags;
2674 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2675 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
2676 if (_ptr_data_type) {
2677 NDR_PULL_ALLOC(ndr, r->data_type);
2678 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
2679 } else {
2680 r->data_type = NULL;
2682 ndr->flags = _flags_save_string;
2685 uint32_t _flags_save_string = ndr->flags;
2686 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2687 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
2688 if (_ptr_text_status) {
2689 NDR_PULL_ALLOC(ndr, r->text_status);
2690 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
2691 } else {
2692 r->text_status = NULL;
2694 ndr->flags = _flags_save_string;
2696 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
2697 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
2698 if (r->priority > 99) {
2699 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
2702 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
2703 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
2704 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2706 if (ndr_flags & NDR_BUFFERS) {
2708 uint32_t _flags_save_string = ndr->flags;
2709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2710 if (r->printer_name) {
2711 uint32_t _relative_save_offset;
2712 _relative_save_offset = ndr->offset;
2713 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
2714 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2715 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
2716 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
2717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
2718 ndr->offset = _relative_save_offset;
2720 ndr->flags = _flags_save_string;
2723 uint32_t _flags_save_string = ndr->flags;
2724 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2725 if (r->server_name) {
2726 uint32_t _relative_save_offset;
2727 _relative_save_offset = ndr->offset;
2728 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
2729 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2730 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
2731 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
2732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
2733 ndr->offset = _relative_save_offset;
2735 ndr->flags = _flags_save_string;
2738 uint32_t _flags_save_string = ndr->flags;
2739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2740 if (r->user_name) {
2741 uint32_t _relative_save_offset;
2742 _relative_save_offset = ndr->offset;
2743 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
2744 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2745 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
2746 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
2747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
2748 ndr->offset = _relative_save_offset;
2750 ndr->flags = _flags_save_string;
2753 uint32_t _flags_save_string = ndr->flags;
2754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2755 if (r->document_name) {
2756 uint32_t _relative_save_offset;
2757 _relative_save_offset = ndr->offset;
2758 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
2759 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2760 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
2761 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
2762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
2763 ndr->offset = _relative_save_offset;
2765 ndr->flags = _flags_save_string;
2768 uint32_t _flags_save_string = ndr->flags;
2769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2770 if (r->data_type) {
2771 uint32_t _relative_save_offset;
2772 _relative_save_offset = ndr->offset;
2773 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
2774 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2775 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
2776 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
2777 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
2778 ndr->offset = _relative_save_offset;
2780 ndr->flags = _flags_save_string;
2783 uint32_t _flags_save_string = ndr->flags;
2784 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2785 if (r->text_status) {
2786 uint32_t _relative_save_offset;
2787 _relative_save_offset = ndr->offset;
2788 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
2789 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
2790 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
2791 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
2792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
2793 ndr->offset = _relative_save_offset;
2795 ndr->flags = _flags_save_string;
2798 return NDR_ERR_SUCCESS;
2801 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
2803 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
2804 ndr->depth++;
2805 ndr_print_uint32(ndr, "job_id", r->job_id);
2806 ndr_print_ptr(ndr, "printer_name", r->printer_name);
2807 ndr->depth++;
2808 if (r->printer_name) {
2809 ndr_print_string(ndr, "printer_name", r->printer_name);
2811 ndr->depth--;
2812 ndr_print_ptr(ndr, "server_name", r->server_name);
2813 ndr->depth++;
2814 if (r->server_name) {
2815 ndr_print_string(ndr, "server_name", r->server_name);
2817 ndr->depth--;
2818 ndr_print_ptr(ndr, "user_name", r->user_name);
2819 ndr->depth++;
2820 if (r->user_name) {
2821 ndr_print_string(ndr, "user_name", r->user_name);
2823 ndr->depth--;
2824 ndr_print_ptr(ndr, "document_name", r->document_name);
2825 ndr->depth++;
2826 if (r->document_name) {
2827 ndr_print_string(ndr, "document_name", r->document_name);
2829 ndr->depth--;
2830 ndr_print_ptr(ndr, "data_type", r->data_type);
2831 ndr->depth++;
2832 if (r->data_type) {
2833 ndr_print_string(ndr, "data_type", r->data_type);
2835 ndr->depth--;
2836 ndr_print_ptr(ndr, "text_status", r->text_status);
2837 ndr->depth++;
2838 if (r->text_status) {
2839 ndr_print_string(ndr, "text_status", r->text_status);
2841 ndr->depth--;
2842 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
2843 ndr_print_uint32(ndr, "priority", r->priority);
2844 ndr_print_uint32(ndr, "position", r->position);
2845 ndr_print_uint32(ndr, "total_pages", r->total_pages);
2846 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
2847 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
2848 ndr->depth--;
2851 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
2853 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
2856 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
2858 if (ndr_flags & NDR_SCALARS) {
2859 NDR_CHECK(ndr_push_align(ndr, 4));
2860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2862 uint32_t _flags_save_string = ndr->flags;
2863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2864 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2865 ndr->flags = _flags_save_string;
2868 uint32_t _flags_save_string = ndr->flags;
2869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2870 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2871 ndr->flags = _flags_save_string;
2874 uint32_t _flags_save_string = ndr->flags;
2875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2876 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2877 ndr->flags = _flags_save_string;
2880 uint32_t _flags_save_string = ndr->flags;
2881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2882 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2883 ndr->flags = _flags_save_string;
2886 uint32_t _flags_save_string = ndr->flags;
2887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2888 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
2889 ndr->flags = _flags_save_string;
2892 uint32_t _flags_save_string = ndr->flags;
2893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2894 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2895 ndr->flags = _flags_save_string;
2898 uint32_t _flags_save_string = ndr->flags;
2899 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2900 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
2901 ndr->flags = _flags_save_string;
2904 uint32_t _flags_save_string = ndr->flags;
2905 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2906 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
2907 ndr->flags = _flags_save_string;
2910 uint32_t _flags_save_string = ndr->flags;
2911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2912 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
2913 ndr->flags = _flags_save_string;
2916 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2917 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2918 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2919 ndr->flags = _flags_save_spoolss_DeviceMode;
2922 uint32_t _flags_save_string = ndr->flags;
2923 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2924 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2925 ndr->flags = _flags_save_string;
2928 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2929 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2930 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2931 ndr->flags = _flags_save_spoolss_security_descriptor;
2933 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
2934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
2937 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
2938 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2939 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
2940 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2941 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
2942 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2944 if (ndr_flags & NDR_BUFFERS) {
2946 uint32_t _flags_save_string = ndr->flags;
2947 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2948 if (r->printer_name) {
2949 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
2950 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2951 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
2953 ndr->flags = _flags_save_string;
2956 uint32_t _flags_save_string = ndr->flags;
2957 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2958 if (r->server_name) {
2959 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
2960 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
2961 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
2963 ndr->flags = _flags_save_string;
2966 uint32_t _flags_save_string = ndr->flags;
2967 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2968 if (r->user_name) {
2969 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
2970 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2971 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
2973 ndr->flags = _flags_save_string;
2976 uint32_t _flags_save_string = ndr->flags;
2977 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2978 if (r->document_name) {
2979 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
2980 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
2981 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
2983 ndr->flags = _flags_save_string;
2986 uint32_t _flags_save_string = ndr->flags;
2987 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2988 if (r->notify_name) {
2989 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
2990 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
2991 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
2993 ndr->flags = _flags_save_string;
2996 uint32_t _flags_save_string = ndr->flags;
2997 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2998 if (r->data_type) {
2999 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3000 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3001 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
3003 ndr->flags = _flags_save_string;
3006 uint32_t _flags_save_string = ndr->flags;
3007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3008 if (r->print_processor) {
3009 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
3010 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3011 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
3013 ndr->flags = _flags_save_string;
3016 uint32_t _flags_save_string = ndr->flags;
3017 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3018 if (r->parameters) {
3019 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
3020 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3021 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
3023 ndr->flags = _flags_save_string;
3026 uint32_t _flags_save_string = ndr->flags;
3027 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3028 if (r->driver_name) {
3029 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
3030 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3031 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
3033 ndr->flags = _flags_save_string;
3036 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3038 if (r->devmode) {
3039 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
3041 struct ndr_push *_ndr_devmode;
3042 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3043 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3044 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
3046 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
3048 ndr->flags = _flags_save_spoolss_DeviceMode;
3051 uint32_t _flags_save_string = ndr->flags;
3052 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3053 if (r->text_status) {
3054 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3055 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3056 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3058 ndr->flags = _flags_save_string;
3061 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3062 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3063 if (r->secdesc) {
3064 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
3066 struct ndr_push *_ndr_secdesc;
3067 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3068 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3069 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3071 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
3073 ndr->flags = _flags_save_spoolss_security_descriptor;
3076 return NDR_ERR_SUCCESS;
3079 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3081 uint32_t _ptr_printer_name;
3082 TALLOC_CTX *_mem_save_printer_name_0;
3083 uint32_t _ptr_server_name;
3084 TALLOC_CTX *_mem_save_server_name_0;
3085 uint32_t _ptr_user_name;
3086 TALLOC_CTX *_mem_save_user_name_0;
3087 uint32_t _ptr_document_name;
3088 TALLOC_CTX *_mem_save_document_name_0;
3089 uint32_t _ptr_notify_name;
3090 TALLOC_CTX *_mem_save_notify_name_0;
3091 uint32_t _ptr_data_type;
3092 TALLOC_CTX *_mem_save_data_type_0;
3093 uint32_t _ptr_print_processor;
3094 TALLOC_CTX *_mem_save_print_processor_0;
3095 uint32_t _ptr_parameters;
3096 TALLOC_CTX *_mem_save_parameters_0;
3097 uint32_t _ptr_driver_name;
3098 TALLOC_CTX *_mem_save_driver_name_0;
3099 uint32_t _ptr_devmode;
3100 TALLOC_CTX *_mem_save_devmode_0;
3101 uint32_t _ptr_text_status;
3102 TALLOC_CTX *_mem_save_text_status_0;
3103 uint32_t _ptr_secdesc;
3104 TALLOC_CTX *_mem_save_secdesc_0;
3105 if (ndr_flags & NDR_SCALARS) {
3106 NDR_CHECK(ndr_pull_align(ndr, 4));
3107 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3109 uint32_t _flags_save_string = ndr->flags;
3110 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3111 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3112 if (_ptr_printer_name) {
3113 NDR_PULL_ALLOC(ndr, r->printer_name);
3114 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3115 } else {
3116 r->printer_name = NULL;
3118 ndr->flags = _flags_save_string;
3121 uint32_t _flags_save_string = ndr->flags;
3122 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3123 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3124 if (_ptr_server_name) {
3125 NDR_PULL_ALLOC(ndr, r->server_name);
3126 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3127 } else {
3128 r->server_name = NULL;
3130 ndr->flags = _flags_save_string;
3133 uint32_t _flags_save_string = ndr->flags;
3134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3135 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3136 if (_ptr_user_name) {
3137 NDR_PULL_ALLOC(ndr, r->user_name);
3138 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3139 } else {
3140 r->user_name = NULL;
3142 ndr->flags = _flags_save_string;
3145 uint32_t _flags_save_string = ndr->flags;
3146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3148 if (_ptr_document_name) {
3149 NDR_PULL_ALLOC(ndr, r->document_name);
3150 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3151 } else {
3152 r->document_name = NULL;
3154 ndr->flags = _flags_save_string;
3157 uint32_t _flags_save_string = ndr->flags;
3158 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3159 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3160 if (_ptr_notify_name) {
3161 NDR_PULL_ALLOC(ndr, r->notify_name);
3162 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3163 } else {
3164 r->notify_name = NULL;
3166 ndr->flags = _flags_save_string;
3169 uint32_t _flags_save_string = ndr->flags;
3170 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3171 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3172 if (_ptr_data_type) {
3173 NDR_PULL_ALLOC(ndr, r->data_type);
3174 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3175 } else {
3176 r->data_type = NULL;
3178 ndr->flags = _flags_save_string;
3181 uint32_t _flags_save_string = ndr->flags;
3182 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3183 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3184 if (_ptr_print_processor) {
3185 NDR_PULL_ALLOC(ndr, r->print_processor);
3186 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3187 } else {
3188 r->print_processor = NULL;
3190 ndr->flags = _flags_save_string;
3193 uint32_t _flags_save_string = ndr->flags;
3194 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3195 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3196 if (_ptr_parameters) {
3197 NDR_PULL_ALLOC(ndr, r->parameters);
3198 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3199 } else {
3200 r->parameters = NULL;
3202 ndr->flags = _flags_save_string;
3205 uint32_t _flags_save_string = ndr->flags;
3206 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3207 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3208 if (_ptr_driver_name) {
3209 NDR_PULL_ALLOC(ndr, r->driver_name);
3210 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3211 } else {
3212 r->driver_name = NULL;
3214 ndr->flags = _flags_save_string;
3217 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3220 if (_ptr_devmode) {
3221 NDR_PULL_ALLOC(ndr, r->devmode);
3222 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3223 } else {
3224 r->devmode = NULL;
3226 ndr->flags = _flags_save_spoolss_DeviceMode;
3229 uint32_t _flags_save_string = ndr->flags;
3230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3231 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3232 if (_ptr_text_status) {
3233 NDR_PULL_ALLOC(ndr, r->text_status);
3234 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3235 } else {
3236 r->text_status = NULL;
3238 ndr->flags = _flags_save_string;
3241 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3243 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3244 if (_ptr_secdesc) {
3245 NDR_PULL_ALLOC(ndr, r->secdesc);
3246 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3247 } else {
3248 r->secdesc = NULL;
3250 ndr->flags = _flags_save_spoolss_security_descriptor;
3252 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3253 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3254 if (r->priority > 99) {
3255 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3257 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3259 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3260 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3261 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3262 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3263 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3264 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3266 if (ndr_flags & NDR_BUFFERS) {
3268 uint32_t _flags_save_string = ndr->flags;
3269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3270 if (r->printer_name) {
3271 uint32_t _relative_save_offset;
3272 _relative_save_offset = ndr->offset;
3273 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3274 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3275 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3276 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3278 ndr->offset = _relative_save_offset;
3280 ndr->flags = _flags_save_string;
3283 uint32_t _flags_save_string = ndr->flags;
3284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3285 if (r->server_name) {
3286 uint32_t _relative_save_offset;
3287 _relative_save_offset = ndr->offset;
3288 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3289 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3290 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3291 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3293 ndr->offset = _relative_save_offset;
3295 ndr->flags = _flags_save_string;
3298 uint32_t _flags_save_string = ndr->flags;
3299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3300 if (r->user_name) {
3301 uint32_t _relative_save_offset;
3302 _relative_save_offset = ndr->offset;
3303 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3304 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3305 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3306 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3307 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3308 ndr->offset = _relative_save_offset;
3310 ndr->flags = _flags_save_string;
3313 uint32_t _flags_save_string = ndr->flags;
3314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3315 if (r->document_name) {
3316 uint32_t _relative_save_offset;
3317 _relative_save_offset = ndr->offset;
3318 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3319 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3320 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3321 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3323 ndr->offset = _relative_save_offset;
3325 ndr->flags = _flags_save_string;
3328 uint32_t _flags_save_string = ndr->flags;
3329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3330 if (r->notify_name) {
3331 uint32_t _relative_save_offset;
3332 _relative_save_offset = ndr->offset;
3333 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3334 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3335 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3336 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3338 ndr->offset = _relative_save_offset;
3340 ndr->flags = _flags_save_string;
3343 uint32_t _flags_save_string = ndr->flags;
3344 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3345 if (r->data_type) {
3346 uint32_t _relative_save_offset;
3347 _relative_save_offset = ndr->offset;
3348 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3349 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3350 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3351 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3353 ndr->offset = _relative_save_offset;
3355 ndr->flags = _flags_save_string;
3358 uint32_t _flags_save_string = ndr->flags;
3359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3360 if (r->print_processor) {
3361 uint32_t _relative_save_offset;
3362 _relative_save_offset = ndr->offset;
3363 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
3364 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3365 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
3366 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
3367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
3368 ndr->offset = _relative_save_offset;
3370 ndr->flags = _flags_save_string;
3373 uint32_t _flags_save_string = ndr->flags;
3374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3375 if (r->parameters) {
3376 uint32_t _relative_save_offset;
3377 _relative_save_offset = ndr->offset;
3378 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
3379 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3380 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3381 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
3382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3383 ndr->offset = _relative_save_offset;
3385 ndr->flags = _flags_save_string;
3388 uint32_t _flags_save_string = ndr->flags;
3389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3390 if (r->driver_name) {
3391 uint32_t _relative_save_offset;
3392 _relative_save_offset = ndr->offset;
3393 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
3394 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3395 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
3396 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
3397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
3398 ndr->offset = _relative_save_offset;
3400 ndr->flags = _flags_save_string;
3403 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3404 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3405 if (r->devmode) {
3406 uint32_t _relative_save_offset;
3407 _relative_save_offset = ndr->offset;
3408 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
3409 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3410 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3412 struct ndr_pull *_ndr_devmode;
3413 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3414 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3415 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
3417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3418 ndr->offset = _relative_save_offset;
3420 ndr->flags = _flags_save_spoolss_DeviceMode;
3423 uint32_t _flags_save_string = ndr->flags;
3424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3425 if (r->text_status) {
3426 uint32_t _relative_save_offset;
3427 _relative_save_offset = ndr->offset;
3428 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3429 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3430 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3431 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3433 ndr->offset = _relative_save_offset;
3435 ndr->flags = _flags_save_string;
3438 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3439 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3440 if (r->secdesc) {
3441 uint32_t _relative_save_offset;
3442 _relative_save_offset = ndr->offset;
3443 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
3444 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3445 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3447 struct ndr_pull *_ndr_secdesc;
3448 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3449 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3450 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3453 ndr->offset = _relative_save_offset;
3455 ndr->flags = _flags_save_spoolss_security_descriptor;
3458 return NDR_ERR_SUCCESS;
3461 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
3463 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
3464 ndr->depth++;
3465 ndr_print_uint32(ndr, "job_id", r->job_id);
3466 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3467 ndr->depth++;
3468 if (r->printer_name) {
3469 ndr_print_string(ndr, "printer_name", r->printer_name);
3471 ndr->depth--;
3472 ndr_print_ptr(ndr, "server_name", r->server_name);
3473 ndr->depth++;
3474 if (r->server_name) {
3475 ndr_print_string(ndr, "server_name", r->server_name);
3477 ndr->depth--;
3478 ndr_print_ptr(ndr, "user_name", r->user_name);
3479 ndr->depth++;
3480 if (r->user_name) {
3481 ndr_print_string(ndr, "user_name", r->user_name);
3483 ndr->depth--;
3484 ndr_print_ptr(ndr, "document_name", r->document_name);
3485 ndr->depth++;
3486 if (r->document_name) {
3487 ndr_print_string(ndr, "document_name", r->document_name);
3489 ndr->depth--;
3490 ndr_print_ptr(ndr, "notify_name", r->notify_name);
3491 ndr->depth++;
3492 if (r->notify_name) {
3493 ndr_print_string(ndr, "notify_name", r->notify_name);
3495 ndr->depth--;
3496 ndr_print_ptr(ndr, "data_type", r->data_type);
3497 ndr->depth++;
3498 if (r->data_type) {
3499 ndr_print_string(ndr, "data_type", r->data_type);
3501 ndr->depth--;
3502 ndr_print_ptr(ndr, "print_processor", r->print_processor);
3503 ndr->depth++;
3504 if (r->print_processor) {
3505 ndr_print_string(ndr, "print_processor", r->print_processor);
3507 ndr->depth--;
3508 ndr_print_ptr(ndr, "parameters", r->parameters);
3509 ndr->depth++;
3510 if (r->parameters) {
3511 ndr_print_string(ndr, "parameters", r->parameters);
3513 ndr->depth--;
3514 ndr_print_ptr(ndr, "driver_name", r->driver_name);
3515 ndr->depth++;
3516 if (r->driver_name) {
3517 ndr_print_string(ndr, "driver_name", r->driver_name);
3519 ndr->depth--;
3520 ndr_print_ptr(ndr, "devmode", r->devmode);
3521 ndr->depth++;
3522 if (r->devmode) {
3523 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3525 ndr->depth--;
3526 ndr_print_ptr(ndr, "text_status", r->text_status);
3527 ndr->depth++;
3528 if (r->text_status) {
3529 ndr_print_string(ndr, "text_status", r->text_status);
3531 ndr->depth--;
3532 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3533 ndr->depth++;
3534 if (r->secdesc) {
3535 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
3537 ndr->depth--;
3538 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3539 ndr_print_uint32(ndr, "priority", r->priority);
3540 ndr_print_uint32(ndr, "position", r->position);
3541 ndr_print_uint32(ndr, "start_time", r->start_time);
3542 ndr_print_uint32(ndr, "until_time", r->until_time);
3543 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3544 ndr_print_uint32(ndr, "size", r->size);
3545 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3546 ndr_print_uint32(ndr, "time", r->time);
3547 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3548 ndr->depth--;
3551 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
3553 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
3556 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
3558 if (ndr_flags & NDR_SCALARS) {
3559 NDR_CHECK(ndr_push_align(ndr, 4));
3560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3561 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
3562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
3564 if (ndr_flags & NDR_BUFFERS) {
3566 return NDR_ERR_SUCCESS;
3569 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
3571 if (ndr_flags & NDR_SCALARS) {
3572 NDR_CHECK(ndr_pull_align(ndr, 4));
3573 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3574 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
3575 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
3577 if (ndr_flags & NDR_BUFFERS) {
3579 return NDR_ERR_SUCCESS;
3582 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
3584 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
3585 ndr->depth++;
3586 ndr_print_uint32(ndr, "job_id", r->job_id);
3587 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
3588 ndr_print_uint32(ndr, "reserved", r->reserved);
3589 ndr->depth--;
3592 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
3594 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
3597 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
3599 if (ndr_flags & NDR_SCALARS) {
3600 NDR_CHECK(ndr_push_align(ndr, 4));
3601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3603 uint32_t _flags_save_string = ndr->flags;
3604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3605 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3606 ndr->flags = _flags_save_string;
3609 uint32_t _flags_save_string = ndr->flags;
3610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3611 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3612 ndr->flags = _flags_save_string;
3615 uint32_t _flags_save_string = ndr->flags;
3616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3617 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3618 ndr->flags = _flags_save_string;
3621 uint32_t _flags_save_string = ndr->flags;
3622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3623 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3624 ndr->flags = _flags_save_string;
3627 uint32_t _flags_save_string = ndr->flags;
3628 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3629 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3630 ndr->flags = _flags_save_string;
3633 uint32_t _flags_save_string = ndr->flags;
3634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3635 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3636 ndr->flags = _flags_save_string;
3639 uint32_t _flags_save_string = ndr->flags;
3640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3641 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3642 ndr->flags = _flags_save_string;
3645 uint32_t _flags_save_string = ndr->flags;
3646 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3647 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3648 ndr->flags = _flags_save_string;
3651 uint32_t _flags_save_string = ndr->flags;
3652 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3653 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3654 ndr->flags = _flags_save_string;
3657 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3658 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3659 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3660 ndr->flags = _flags_save_spoolss_DeviceMode;
3663 uint32_t _flags_save_string = ndr->flags;
3664 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3665 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3666 ndr->flags = _flags_save_string;
3669 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3671 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3672 ndr->flags = _flags_save_spoolss_security_descriptor;
3674 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3676 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3681 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
3686 if (ndr_flags & NDR_BUFFERS) {
3688 uint32_t _flags_save_string = ndr->flags;
3689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3690 if (r->printer_name) {
3691 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3692 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3693 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3695 ndr->flags = _flags_save_string;
3698 uint32_t _flags_save_string = ndr->flags;
3699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3700 if (r->server_name) {
3701 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3702 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3703 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
3705 ndr->flags = _flags_save_string;
3708 uint32_t _flags_save_string = ndr->flags;
3709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3710 if (r->user_name) {
3711 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3712 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3713 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
3715 ndr->flags = _flags_save_string;
3718 uint32_t _flags_save_string = ndr->flags;
3719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3720 if (r->document_name) {
3721 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3722 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3723 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
3725 ndr->flags = _flags_save_string;
3728 uint32_t _flags_save_string = ndr->flags;
3729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3730 if (r->notify_name) {
3731 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
3732 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3733 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
3735 ndr->flags = _flags_save_string;
3738 uint32_t _flags_save_string = ndr->flags;
3739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3740 if (r->data_type) {
3741 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3742 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3743 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
3745 ndr->flags = _flags_save_string;
3748 uint32_t _flags_save_string = ndr->flags;
3749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3750 if (r->print_processor) {
3751 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
3752 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3753 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
3755 ndr->flags = _flags_save_string;
3758 uint32_t _flags_save_string = ndr->flags;
3759 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3760 if (r->parameters) {
3761 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
3762 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3763 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
3765 ndr->flags = _flags_save_string;
3768 uint32_t _flags_save_string = ndr->flags;
3769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3770 if (r->driver_name) {
3771 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
3772 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3773 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
3775 ndr->flags = _flags_save_string;
3778 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3780 if (r->devmode) {
3781 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
3783 struct ndr_push *_ndr_devmode;
3784 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3785 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3786 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
3788 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
3790 ndr->flags = _flags_save_spoolss_DeviceMode;
3793 uint32_t _flags_save_string = ndr->flags;
3794 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3795 if (r->text_status) {
3796 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3797 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3798 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3800 ndr->flags = _flags_save_string;
3803 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3805 if (r->secdesc) {
3806 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
3808 struct ndr_push *_ndr_secdesc;
3809 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3810 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3811 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3813 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
3815 ndr->flags = _flags_save_spoolss_security_descriptor;
3818 return NDR_ERR_SUCCESS;
3821 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
3823 uint32_t _ptr_printer_name;
3824 TALLOC_CTX *_mem_save_printer_name_0;
3825 uint32_t _ptr_server_name;
3826 TALLOC_CTX *_mem_save_server_name_0;
3827 uint32_t _ptr_user_name;
3828 TALLOC_CTX *_mem_save_user_name_0;
3829 uint32_t _ptr_document_name;
3830 TALLOC_CTX *_mem_save_document_name_0;
3831 uint32_t _ptr_notify_name;
3832 TALLOC_CTX *_mem_save_notify_name_0;
3833 uint32_t _ptr_data_type;
3834 TALLOC_CTX *_mem_save_data_type_0;
3835 uint32_t _ptr_print_processor;
3836 TALLOC_CTX *_mem_save_print_processor_0;
3837 uint32_t _ptr_parameters;
3838 TALLOC_CTX *_mem_save_parameters_0;
3839 uint32_t _ptr_driver_name;
3840 TALLOC_CTX *_mem_save_driver_name_0;
3841 uint32_t _ptr_devmode;
3842 TALLOC_CTX *_mem_save_devmode_0;
3843 uint32_t _ptr_text_status;
3844 TALLOC_CTX *_mem_save_text_status_0;
3845 uint32_t _ptr_secdesc;
3846 TALLOC_CTX *_mem_save_secdesc_0;
3847 if (ndr_flags & NDR_SCALARS) {
3848 NDR_CHECK(ndr_pull_align(ndr, 4));
3849 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3851 uint32_t _flags_save_string = ndr->flags;
3852 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3853 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3854 if (_ptr_printer_name) {
3855 NDR_PULL_ALLOC(ndr, r->printer_name);
3856 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3857 } else {
3858 r->printer_name = NULL;
3860 ndr->flags = _flags_save_string;
3863 uint32_t _flags_save_string = ndr->flags;
3864 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3866 if (_ptr_server_name) {
3867 NDR_PULL_ALLOC(ndr, r->server_name);
3868 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3869 } else {
3870 r->server_name = NULL;
3872 ndr->flags = _flags_save_string;
3875 uint32_t _flags_save_string = ndr->flags;
3876 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3877 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3878 if (_ptr_user_name) {
3879 NDR_PULL_ALLOC(ndr, r->user_name);
3880 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3881 } else {
3882 r->user_name = NULL;
3884 ndr->flags = _flags_save_string;
3887 uint32_t _flags_save_string = ndr->flags;
3888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3890 if (_ptr_document_name) {
3891 NDR_PULL_ALLOC(ndr, r->document_name);
3892 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3893 } else {
3894 r->document_name = NULL;
3896 ndr->flags = _flags_save_string;
3899 uint32_t _flags_save_string = ndr->flags;
3900 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3902 if (_ptr_notify_name) {
3903 NDR_PULL_ALLOC(ndr, r->notify_name);
3904 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3905 } else {
3906 r->notify_name = NULL;
3908 ndr->flags = _flags_save_string;
3911 uint32_t _flags_save_string = ndr->flags;
3912 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3913 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3914 if (_ptr_data_type) {
3915 NDR_PULL_ALLOC(ndr, r->data_type);
3916 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3917 } else {
3918 r->data_type = NULL;
3920 ndr->flags = _flags_save_string;
3923 uint32_t _flags_save_string = ndr->flags;
3924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3926 if (_ptr_print_processor) {
3927 NDR_PULL_ALLOC(ndr, r->print_processor);
3928 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3929 } else {
3930 r->print_processor = NULL;
3932 ndr->flags = _flags_save_string;
3935 uint32_t _flags_save_string = ndr->flags;
3936 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3937 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3938 if (_ptr_parameters) {
3939 NDR_PULL_ALLOC(ndr, r->parameters);
3940 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3941 } else {
3942 r->parameters = NULL;
3944 ndr->flags = _flags_save_string;
3947 uint32_t _flags_save_string = ndr->flags;
3948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3949 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3950 if (_ptr_driver_name) {
3951 NDR_PULL_ALLOC(ndr, r->driver_name);
3952 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3953 } else {
3954 r->driver_name = NULL;
3956 ndr->flags = _flags_save_string;
3959 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3961 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3962 if (_ptr_devmode) {
3963 NDR_PULL_ALLOC(ndr, r->devmode);
3964 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3965 } else {
3966 r->devmode = NULL;
3968 ndr->flags = _flags_save_spoolss_DeviceMode;
3971 uint32_t _flags_save_string = ndr->flags;
3972 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3973 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3974 if (_ptr_text_status) {
3975 NDR_PULL_ALLOC(ndr, r->text_status);
3976 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3977 } else {
3978 r->text_status = NULL;
3980 ndr->flags = _flags_save_string;
3983 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3984 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3985 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3986 if (_ptr_secdesc) {
3987 NDR_PULL_ALLOC(ndr, r->secdesc);
3988 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3989 } else {
3990 r->secdesc = NULL;
3992 ndr->flags = _flags_save_spoolss_security_descriptor;
3994 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3995 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3996 if (r->priority > 99) {
3997 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3999 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4000 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4001 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4004 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4005 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4006 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4007 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
4009 if (ndr_flags & NDR_BUFFERS) {
4011 uint32_t _flags_save_string = ndr->flags;
4012 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4013 if (r->printer_name) {
4014 uint32_t _relative_save_offset;
4015 _relative_save_offset = ndr->offset;
4016 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4017 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4018 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4019 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4021 ndr->offset = _relative_save_offset;
4023 ndr->flags = _flags_save_string;
4026 uint32_t _flags_save_string = ndr->flags;
4027 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4028 if (r->server_name) {
4029 uint32_t _relative_save_offset;
4030 _relative_save_offset = ndr->offset;
4031 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4032 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4033 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4034 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4036 ndr->offset = _relative_save_offset;
4038 ndr->flags = _flags_save_string;
4041 uint32_t _flags_save_string = ndr->flags;
4042 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4043 if (r->user_name) {
4044 uint32_t _relative_save_offset;
4045 _relative_save_offset = ndr->offset;
4046 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4047 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4048 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4049 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4051 ndr->offset = _relative_save_offset;
4053 ndr->flags = _flags_save_string;
4056 uint32_t _flags_save_string = ndr->flags;
4057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4058 if (r->document_name) {
4059 uint32_t _relative_save_offset;
4060 _relative_save_offset = ndr->offset;
4061 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4062 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4063 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4064 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4065 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4066 ndr->offset = _relative_save_offset;
4068 ndr->flags = _flags_save_string;
4071 uint32_t _flags_save_string = ndr->flags;
4072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4073 if (r->notify_name) {
4074 uint32_t _relative_save_offset;
4075 _relative_save_offset = ndr->offset;
4076 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4077 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4078 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4079 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4081 ndr->offset = _relative_save_offset;
4083 ndr->flags = _flags_save_string;
4086 uint32_t _flags_save_string = ndr->flags;
4087 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4088 if (r->data_type) {
4089 uint32_t _relative_save_offset;
4090 _relative_save_offset = ndr->offset;
4091 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4092 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4093 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4094 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4096 ndr->offset = _relative_save_offset;
4098 ndr->flags = _flags_save_string;
4101 uint32_t _flags_save_string = ndr->flags;
4102 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4103 if (r->print_processor) {
4104 uint32_t _relative_save_offset;
4105 _relative_save_offset = ndr->offset;
4106 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4107 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4108 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4109 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4111 ndr->offset = _relative_save_offset;
4113 ndr->flags = _flags_save_string;
4116 uint32_t _flags_save_string = ndr->flags;
4117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4118 if (r->parameters) {
4119 uint32_t _relative_save_offset;
4120 _relative_save_offset = ndr->offset;
4121 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4122 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4123 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4124 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4125 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4126 ndr->offset = _relative_save_offset;
4128 ndr->flags = _flags_save_string;
4131 uint32_t _flags_save_string = ndr->flags;
4132 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4133 if (r->driver_name) {
4134 uint32_t _relative_save_offset;
4135 _relative_save_offset = ndr->offset;
4136 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4137 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4138 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4139 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4140 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4141 ndr->offset = _relative_save_offset;
4143 ndr->flags = _flags_save_string;
4146 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4147 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4148 if (r->devmode) {
4149 uint32_t _relative_save_offset;
4150 _relative_save_offset = ndr->offset;
4151 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4152 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4153 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4155 struct ndr_pull *_ndr_devmode;
4156 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4157 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4158 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
4160 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4161 ndr->offset = _relative_save_offset;
4163 ndr->flags = _flags_save_spoolss_DeviceMode;
4166 uint32_t _flags_save_string = ndr->flags;
4167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4168 if (r->text_status) {
4169 uint32_t _relative_save_offset;
4170 _relative_save_offset = ndr->offset;
4171 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4172 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4173 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4174 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4175 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4176 ndr->offset = _relative_save_offset;
4178 ndr->flags = _flags_save_string;
4181 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4182 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4183 if (r->secdesc) {
4184 uint32_t _relative_save_offset;
4185 _relative_save_offset = ndr->offset;
4186 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4187 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4188 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4190 struct ndr_pull *_ndr_secdesc;
4191 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4192 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4193 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4196 ndr->offset = _relative_save_offset;
4198 ndr->flags = _flags_save_spoolss_security_descriptor;
4201 return NDR_ERR_SUCCESS;
4204 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4206 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4207 ndr->depth++;
4208 ndr_print_uint32(ndr, "job_id", r->job_id);
4209 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4210 ndr->depth++;
4211 if (r->printer_name) {
4212 ndr_print_string(ndr, "printer_name", r->printer_name);
4214 ndr->depth--;
4215 ndr_print_ptr(ndr, "server_name", r->server_name);
4216 ndr->depth++;
4217 if (r->server_name) {
4218 ndr_print_string(ndr, "server_name", r->server_name);
4220 ndr->depth--;
4221 ndr_print_ptr(ndr, "user_name", r->user_name);
4222 ndr->depth++;
4223 if (r->user_name) {
4224 ndr_print_string(ndr, "user_name", r->user_name);
4226 ndr->depth--;
4227 ndr_print_ptr(ndr, "document_name", r->document_name);
4228 ndr->depth++;
4229 if (r->document_name) {
4230 ndr_print_string(ndr, "document_name", r->document_name);
4232 ndr->depth--;
4233 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4234 ndr->depth++;
4235 if (r->notify_name) {
4236 ndr_print_string(ndr, "notify_name", r->notify_name);
4238 ndr->depth--;
4239 ndr_print_ptr(ndr, "data_type", r->data_type);
4240 ndr->depth++;
4241 if (r->data_type) {
4242 ndr_print_string(ndr, "data_type", r->data_type);
4244 ndr->depth--;
4245 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4246 ndr->depth++;
4247 if (r->print_processor) {
4248 ndr_print_string(ndr, "print_processor", r->print_processor);
4250 ndr->depth--;
4251 ndr_print_ptr(ndr, "parameters", r->parameters);
4252 ndr->depth++;
4253 if (r->parameters) {
4254 ndr_print_string(ndr, "parameters", r->parameters);
4256 ndr->depth--;
4257 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4258 ndr->depth++;
4259 if (r->driver_name) {
4260 ndr_print_string(ndr, "driver_name", r->driver_name);
4262 ndr->depth--;
4263 ndr_print_ptr(ndr, "devmode", r->devmode);
4264 ndr->depth++;
4265 if (r->devmode) {
4266 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4268 ndr->depth--;
4269 ndr_print_ptr(ndr, "text_status", r->text_status);
4270 ndr->depth++;
4271 if (r->text_status) {
4272 ndr_print_string(ndr, "text_status", r->text_status);
4274 ndr->depth--;
4275 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4276 ndr->depth++;
4277 if (r->secdesc) {
4278 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
4280 ndr->depth--;
4281 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4282 ndr_print_uint32(ndr, "priority", r->priority);
4283 ndr_print_uint32(ndr, "position", r->position);
4284 ndr_print_uint32(ndr, "start_time", r->start_time);
4285 ndr_print_uint32(ndr, "until_time", r->until_time);
4286 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4287 ndr_print_uint32(ndr, "size", r->size);
4288 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4289 ndr_print_uint32(ndr, "time", r->time);
4290 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4291 ndr_print_uint32(ndr, "size_high", r->size_high);
4292 ndr->depth--;
4295 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
4297 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
4300 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4302 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4304 uint32_t _flags_save_UNION = ndr->flags;
4305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
4306 if (ndr_flags & NDR_SCALARS) {
4307 int level = ndr_push_get_switch_value(ndr, r);
4308 switch (level) {
4309 case 1: {
4310 NDR_CHECK(ndr_push_align(ndr, 4));
4311 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4312 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4313 break; }
4315 case 2: {
4316 NDR_CHECK(ndr_push_align(ndr, 4));
4317 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4318 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4319 break; }
4321 case 3: {
4322 NDR_CHECK(ndr_push_align(ndr, 4));
4323 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4324 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4325 break; }
4327 case 4: {
4328 NDR_CHECK(ndr_push_align(ndr, 4));
4329 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4330 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4331 break; }
4333 default: {
4334 break; }
4338 if (ndr_flags & NDR_BUFFERS) {
4339 int level = ndr_push_get_switch_value(ndr, r);
4340 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
4341 switch (level) {
4342 case 1:
4343 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4344 break;
4346 case 2:
4347 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4348 break;
4350 case 3:
4351 break;
4353 case 4:
4354 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4355 break;
4357 default:
4358 break;
4362 ndr->flags = _flags_save_UNION;
4364 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
4365 return NDR_ERR_SUCCESS;
4368 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
4370 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
4371 int level;
4373 uint32_t _flags_save_UNION = ndr->flags;
4374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
4375 level = ndr_pull_get_switch_value(ndr, r);
4376 if (ndr_flags & NDR_SCALARS) {
4377 switch (level) {
4378 case 1: {
4379 NDR_CHECK(ndr_pull_align(ndr, 4));
4380 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4381 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4382 break; }
4384 case 2: {
4385 NDR_CHECK(ndr_pull_align(ndr, 4));
4386 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4387 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4388 break; }
4390 case 3: {
4391 NDR_CHECK(ndr_pull_align(ndr, 4));
4392 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4393 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4394 break; }
4396 case 4: {
4397 NDR_CHECK(ndr_pull_align(ndr, 4));
4398 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4399 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4400 break; }
4402 default: {
4403 break; }
4407 if (ndr_flags & NDR_BUFFERS) {
4408 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
4409 switch (level) {
4410 case 1:
4411 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4412 break;
4414 case 2:
4415 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4416 break;
4418 case 3:
4419 break;
4421 case 4:
4422 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4423 break;
4425 default:
4426 break;
4430 ndr->flags = _flags_save_UNION;
4432 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
4433 return NDR_ERR_SUCCESS;
4436 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
4438 int level;
4440 uint32_t _flags_save_UNION = ndr->flags;
4441 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
4442 level = ndr_print_get_switch_value(ndr, r);
4443 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
4444 switch (level) {
4445 case 1:
4446 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
4447 break;
4449 case 2:
4450 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
4451 break;
4453 case 3:
4454 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
4455 break;
4457 case 4:
4458 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
4459 break;
4461 default:
4462 break;
4465 ndr->flags = _flags_save_UNION;
4469 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
4471 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
4472 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
4475 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
4477 if (ndr_flags & NDR_SCALARS) {
4478 NDR_CHECK(ndr_push_align(ndr, 4));
4479 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4480 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4481 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4482 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4483 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4484 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4485 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4486 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4487 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4490 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4491 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4493 if (ndr_flags & NDR_BUFFERS) {
4494 if (r->printer_name) {
4495 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4496 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4497 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4498 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4500 if (r->server_name) {
4501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4504 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4506 if (r->user_name) {
4507 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4510 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4512 if (r->document_name) {
4513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4516 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4518 if (r->data_type) {
4519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4522 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4524 if (r->text_status) {
4525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4528 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4531 return NDR_ERR_SUCCESS;
4534 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
4536 uint32_t _ptr_printer_name;
4537 uint32_t size_printer_name_1 = 0;
4538 uint32_t length_printer_name_1 = 0;
4539 TALLOC_CTX *_mem_save_printer_name_0;
4540 uint32_t _ptr_server_name;
4541 uint32_t size_server_name_1 = 0;
4542 uint32_t length_server_name_1 = 0;
4543 TALLOC_CTX *_mem_save_server_name_0;
4544 uint32_t _ptr_user_name;
4545 uint32_t size_user_name_1 = 0;
4546 uint32_t length_user_name_1 = 0;
4547 TALLOC_CTX *_mem_save_user_name_0;
4548 uint32_t _ptr_document_name;
4549 uint32_t size_document_name_1 = 0;
4550 uint32_t length_document_name_1 = 0;
4551 TALLOC_CTX *_mem_save_document_name_0;
4552 uint32_t _ptr_data_type;
4553 uint32_t size_data_type_1 = 0;
4554 uint32_t length_data_type_1 = 0;
4555 TALLOC_CTX *_mem_save_data_type_0;
4556 uint32_t _ptr_text_status;
4557 uint32_t size_text_status_1 = 0;
4558 uint32_t length_text_status_1 = 0;
4559 TALLOC_CTX *_mem_save_text_status_0;
4560 if (ndr_flags & NDR_SCALARS) {
4561 NDR_CHECK(ndr_pull_align(ndr, 4));
4562 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4563 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4564 if (_ptr_printer_name) {
4565 NDR_PULL_ALLOC(ndr, r->printer_name);
4566 } else {
4567 r->printer_name = NULL;
4569 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4570 if (_ptr_server_name) {
4571 NDR_PULL_ALLOC(ndr, r->server_name);
4572 } else {
4573 r->server_name = NULL;
4575 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4576 if (_ptr_user_name) {
4577 NDR_PULL_ALLOC(ndr, r->user_name);
4578 } else {
4579 r->user_name = NULL;
4581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4582 if (_ptr_document_name) {
4583 NDR_PULL_ALLOC(ndr, r->document_name);
4584 } else {
4585 r->document_name = NULL;
4587 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4588 if (_ptr_data_type) {
4589 NDR_PULL_ALLOC(ndr, r->data_type);
4590 } else {
4591 r->data_type = NULL;
4593 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4594 if (_ptr_text_status) {
4595 NDR_PULL_ALLOC(ndr, r->text_status);
4596 } else {
4597 r->text_status = NULL;
4599 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4600 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4601 if (r->priority > 99) {
4602 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4604 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4605 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4606 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4607 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4609 if (ndr_flags & NDR_BUFFERS) {
4610 if (r->printer_name) {
4611 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4612 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4613 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4614 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4615 size_printer_name_1 = ndr_get_array_size(ndr, &r->printer_name);
4616 length_printer_name_1 = ndr_get_array_length(ndr, &r->printer_name);
4617 if (length_printer_name_1 > size_printer_name_1) {
4618 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printer_name_1, length_printer_name_1);
4620 NDR_CHECK(ndr_check_string_terminator(ndr, length_printer_name_1, sizeof(uint16_t)));
4621 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, length_printer_name_1, sizeof(uint16_t), CH_UTF16));
4622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4624 if (r->server_name) {
4625 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4626 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4627 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4628 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4629 size_server_name_1 = ndr_get_array_size(ndr, &r->server_name);
4630 length_server_name_1 = ndr_get_array_length(ndr, &r->server_name);
4631 if (length_server_name_1 > size_server_name_1) {
4632 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1);
4634 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
4635 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
4636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4638 if (r->user_name) {
4639 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4640 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4641 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4642 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4643 size_user_name_1 = ndr_get_array_size(ndr, &r->user_name);
4644 length_user_name_1 = ndr_get_array_length(ndr, &r->user_name);
4645 if (length_user_name_1 > size_user_name_1) {
4646 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_name_1, length_user_name_1);
4648 NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t)));
4649 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16));
4650 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4652 if (r->document_name) {
4653 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4654 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4655 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4656 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4657 size_document_name_1 = ndr_get_array_size(ndr, &r->document_name);
4658 length_document_name_1 = ndr_get_array_length(ndr, &r->document_name);
4659 if (length_document_name_1 > size_document_name_1) {
4660 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_document_name_1, length_document_name_1);
4662 NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
4663 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
4664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4666 if (r->data_type) {
4667 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4668 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4669 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4670 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4671 size_data_type_1 = ndr_get_array_size(ndr, &r->data_type);
4672 length_data_type_1 = ndr_get_array_length(ndr, &r->data_type);
4673 if (length_data_type_1 > size_data_type_1) {
4674 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_type_1, length_data_type_1);
4676 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
4677 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
4678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4680 if (r->text_status) {
4681 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4682 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4683 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
4684 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
4685 size_text_status_1 = ndr_get_array_size(ndr, &r->text_status);
4686 length_text_status_1 = ndr_get_array_length(ndr, &r->text_status);
4687 if (length_text_status_1 > size_text_status_1) {
4688 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_text_status_1, length_text_status_1);
4690 NDR_CHECK(ndr_check_string_terminator(ndr, length_text_status_1, sizeof(uint16_t)));
4691 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, length_text_status_1, sizeof(uint16_t), CH_UTF16));
4692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4695 return NDR_ERR_SUCCESS;
4698 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
4700 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
4701 ndr->depth++;
4702 ndr_print_uint32(ndr, "job_id", r->job_id);
4703 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4704 ndr->depth++;
4705 if (r->printer_name) {
4706 ndr_print_string(ndr, "printer_name", r->printer_name);
4708 ndr->depth--;
4709 ndr_print_ptr(ndr, "server_name", r->server_name);
4710 ndr->depth++;
4711 if (r->server_name) {
4712 ndr_print_string(ndr, "server_name", r->server_name);
4714 ndr->depth--;
4715 ndr_print_ptr(ndr, "user_name", r->user_name);
4716 ndr->depth++;
4717 if (r->user_name) {
4718 ndr_print_string(ndr, "user_name", r->user_name);
4720 ndr->depth--;
4721 ndr_print_ptr(ndr, "document_name", r->document_name);
4722 ndr->depth++;
4723 if (r->document_name) {
4724 ndr_print_string(ndr, "document_name", r->document_name);
4726 ndr->depth--;
4727 ndr_print_ptr(ndr, "data_type", r->data_type);
4728 ndr->depth++;
4729 if (r->data_type) {
4730 ndr_print_string(ndr, "data_type", r->data_type);
4732 ndr->depth--;
4733 ndr_print_ptr(ndr, "text_status", r->text_status);
4734 ndr->depth++;
4735 if (r->text_status) {
4736 ndr_print_string(ndr, "text_status", r->text_status);
4738 ndr->depth--;
4739 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4740 ndr_print_uint32(ndr, "priority", r->priority);
4741 ndr_print_uint32(ndr, "position", r->position);
4742 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4743 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4744 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4745 ndr->depth--;
4748 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
4750 if (ndr_flags & NDR_SCALARS) {
4751 NDR_CHECK(ndr_push_align(ndr, 4));
4752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4753 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4754 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4755 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4756 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4757 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
4758 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4759 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
4760 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
4761 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
4763 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
4765 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4772 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4776 if (ndr_flags & NDR_BUFFERS) {
4777 if (r->printer_name) {
4778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4781 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4783 if (r->server_name) {
4784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4786 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4787 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4789 if (r->user_name) {
4790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4793 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4795 if (r->document_name) {
4796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4799 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4801 if (r->notify_name) {
4802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
4803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4804 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
4805 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4807 if (r->data_type) {
4808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4811 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4813 if (r->print_processor) {
4814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
4815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
4817 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4819 if (r->parameters) {
4820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
4821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
4823 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4825 if (r->driver_name) {
4826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4829 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4831 if (r->text_status) {
4832 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4835 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4838 return NDR_ERR_SUCCESS;
4841 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
4843 uint32_t _ptr_printer_name;
4844 uint32_t size_printer_name_1 = 0;
4845 uint32_t length_printer_name_1 = 0;
4846 TALLOC_CTX *_mem_save_printer_name_0;
4847 uint32_t _ptr_server_name;
4848 uint32_t size_server_name_1 = 0;
4849 uint32_t length_server_name_1 = 0;
4850 TALLOC_CTX *_mem_save_server_name_0;
4851 uint32_t _ptr_user_name;
4852 uint32_t size_user_name_1 = 0;
4853 uint32_t length_user_name_1 = 0;
4854 TALLOC_CTX *_mem_save_user_name_0;
4855 uint32_t _ptr_document_name;
4856 uint32_t size_document_name_1 = 0;
4857 uint32_t length_document_name_1 = 0;
4858 TALLOC_CTX *_mem_save_document_name_0;
4859 uint32_t _ptr_notify_name;
4860 uint32_t size_notify_name_1 = 0;
4861 uint32_t length_notify_name_1 = 0;
4862 TALLOC_CTX *_mem_save_notify_name_0;
4863 uint32_t _ptr_data_type;
4864 uint32_t size_data_type_1 = 0;
4865 uint32_t length_data_type_1 = 0;
4866 TALLOC_CTX *_mem_save_data_type_0;
4867 uint32_t _ptr_print_processor;
4868 uint32_t size_print_processor_1 = 0;
4869 uint32_t length_print_processor_1 = 0;
4870 TALLOC_CTX *_mem_save_print_processor_0;
4871 uint32_t _ptr_parameters;
4872 uint32_t size_parameters_1 = 0;
4873 uint32_t length_parameters_1 = 0;
4874 TALLOC_CTX *_mem_save_parameters_0;
4875 uint32_t _ptr_driver_name;
4876 uint32_t size_driver_name_1 = 0;
4877 uint32_t length_driver_name_1 = 0;
4878 TALLOC_CTX *_mem_save_driver_name_0;
4879 uint32_t _ptr_text_status;
4880 uint32_t size_text_status_1 = 0;
4881 uint32_t length_text_status_1 = 0;
4882 TALLOC_CTX *_mem_save_text_status_0;
4883 if (ndr_flags & NDR_SCALARS) {
4884 NDR_CHECK(ndr_pull_align(ndr, 4));
4885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4887 if (_ptr_printer_name) {
4888 NDR_PULL_ALLOC(ndr, r->printer_name);
4889 } else {
4890 r->printer_name = NULL;
4892 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4893 if (_ptr_server_name) {
4894 NDR_PULL_ALLOC(ndr, r->server_name);
4895 } else {
4896 r->server_name = NULL;
4898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4899 if (_ptr_user_name) {
4900 NDR_PULL_ALLOC(ndr, r->user_name);
4901 } else {
4902 r->user_name = NULL;
4904 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4905 if (_ptr_document_name) {
4906 NDR_PULL_ALLOC(ndr, r->document_name);
4907 } else {
4908 r->document_name = NULL;
4910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4911 if (_ptr_notify_name) {
4912 NDR_PULL_ALLOC(ndr, r->notify_name);
4913 } else {
4914 r->notify_name = NULL;
4916 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4917 if (_ptr_data_type) {
4918 NDR_PULL_ALLOC(ndr, r->data_type);
4919 } else {
4920 r->data_type = NULL;
4922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4923 if (_ptr_print_processor) {
4924 NDR_PULL_ALLOC(ndr, r->print_processor);
4925 } else {
4926 r->print_processor = NULL;
4928 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4929 if (_ptr_parameters) {
4930 NDR_PULL_ALLOC(ndr, r->parameters);
4931 } else {
4932 r->parameters = NULL;
4934 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4935 if (_ptr_driver_name) {
4936 NDR_PULL_ALLOC(ndr, r->driver_name);
4937 } else {
4938 r->driver_name = NULL;
4940 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
4941 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4942 if (_ptr_text_status) {
4943 NDR_PULL_ALLOC(ndr, r->text_status);
4944 } else {
4945 r->text_status = NULL;
4947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
4948 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4949 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4950 if (r->priority > 99) {
4951 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4953 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4954 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4955 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4956 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4957 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4958 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4959 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4960 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4962 if (ndr_flags & NDR_BUFFERS) {
4963 if (r->printer_name) {
4964 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4965 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4966 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4967 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4968 size_printer_name_1 = ndr_get_array_size(ndr, &r->printer_name);
4969 length_printer_name_1 = ndr_get_array_length(ndr, &r->printer_name);
4970 if (length_printer_name_1 > size_printer_name_1) {
4971 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printer_name_1, length_printer_name_1);
4973 NDR_CHECK(ndr_check_string_terminator(ndr, length_printer_name_1, sizeof(uint16_t)));
4974 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, length_printer_name_1, sizeof(uint16_t), CH_UTF16));
4975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4977 if (r->server_name) {
4978 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4979 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4980 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4981 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4982 size_server_name_1 = ndr_get_array_size(ndr, &r->server_name);
4983 length_server_name_1 = ndr_get_array_length(ndr, &r->server_name);
4984 if (length_server_name_1 > size_server_name_1) {
4985 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1);
4987 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
4988 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
4989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4991 if (r->user_name) {
4992 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4993 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4994 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4995 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4996 size_user_name_1 = ndr_get_array_size(ndr, &r->user_name);
4997 length_user_name_1 = ndr_get_array_length(ndr, &r->user_name);
4998 if (length_user_name_1 > size_user_name_1) {
4999 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_name_1, length_user_name_1);
5001 NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t)));
5002 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16));
5003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5005 if (r->document_name) {
5006 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5007 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5008 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5009 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5010 size_document_name_1 = ndr_get_array_size(ndr, &r->document_name);
5011 length_document_name_1 = ndr_get_array_length(ndr, &r->document_name);
5012 if (length_document_name_1 > size_document_name_1) {
5013 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_document_name_1, length_document_name_1);
5015 NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
5016 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
5017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5019 if (r->notify_name) {
5020 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5021 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5022 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5023 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5024 size_notify_name_1 = ndr_get_array_size(ndr, &r->notify_name);
5025 length_notify_name_1 = ndr_get_array_length(ndr, &r->notify_name);
5026 if (length_notify_name_1 > size_notify_name_1) {
5027 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_notify_name_1, length_notify_name_1);
5029 NDR_CHECK(ndr_check_string_terminator(ndr, length_notify_name_1, sizeof(uint16_t)));
5030 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, length_notify_name_1, sizeof(uint16_t), CH_UTF16));
5031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5033 if (r->data_type) {
5034 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5035 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5036 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5037 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5038 size_data_type_1 = ndr_get_array_size(ndr, &r->data_type);
5039 length_data_type_1 = ndr_get_array_length(ndr, &r->data_type);
5040 if (length_data_type_1 > size_data_type_1) {
5041 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_type_1, length_data_type_1);
5043 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
5044 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
5045 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5047 if (r->print_processor) {
5048 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5049 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5050 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5051 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5052 size_print_processor_1 = ndr_get_array_size(ndr, &r->print_processor);
5053 length_print_processor_1 = ndr_get_array_length(ndr, &r->print_processor);
5054 if (length_print_processor_1 > size_print_processor_1) {
5055 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_1, length_print_processor_1);
5057 NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_1, sizeof(uint16_t)));
5058 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, length_print_processor_1, sizeof(uint16_t), CH_UTF16));
5059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5061 if (r->parameters) {
5062 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5063 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5064 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5065 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5066 size_parameters_1 = ndr_get_array_size(ndr, &r->parameters);
5067 length_parameters_1 = ndr_get_array_length(ndr, &r->parameters);
5068 if (length_parameters_1 > size_parameters_1) {
5069 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_parameters_1, length_parameters_1);
5071 NDR_CHECK(ndr_check_string_terminator(ndr, length_parameters_1, sizeof(uint16_t)));
5072 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, length_parameters_1, sizeof(uint16_t), CH_UTF16));
5073 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5075 if (r->driver_name) {
5076 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5077 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5078 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5079 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5080 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
5081 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
5082 if (length_driver_name_1 > size_driver_name_1) {
5083 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
5085 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
5086 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
5087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5089 if (r->text_status) {
5090 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5091 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5092 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5093 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5094 size_text_status_1 = ndr_get_array_size(ndr, &r->text_status);
5095 length_text_status_1 = ndr_get_array_length(ndr, &r->text_status);
5096 if (length_text_status_1 > size_text_status_1) {
5097 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_text_status_1, length_text_status_1);
5099 NDR_CHECK(ndr_check_string_terminator(ndr, length_text_status_1, sizeof(uint16_t)));
5100 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, length_text_status_1, sizeof(uint16_t), CH_UTF16));
5101 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5104 return NDR_ERR_SUCCESS;
5107 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
5109 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
5110 ndr->depth++;
5111 ndr_print_uint32(ndr, "job_id", r->job_id);
5112 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5113 ndr->depth++;
5114 if (r->printer_name) {
5115 ndr_print_string(ndr, "printer_name", r->printer_name);
5117 ndr->depth--;
5118 ndr_print_ptr(ndr, "server_name", r->server_name);
5119 ndr->depth++;
5120 if (r->server_name) {
5121 ndr_print_string(ndr, "server_name", r->server_name);
5123 ndr->depth--;
5124 ndr_print_ptr(ndr, "user_name", r->user_name);
5125 ndr->depth++;
5126 if (r->user_name) {
5127 ndr_print_string(ndr, "user_name", r->user_name);
5129 ndr->depth--;
5130 ndr_print_ptr(ndr, "document_name", r->document_name);
5131 ndr->depth++;
5132 if (r->document_name) {
5133 ndr_print_string(ndr, "document_name", r->document_name);
5135 ndr->depth--;
5136 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5137 ndr->depth++;
5138 if (r->notify_name) {
5139 ndr_print_string(ndr, "notify_name", r->notify_name);
5141 ndr->depth--;
5142 ndr_print_ptr(ndr, "data_type", r->data_type);
5143 ndr->depth++;
5144 if (r->data_type) {
5145 ndr_print_string(ndr, "data_type", r->data_type);
5147 ndr->depth--;
5148 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5149 ndr->depth++;
5150 if (r->print_processor) {
5151 ndr_print_string(ndr, "print_processor", r->print_processor);
5153 ndr->depth--;
5154 ndr_print_ptr(ndr, "parameters", r->parameters);
5155 ndr->depth++;
5156 if (r->parameters) {
5157 ndr_print_string(ndr, "parameters", r->parameters);
5159 ndr->depth--;
5160 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5161 ndr->depth++;
5162 if (r->driver_name) {
5163 ndr_print_string(ndr, "driver_name", r->driver_name);
5165 ndr->depth--;
5166 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5167 ndr_print_ptr(ndr, "text_status", r->text_status);
5168 ndr->depth++;
5169 if (r->text_status) {
5170 ndr_print_string(ndr, "text_status", r->text_status);
5172 ndr->depth--;
5173 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5174 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5175 ndr_print_uint32(ndr, "priority", r->priority);
5176 ndr_print_uint32(ndr, "position", r->position);
5177 ndr_print_uint32(ndr, "start_time", r->start_time);
5178 ndr_print_uint32(ndr, "until_time", r->until_time);
5179 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5180 ndr_print_uint32(ndr, "size", r->size);
5181 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5182 ndr_print_uint32(ndr, "time", r->time);
5183 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5184 ndr->depth--;
5187 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
5189 if (ndr_flags & NDR_SCALARS) {
5190 NDR_CHECK(ndr_push_align(ndr, 4));
5191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5192 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5193 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5194 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5195 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5196 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5197 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5198 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5199 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5200 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5202 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5204 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5211 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5216 if (ndr_flags & NDR_BUFFERS) {
5217 if (r->printer_name) {
5218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5221 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5223 if (r->server_name) {
5224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5227 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5229 if (r->user_name) {
5230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5231 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5232 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5233 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5235 if (r->document_name) {
5236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5239 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5241 if (r->notify_name) {
5242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5245 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5247 if (r->data_type) {
5248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5251 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5253 if (r->print_processor) {
5254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5257 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5259 if (r->parameters) {
5260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5261 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5263 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5265 if (r->driver_name) {
5266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5269 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5271 if (r->text_status) {
5272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5275 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5278 return NDR_ERR_SUCCESS;
5281 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5283 uint32_t _ptr_printer_name;
5284 uint32_t size_printer_name_1 = 0;
5285 uint32_t length_printer_name_1 = 0;
5286 TALLOC_CTX *_mem_save_printer_name_0;
5287 uint32_t _ptr_server_name;
5288 uint32_t size_server_name_1 = 0;
5289 uint32_t length_server_name_1 = 0;
5290 TALLOC_CTX *_mem_save_server_name_0;
5291 uint32_t _ptr_user_name;
5292 uint32_t size_user_name_1 = 0;
5293 uint32_t length_user_name_1 = 0;
5294 TALLOC_CTX *_mem_save_user_name_0;
5295 uint32_t _ptr_document_name;
5296 uint32_t size_document_name_1 = 0;
5297 uint32_t length_document_name_1 = 0;
5298 TALLOC_CTX *_mem_save_document_name_0;
5299 uint32_t _ptr_notify_name;
5300 uint32_t size_notify_name_1 = 0;
5301 uint32_t length_notify_name_1 = 0;
5302 TALLOC_CTX *_mem_save_notify_name_0;
5303 uint32_t _ptr_data_type;
5304 uint32_t size_data_type_1 = 0;
5305 uint32_t length_data_type_1 = 0;
5306 TALLOC_CTX *_mem_save_data_type_0;
5307 uint32_t _ptr_print_processor;
5308 uint32_t size_print_processor_1 = 0;
5309 uint32_t length_print_processor_1 = 0;
5310 TALLOC_CTX *_mem_save_print_processor_0;
5311 uint32_t _ptr_parameters;
5312 uint32_t size_parameters_1 = 0;
5313 uint32_t length_parameters_1 = 0;
5314 TALLOC_CTX *_mem_save_parameters_0;
5315 uint32_t _ptr_driver_name;
5316 uint32_t size_driver_name_1 = 0;
5317 uint32_t length_driver_name_1 = 0;
5318 TALLOC_CTX *_mem_save_driver_name_0;
5319 uint32_t _ptr_text_status;
5320 uint32_t size_text_status_1 = 0;
5321 uint32_t length_text_status_1 = 0;
5322 TALLOC_CTX *_mem_save_text_status_0;
5323 if (ndr_flags & NDR_SCALARS) {
5324 NDR_CHECK(ndr_pull_align(ndr, 4));
5325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5326 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5327 if (_ptr_printer_name) {
5328 NDR_PULL_ALLOC(ndr, r->printer_name);
5329 } else {
5330 r->printer_name = NULL;
5332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5333 if (_ptr_server_name) {
5334 NDR_PULL_ALLOC(ndr, r->server_name);
5335 } else {
5336 r->server_name = NULL;
5338 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5339 if (_ptr_user_name) {
5340 NDR_PULL_ALLOC(ndr, r->user_name);
5341 } else {
5342 r->user_name = NULL;
5344 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5345 if (_ptr_document_name) {
5346 NDR_PULL_ALLOC(ndr, r->document_name);
5347 } else {
5348 r->document_name = NULL;
5350 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5351 if (_ptr_notify_name) {
5352 NDR_PULL_ALLOC(ndr, r->notify_name);
5353 } else {
5354 r->notify_name = NULL;
5356 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5357 if (_ptr_data_type) {
5358 NDR_PULL_ALLOC(ndr, r->data_type);
5359 } else {
5360 r->data_type = NULL;
5362 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5363 if (_ptr_print_processor) {
5364 NDR_PULL_ALLOC(ndr, r->print_processor);
5365 } else {
5366 r->print_processor = NULL;
5368 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5369 if (_ptr_parameters) {
5370 NDR_PULL_ALLOC(ndr, r->parameters);
5371 } else {
5372 r->parameters = NULL;
5374 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5375 if (_ptr_driver_name) {
5376 NDR_PULL_ALLOC(ndr, r->driver_name);
5377 } else {
5378 r->driver_name = NULL;
5380 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5381 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5382 if (_ptr_text_status) {
5383 NDR_PULL_ALLOC(ndr, r->text_status);
5384 } else {
5385 r->text_status = NULL;
5387 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5388 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5389 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5390 if (r->priority > 99) {
5391 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5393 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5394 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5395 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5396 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5397 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5398 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5399 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5400 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5401 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5403 if (ndr_flags & NDR_BUFFERS) {
5404 if (r->printer_name) {
5405 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5406 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5407 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5408 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5409 size_printer_name_1 = ndr_get_array_size(ndr, &r->printer_name);
5410 length_printer_name_1 = ndr_get_array_length(ndr, &r->printer_name);
5411 if (length_printer_name_1 > size_printer_name_1) {
5412 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printer_name_1, length_printer_name_1);
5414 NDR_CHECK(ndr_check_string_terminator(ndr, length_printer_name_1, sizeof(uint16_t)));
5415 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, length_printer_name_1, sizeof(uint16_t), CH_UTF16));
5416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5418 if (r->server_name) {
5419 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5420 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5421 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5422 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5423 size_server_name_1 = ndr_get_array_size(ndr, &r->server_name);
5424 length_server_name_1 = ndr_get_array_length(ndr, &r->server_name);
5425 if (length_server_name_1 > size_server_name_1) {
5426 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1);
5428 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
5429 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
5430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5432 if (r->user_name) {
5433 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5434 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5435 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5436 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5437 size_user_name_1 = ndr_get_array_size(ndr, &r->user_name);
5438 length_user_name_1 = ndr_get_array_length(ndr, &r->user_name);
5439 if (length_user_name_1 > size_user_name_1) {
5440 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_name_1, length_user_name_1);
5442 NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t)));
5443 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16));
5444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5446 if (r->document_name) {
5447 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5448 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5449 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5450 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5451 size_document_name_1 = ndr_get_array_size(ndr, &r->document_name);
5452 length_document_name_1 = ndr_get_array_length(ndr, &r->document_name);
5453 if (length_document_name_1 > size_document_name_1) {
5454 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_document_name_1, length_document_name_1);
5456 NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
5457 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
5458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5460 if (r->notify_name) {
5461 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5462 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5463 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5464 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5465 size_notify_name_1 = ndr_get_array_size(ndr, &r->notify_name);
5466 length_notify_name_1 = ndr_get_array_length(ndr, &r->notify_name);
5467 if (length_notify_name_1 > size_notify_name_1) {
5468 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_notify_name_1, length_notify_name_1);
5470 NDR_CHECK(ndr_check_string_terminator(ndr, length_notify_name_1, sizeof(uint16_t)));
5471 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, length_notify_name_1, sizeof(uint16_t), CH_UTF16));
5472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5474 if (r->data_type) {
5475 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5476 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5477 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5478 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5479 size_data_type_1 = ndr_get_array_size(ndr, &r->data_type);
5480 length_data_type_1 = ndr_get_array_length(ndr, &r->data_type);
5481 if (length_data_type_1 > size_data_type_1) {
5482 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_type_1, length_data_type_1);
5484 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
5485 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
5486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5488 if (r->print_processor) {
5489 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5490 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5491 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5492 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5493 size_print_processor_1 = ndr_get_array_size(ndr, &r->print_processor);
5494 length_print_processor_1 = ndr_get_array_length(ndr, &r->print_processor);
5495 if (length_print_processor_1 > size_print_processor_1) {
5496 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_1, length_print_processor_1);
5498 NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_1, sizeof(uint16_t)));
5499 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, length_print_processor_1, sizeof(uint16_t), CH_UTF16));
5500 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5502 if (r->parameters) {
5503 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5504 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5505 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5506 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5507 size_parameters_1 = ndr_get_array_size(ndr, &r->parameters);
5508 length_parameters_1 = ndr_get_array_length(ndr, &r->parameters);
5509 if (length_parameters_1 > size_parameters_1) {
5510 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_parameters_1, length_parameters_1);
5512 NDR_CHECK(ndr_check_string_terminator(ndr, length_parameters_1, sizeof(uint16_t)));
5513 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, length_parameters_1, sizeof(uint16_t), CH_UTF16));
5514 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5516 if (r->driver_name) {
5517 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5518 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5519 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5520 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5521 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
5522 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
5523 if (length_driver_name_1 > size_driver_name_1) {
5524 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
5526 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
5527 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
5528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5530 if (r->text_status) {
5531 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5532 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5533 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5534 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5535 size_text_status_1 = ndr_get_array_size(ndr, &r->text_status);
5536 length_text_status_1 = ndr_get_array_length(ndr, &r->text_status);
5537 if (length_text_status_1 > size_text_status_1) {
5538 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_text_status_1, length_text_status_1);
5540 NDR_CHECK(ndr_check_string_terminator(ndr, length_text_status_1, sizeof(uint16_t)));
5541 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, length_text_status_1, sizeof(uint16_t), CH_UTF16));
5542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5545 return NDR_ERR_SUCCESS;
5548 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
5550 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
5551 ndr->depth++;
5552 ndr_print_uint32(ndr, "job_id", r->job_id);
5553 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5554 ndr->depth++;
5555 if (r->printer_name) {
5556 ndr_print_string(ndr, "printer_name", r->printer_name);
5558 ndr->depth--;
5559 ndr_print_ptr(ndr, "server_name", r->server_name);
5560 ndr->depth++;
5561 if (r->server_name) {
5562 ndr_print_string(ndr, "server_name", r->server_name);
5564 ndr->depth--;
5565 ndr_print_ptr(ndr, "user_name", r->user_name);
5566 ndr->depth++;
5567 if (r->user_name) {
5568 ndr_print_string(ndr, "user_name", r->user_name);
5570 ndr->depth--;
5571 ndr_print_ptr(ndr, "document_name", r->document_name);
5572 ndr->depth++;
5573 if (r->document_name) {
5574 ndr_print_string(ndr, "document_name", r->document_name);
5576 ndr->depth--;
5577 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5578 ndr->depth++;
5579 if (r->notify_name) {
5580 ndr_print_string(ndr, "notify_name", r->notify_name);
5582 ndr->depth--;
5583 ndr_print_ptr(ndr, "data_type", r->data_type);
5584 ndr->depth++;
5585 if (r->data_type) {
5586 ndr_print_string(ndr, "data_type", r->data_type);
5588 ndr->depth--;
5589 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5590 ndr->depth++;
5591 if (r->print_processor) {
5592 ndr_print_string(ndr, "print_processor", r->print_processor);
5594 ndr->depth--;
5595 ndr_print_ptr(ndr, "parameters", r->parameters);
5596 ndr->depth++;
5597 if (r->parameters) {
5598 ndr_print_string(ndr, "parameters", r->parameters);
5600 ndr->depth--;
5601 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5602 ndr->depth++;
5603 if (r->driver_name) {
5604 ndr_print_string(ndr, "driver_name", r->driver_name);
5606 ndr->depth--;
5607 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5608 ndr_print_ptr(ndr, "text_status", r->text_status);
5609 ndr->depth++;
5610 if (r->text_status) {
5611 ndr_print_string(ndr, "text_status", r->text_status);
5613 ndr->depth--;
5614 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5615 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5616 ndr_print_uint32(ndr, "priority", r->priority);
5617 ndr_print_uint32(ndr, "position", r->position);
5618 ndr_print_uint32(ndr, "start_time", r->start_time);
5619 ndr_print_uint32(ndr, "until_time", r->until_time);
5620 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5621 ndr_print_uint32(ndr, "size", r->size);
5622 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5623 ndr_print_uint32(ndr, "time", r->time);
5624 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5625 ndr_print_uint32(ndr, "size_high", r->size_high);
5626 ndr->depth--;
5629 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
5631 if (ndr_flags & NDR_SCALARS) {
5632 int level = ndr_push_get_switch_value(ndr, r);
5633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5634 switch (level) {
5635 case 1: {
5636 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5637 break; }
5639 case 2: {
5640 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5641 break; }
5643 case 3: {
5644 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5645 break; }
5647 case 4: {
5648 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
5649 break; }
5651 default: {
5652 break; }
5656 if (ndr_flags & NDR_BUFFERS) {
5657 int level = ndr_push_get_switch_value(ndr, r);
5658 switch (level) {
5659 case 1:
5660 if (r->info1) {
5661 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5663 break;
5665 case 2:
5666 if (r->info2) {
5667 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5669 break;
5671 case 3:
5672 if (r->info3) {
5673 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5675 break;
5677 case 4:
5678 if (r->info4) {
5679 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5681 break;
5683 default:
5684 break;
5688 return NDR_ERR_SUCCESS;
5691 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
5693 int level;
5694 uint32_t _level;
5695 TALLOC_CTX *_mem_save_info1_0;
5696 uint32_t _ptr_info1;
5697 TALLOC_CTX *_mem_save_info2_0;
5698 uint32_t _ptr_info2;
5699 TALLOC_CTX *_mem_save_info3_0;
5700 uint32_t _ptr_info3;
5701 TALLOC_CTX *_mem_save_info4_0;
5702 uint32_t _ptr_info4;
5703 level = ndr_pull_get_switch_value(ndr, r);
5704 if (ndr_flags & NDR_SCALARS) {
5705 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5706 if (_level != level) {
5707 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5709 switch (level) {
5710 case 1: {
5711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5712 if (_ptr_info1) {
5713 NDR_PULL_ALLOC(ndr, r->info1);
5714 } else {
5715 r->info1 = NULL;
5717 break; }
5719 case 2: {
5720 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5721 if (_ptr_info2) {
5722 NDR_PULL_ALLOC(ndr, r->info2);
5723 } else {
5724 r->info2 = NULL;
5726 break; }
5728 case 3: {
5729 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5730 if (_ptr_info3) {
5731 NDR_PULL_ALLOC(ndr, r->info3);
5732 } else {
5733 r->info3 = NULL;
5735 break; }
5737 case 4: {
5738 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
5739 if (_ptr_info4) {
5740 NDR_PULL_ALLOC(ndr, r->info4);
5741 } else {
5742 r->info4 = NULL;
5744 break; }
5746 default: {
5747 break; }
5751 if (ndr_flags & NDR_BUFFERS) {
5752 switch (level) {
5753 case 1:
5754 if (r->info1) {
5755 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5756 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5757 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5758 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5760 break;
5762 case 2:
5763 if (r->info2) {
5764 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5765 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5766 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5769 break;
5771 case 3:
5772 if (r->info3) {
5773 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5774 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5775 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5776 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5778 break;
5780 case 4:
5781 if (r->info4) {
5782 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
5783 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
5784 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
5787 break;
5789 default:
5790 break;
5794 return NDR_ERR_SUCCESS;
5797 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
5799 int level;
5800 level = ndr_print_get_switch_value(ndr, r);
5801 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
5802 switch (level) {
5803 case 1:
5804 ndr_print_ptr(ndr, "info1", r->info1);
5805 ndr->depth++;
5806 if (r->info1) {
5807 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
5809 ndr->depth--;
5810 break;
5812 case 2:
5813 ndr_print_ptr(ndr, "info2", r->info2);
5814 ndr->depth++;
5815 if (r->info2) {
5816 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
5818 ndr->depth--;
5819 break;
5821 case 3:
5822 ndr_print_ptr(ndr, "info3", r->info3);
5823 ndr->depth++;
5824 if (r->info3) {
5825 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
5827 ndr->depth--;
5828 break;
5830 case 4:
5831 ndr_print_ptr(ndr, "info4", r->info4);
5832 ndr->depth++;
5833 if (r->info4) {
5834 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
5836 ndr->depth--;
5837 break;
5839 default:
5840 break;
5845 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
5847 if (ndr_flags & NDR_SCALARS) {
5848 NDR_CHECK(ndr_push_align(ndr, 4));
5849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
5850 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
5851 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5853 if (ndr_flags & NDR_BUFFERS) {
5854 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5856 return NDR_ERR_SUCCESS;
5859 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
5861 if (ndr_flags & NDR_SCALARS) {
5862 NDR_CHECK(ndr_pull_align(ndr, 4));
5863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
5864 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
5865 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5867 if (ndr_flags & NDR_BUFFERS) {
5868 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5870 return NDR_ERR_SUCCESS;
5873 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
5875 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
5876 ndr->depth++;
5877 ndr_print_uint32(ndr, "level", r->level);
5878 ndr_print_set_switch_value(ndr, &r->info, r->level);
5879 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
5880 ndr->depth--;
5883 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
5885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5886 return NDR_ERR_SUCCESS;
5889 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
5891 uint32_t v;
5892 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5893 *r = v;
5894 return NDR_ERR_SUCCESS;
5897 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
5899 const char *val = NULL;
5901 switch (r) {
5902 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
5903 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
5904 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
5905 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
5906 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
5907 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
5908 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
5909 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
5910 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
5912 ndr_print_enum(ndr, name, "ENUM", val, r);
5915 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
5917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5918 return NDR_ERR_SUCCESS;
5921 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
5923 uint32_t v;
5924 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5925 *r = v;
5926 return NDR_ERR_SUCCESS;
5929 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
5931 const char *val = NULL;
5933 switch (r) {
5934 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
5935 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
5936 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
5937 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
5938 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
5940 ndr_print_enum(ndr, name, "ENUM", val, r);
5943 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
5945 if (ndr_flags & NDR_SCALARS) {
5946 NDR_CHECK(ndr_push_align(ndr, 4));
5947 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
5948 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
5949 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
5950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
5951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
5952 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
5953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
5954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
5956 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
5957 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
5958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
5959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
5960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
5961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
5962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
5963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
5964 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
5965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
5966 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
5967 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
5968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
5969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
5970 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
5971 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
5972 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
5973 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
5974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
5975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
5977 if (ndr_flags & NDR_BUFFERS) {
5978 if (r->servername) {
5979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5982 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5984 if (r->printername) {
5985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5988 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5991 return NDR_ERR_SUCCESS;
5994 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
5996 uint32_t _ptr_servername;
5997 uint32_t size_servername_1 = 0;
5998 uint32_t length_servername_1 = 0;
5999 TALLOC_CTX *_mem_save_servername_0;
6000 uint32_t _ptr_printername;
6001 uint32_t size_printername_1 = 0;
6002 uint32_t length_printername_1 = 0;
6003 TALLOC_CTX *_mem_save_printername_0;
6004 if (ndr_flags & NDR_SCALARS) {
6005 NDR_CHECK(ndr_pull_align(ndr, 4));
6006 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6007 if (_ptr_servername) {
6008 NDR_PULL_ALLOC(ndr, r->servername);
6009 } else {
6010 r->servername = NULL;
6012 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6013 if (_ptr_printername) {
6014 NDR_PULL_ALLOC(ndr, r->printername);
6015 } else {
6016 r->printername = NULL;
6018 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
6020 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
6021 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6022 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
6023 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6024 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
6025 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
6026 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
6027 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
6028 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
6029 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
6030 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
6031 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
6032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
6033 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
6034 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
6035 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
6036 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
6037 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
6038 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
6039 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
6040 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
6041 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
6042 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
6043 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
6044 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
6046 if (ndr_flags & NDR_BUFFERS) {
6047 if (r->servername) {
6048 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6049 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6050 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6051 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6052 size_servername_1 = ndr_get_array_size(ndr, &r->servername);
6053 length_servername_1 = ndr_get_array_length(ndr, &r->servername);
6054 if (length_servername_1 > size_servername_1) {
6055 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
6057 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
6058 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
6059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6061 if (r->printername) {
6062 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6063 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6064 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6065 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6066 size_printername_1 = ndr_get_array_size(ndr, &r->printername);
6067 length_printername_1 = ndr_get_array_length(ndr, &r->printername);
6068 if (length_printername_1 > size_printername_1) {
6069 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
6071 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
6072 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
6073 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6076 return NDR_ERR_SUCCESS;
6079 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
6081 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
6082 ndr->depth++;
6083 ndr_print_ptr(ndr, "servername", r->servername);
6084 ndr->depth++;
6085 if (r->servername) {
6086 ndr_print_string(ndr, "servername", r->servername);
6088 ndr->depth--;
6089 ndr_print_ptr(ndr, "printername", r->printername);
6090 ndr->depth++;
6091 if (r->printername) {
6092 ndr_print_string(ndr, "printername", r->printername);
6094 ndr->depth--;
6095 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6096 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
6097 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
6098 ndr_print_spoolss_Time(ndr, "time", &r->time);
6099 ndr_print_uint32(ndr, "global_counter", r->global_counter);
6100 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6101 ndr_print_uint32(ndr, "version", r->version);
6102 ndr_print_uint32(ndr, "free_build", r->free_build);
6103 ndr_print_uint32(ndr, "spooling", r->spooling);
6104 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
6105 ndr_print_uint32(ndr, "session_counter", r->session_counter);
6106 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
6107 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
6108 ndr_print_uint32(ndr, "job_error", r->job_error);
6109 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
6110 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
6111 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
6112 ndr_print_uint32(ndr, "change_id", r->change_id);
6113 ndr_print_WERROR(ndr, "last_error", r->last_error);
6114 ndr_print_uint32(ndr, "status", r->status);
6115 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
6116 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
6117 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
6118 ndr_print_uint16(ndr, "processor_level", r->processor_level);
6119 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
6120 ndr_print_uint32(ndr, "reserved2", r->reserved2);
6121 ndr_print_uint32(ndr, "reserved3", r->reserved3);
6122 ndr->depth--;
6125 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
6127 if (ndr_flags & NDR_SCALARS) {
6128 NDR_CHECK(ndr_push_align(ndr, 4));
6129 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
6130 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
6131 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
6132 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6134 if (ndr_flags & NDR_BUFFERS) {
6135 if (r->description) {
6136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6139 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6141 if (r->name) {
6142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6145 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6147 if (r->comment) {
6148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6151 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6154 return NDR_ERR_SUCCESS;
6157 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
6159 uint32_t _ptr_description;
6160 uint32_t size_description_1 = 0;
6161 uint32_t length_description_1 = 0;
6162 TALLOC_CTX *_mem_save_description_0;
6163 uint32_t _ptr_name;
6164 uint32_t size_name_1 = 0;
6165 uint32_t length_name_1 = 0;
6166 TALLOC_CTX *_mem_save_name_0;
6167 uint32_t _ptr_comment;
6168 uint32_t size_comment_1 = 0;
6169 uint32_t length_comment_1 = 0;
6170 TALLOC_CTX *_mem_save_comment_0;
6171 if (ndr_flags & NDR_SCALARS) {
6172 NDR_CHECK(ndr_pull_align(ndr, 4));
6173 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
6174 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
6175 if (_ptr_description) {
6176 NDR_PULL_ALLOC(ndr, r->description);
6177 } else {
6178 r->description = NULL;
6180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
6181 if (_ptr_name) {
6182 NDR_PULL_ALLOC(ndr, r->name);
6183 } else {
6184 r->name = NULL;
6186 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6187 if (_ptr_comment) {
6188 NDR_PULL_ALLOC(ndr, r->comment);
6189 } else {
6190 r->comment = NULL;
6193 if (ndr_flags & NDR_BUFFERS) {
6194 if (r->description) {
6195 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6196 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6197 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6198 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6199 size_description_1 = ndr_get_array_size(ndr, &r->description);
6200 length_description_1 = ndr_get_array_length(ndr, &r->description);
6201 if (length_description_1 > size_description_1) {
6202 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_description_1, length_description_1);
6204 NDR_CHECK(ndr_check_string_terminator(ndr, length_description_1, sizeof(uint16_t)));
6205 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, length_description_1, sizeof(uint16_t), CH_UTF16));
6206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6208 if (r->name) {
6209 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6210 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6211 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6212 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6213 size_name_1 = ndr_get_array_size(ndr, &r->name);
6214 length_name_1 = ndr_get_array_length(ndr, &r->name);
6215 if (length_name_1 > size_name_1) {
6216 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1);
6218 NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t)));
6219 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16));
6220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6222 if (r->comment) {
6223 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6224 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6225 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6226 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6227 size_comment_1 = ndr_get_array_size(ndr, &r->comment);
6228 length_comment_1 = ndr_get_array_length(ndr, &r->comment);
6229 if (length_comment_1 > size_comment_1) {
6230 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1);
6232 NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t)));
6233 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16));
6234 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6237 return NDR_ERR_SUCCESS;
6240 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
6242 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
6243 ndr->depth++;
6244 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
6245 ndr_print_ptr(ndr, "description", r->description);
6246 ndr->depth++;
6247 if (r->description) {
6248 ndr_print_string(ndr, "description", r->description);
6250 ndr->depth--;
6251 ndr_print_ptr(ndr, "name", r->name);
6252 ndr->depth++;
6253 if (r->name) {
6254 ndr_print_string(ndr, "name", r->name);
6256 ndr->depth--;
6257 ndr_print_ptr(ndr, "comment", r->comment);
6258 ndr->depth++;
6259 if (r->comment) {
6260 ndr_print_string(ndr, "comment", r->comment);
6262 ndr->depth--;
6263 ndr->depth--;
6266 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
6268 if (ndr_flags & NDR_SCALARS) {
6269 NDR_CHECK(ndr_push_align(ndr, 4));
6270 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6271 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6272 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6273 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6274 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6275 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6276 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
6278 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6279 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6280 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6281 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6282 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->secdesc_ptr));
6283 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6287 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6288 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6292 if (ndr_flags & NDR_BUFFERS) {
6293 if (r->servername) {
6294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6297 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6299 if (r->printername) {
6300 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6303 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6305 if (r->sharename) {
6306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6309 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6311 if (r->portname) {
6312 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6313 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6315 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6317 if (r->drivername) {
6318 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6321 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6323 if (r->comment) {
6324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6327 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6329 if (r->location) {
6330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6333 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6335 if (r->sepfile) {
6336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6339 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6341 if (r->printprocessor) {
6342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6345 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6347 if (r->datatype) {
6348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6351 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6353 if (r->parameters) {
6354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6357 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6360 return NDR_ERR_SUCCESS;
6363 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6365 uint32_t _ptr_servername;
6366 uint32_t size_servername_1 = 0;
6367 uint32_t length_servername_1 = 0;
6368 TALLOC_CTX *_mem_save_servername_0;
6369 uint32_t _ptr_printername;
6370 uint32_t size_printername_1 = 0;
6371 uint32_t length_printername_1 = 0;
6372 TALLOC_CTX *_mem_save_printername_0;
6373 uint32_t _ptr_sharename;
6374 uint32_t size_sharename_1 = 0;
6375 uint32_t length_sharename_1 = 0;
6376 TALLOC_CTX *_mem_save_sharename_0;
6377 uint32_t _ptr_portname;
6378 uint32_t size_portname_1 = 0;
6379 uint32_t length_portname_1 = 0;
6380 TALLOC_CTX *_mem_save_portname_0;
6381 uint32_t _ptr_drivername;
6382 uint32_t size_drivername_1 = 0;
6383 uint32_t length_drivername_1 = 0;
6384 TALLOC_CTX *_mem_save_drivername_0;
6385 uint32_t _ptr_comment;
6386 uint32_t size_comment_1 = 0;
6387 uint32_t length_comment_1 = 0;
6388 TALLOC_CTX *_mem_save_comment_0;
6389 uint32_t _ptr_location;
6390 uint32_t size_location_1 = 0;
6391 uint32_t length_location_1 = 0;
6392 TALLOC_CTX *_mem_save_location_0;
6393 uint32_t _ptr_sepfile;
6394 uint32_t size_sepfile_1 = 0;
6395 uint32_t length_sepfile_1 = 0;
6396 TALLOC_CTX *_mem_save_sepfile_0;
6397 uint32_t _ptr_printprocessor;
6398 uint32_t size_printprocessor_1 = 0;
6399 uint32_t length_printprocessor_1 = 0;
6400 TALLOC_CTX *_mem_save_printprocessor_0;
6401 uint32_t _ptr_datatype;
6402 uint32_t size_datatype_1 = 0;
6403 uint32_t length_datatype_1 = 0;
6404 TALLOC_CTX *_mem_save_datatype_0;
6405 uint32_t _ptr_parameters;
6406 uint32_t size_parameters_1 = 0;
6407 uint32_t length_parameters_1 = 0;
6408 TALLOC_CTX *_mem_save_parameters_0;
6409 if (ndr_flags & NDR_SCALARS) {
6410 NDR_CHECK(ndr_pull_align(ndr, 4));
6411 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6412 if (_ptr_servername) {
6413 NDR_PULL_ALLOC(ndr, r->servername);
6414 } else {
6415 r->servername = NULL;
6417 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6418 if (_ptr_printername) {
6419 NDR_PULL_ALLOC(ndr, r->printername);
6420 } else {
6421 r->printername = NULL;
6423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6424 if (_ptr_sharename) {
6425 NDR_PULL_ALLOC(ndr, r->sharename);
6426 } else {
6427 r->sharename = NULL;
6429 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6430 if (_ptr_portname) {
6431 NDR_PULL_ALLOC(ndr, r->portname);
6432 } else {
6433 r->portname = NULL;
6435 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6436 if (_ptr_drivername) {
6437 NDR_PULL_ALLOC(ndr, r->drivername);
6438 } else {
6439 r->drivername = NULL;
6441 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6442 if (_ptr_comment) {
6443 NDR_PULL_ALLOC(ndr, r->comment);
6444 } else {
6445 r->comment = NULL;
6447 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6448 if (_ptr_location) {
6449 NDR_PULL_ALLOC(ndr, r->location);
6450 } else {
6451 r->location = NULL;
6453 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
6454 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6455 if (_ptr_sepfile) {
6456 NDR_PULL_ALLOC(ndr, r->sepfile);
6457 } else {
6458 r->sepfile = NULL;
6460 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6461 if (_ptr_printprocessor) {
6462 NDR_PULL_ALLOC(ndr, r->printprocessor);
6463 } else {
6464 r->printprocessor = NULL;
6466 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6467 if (_ptr_datatype) {
6468 NDR_PULL_ALLOC(ndr, r->datatype);
6469 } else {
6470 r->datatype = NULL;
6472 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6473 if (_ptr_parameters) {
6474 NDR_PULL_ALLOC(ndr, r->parameters);
6475 } else {
6476 r->parameters = NULL;
6478 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->secdesc_ptr));
6479 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6480 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6481 if (r->priority > 99) {
6482 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6484 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
6485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
6486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
6487 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6488 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6489 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
6491 if (ndr_flags & NDR_BUFFERS) {
6492 if (r->servername) {
6493 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6494 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6495 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6496 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6497 size_servername_1 = ndr_get_array_size(ndr, &r->servername);
6498 length_servername_1 = ndr_get_array_length(ndr, &r->servername);
6499 if (length_servername_1 > size_servername_1) {
6500 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
6502 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
6503 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
6504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6506 if (r->printername) {
6507 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6508 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6509 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6510 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6511 size_printername_1 = ndr_get_array_size(ndr, &r->printername);
6512 length_printername_1 = ndr_get_array_length(ndr, &r->printername);
6513 if (length_printername_1 > size_printername_1) {
6514 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
6516 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
6517 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
6518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6520 if (r->sharename) {
6521 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
6522 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
6523 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
6524 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
6525 size_sharename_1 = ndr_get_array_size(ndr, &r->sharename);
6526 length_sharename_1 = ndr_get_array_length(ndr, &r->sharename);
6527 if (length_sharename_1 > size_sharename_1) {
6528 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_sharename_1, length_sharename_1);
6530 NDR_CHECK(ndr_check_string_terminator(ndr, length_sharename_1, sizeof(uint16_t)));
6531 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, length_sharename_1, sizeof(uint16_t), CH_UTF16));
6532 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
6534 if (r->portname) {
6535 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6536 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6537 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6538 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6539 size_portname_1 = ndr_get_array_size(ndr, &r->portname);
6540 length_portname_1 = ndr_get_array_length(ndr, &r->portname);
6541 if (length_portname_1 > size_portname_1) {
6542 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_portname_1, length_portname_1);
6544 NDR_CHECK(ndr_check_string_terminator(ndr, length_portname_1, sizeof(uint16_t)));
6545 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, length_portname_1, sizeof(uint16_t), CH_UTF16));
6546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6548 if (r->drivername) {
6549 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6550 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
6551 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
6552 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
6553 size_drivername_1 = ndr_get_array_size(ndr, &r->drivername);
6554 length_drivername_1 = ndr_get_array_length(ndr, &r->drivername);
6555 if (length_drivername_1 > size_drivername_1) {
6556 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_drivername_1, length_drivername_1);
6558 NDR_CHECK(ndr_check_string_terminator(ndr, length_drivername_1, sizeof(uint16_t)));
6559 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, length_drivername_1, sizeof(uint16_t), CH_UTF16));
6560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
6562 if (r->comment) {
6563 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6564 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6565 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6566 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6567 size_comment_1 = ndr_get_array_size(ndr, &r->comment);
6568 length_comment_1 = ndr_get_array_length(ndr, &r->comment);
6569 if (length_comment_1 > size_comment_1) {
6570 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1);
6572 NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t)));
6573 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16));
6574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6576 if (r->location) {
6577 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
6578 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
6579 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
6580 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
6581 size_location_1 = ndr_get_array_size(ndr, &r->location);
6582 length_location_1 = ndr_get_array_length(ndr, &r->location);
6583 if (length_location_1 > size_location_1) {
6584 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_location_1, length_location_1);
6586 NDR_CHECK(ndr_check_string_terminator(ndr, length_location_1, sizeof(uint16_t)));
6587 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, length_location_1, sizeof(uint16_t), CH_UTF16));
6588 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
6590 if (r->sepfile) {
6591 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
6592 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
6593 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
6594 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
6595 size_sepfile_1 = ndr_get_array_size(ndr, &r->sepfile);
6596 length_sepfile_1 = ndr_get_array_length(ndr, &r->sepfile);
6597 if (length_sepfile_1 > size_sepfile_1) {
6598 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_sepfile_1, length_sepfile_1);
6600 NDR_CHECK(ndr_check_string_terminator(ndr, length_sepfile_1, sizeof(uint16_t)));
6601 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, length_sepfile_1, sizeof(uint16_t), CH_UTF16));
6602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
6604 if (r->printprocessor) {
6605 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6606 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
6607 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
6608 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
6609 size_printprocessor_1 = ndr_get_array_size(ndr, &r->printprocessor);
6610 length_printprocessor_1 = ndr_get_array_length(ndr, &r->printprocessor);
6611 if (length_printprocessor_1 > size_printprocessor_1) {
6612 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printprocessor_1, length_printprocessor_1);
6614 NDR_CHECK(ndr_check_string_terminator(ndr, length_printprocessor_1, sizeof(uint16_t)));
6615 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, length_printprocessor_1, sizeof(uint16_t), CH_UTF16));
6616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
6618 if (r->datatype) {
6619 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6620 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
6621 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
6622 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
6623 size_datatype_1 = ndr_get_array_size(ndr, &r->datatype);
6624 length_datatype_1 = ndr_get_array_length(ndr, &r->datatype);
6625 if (length_datatype_1 > size_datatype_1) {
6626 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_datatype_1, length_datatype_1);
6628 NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
6629 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
6630 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
6632 if (r->parameters) {
6633 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6634 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6635 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6636 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6637 size_parameters_1 = ndr_get_array_size(ndr, &r->parameters);
6638 length_parameters_1 = ndr_get_array_length(ndr, &r->parameters);
6639 if (length_parameters_1 > size_parameters_1) {
6640 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_parameters_1, length_parameters_1);
6642 NDR_CHECK(ndr_check_string_terminator(ndr, length_parameters_1, sizeof(uint16_t)));
6643 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, length_parameters_1, sizeof(uint16_t), CH_UTF16));
6644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6647 return NDR_ERR_SUCCESS;
6650 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
6652 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
6653 ndr->depth++;
6654 ndr_print_ptr(ndr, "servername", r->servername);
6655 ndr->depth++;
6656 if (r->servername) {
6657 ndr_print_string(ndr, "servername", r->servername);
6659 ndr->depth--;
6660 ndr_print_ptr(ndr, "printername", r->printername);
6661 ndr->depth++;
6662 if (r->printername) {
6663 ndr_print_string(ndr, "printername", r->printername);
6665 ndr->depth--;
6666 ndr_print_ptr(ndr, "sharename", r->sharename);
6667 ndr->depth++;
6668 if (r->sharename) {
6669 ndr_print_string(ndr, "sharename", r->sharename);
6671 ndr->depth--;
6672 ndr_print_ptr(ndr, "portname", r->portname);
6673 ndr->depth++;
6674 if (r->portname) {
6675 ndr_print_string(ndr, "portname", r->portname);
6677 ndr->depth--;
6678 ndr_print_ptr(ndr, "drivername", r->drivername);
6679 ndr->depth++;
6680 if (r->drivername) {
6681 ndr_print_string(ndr, "drivername", r->drivername);
6683 ndr->depth--;
6684 ndr_print_ptr(ndr, "comment", r->comment);
6685 ndr->depth++;
6686 if (r->comment) {
6687 ndr_print_string(ndr, "comment", r->comment);
6689 ndr->depth--;
6690 ndr_print_ptr(ndr, "location", r->location);
6691 ndr->depth++;
6692 if (r->location) {
6693 ndr_print_string(ndr, "location", r->location);
6695 ndr->depth--;
6696 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
6697 ndr_print_ptr(ndr, "sepfile", r->sepfile);
6698 ndr->depth++;
6699 if (r->sepfile) {
6700 ndr_print_string(ndr, "sepfile", r->sepfile);
6702 ndr->depth--;
6703 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
6704 ndr->depth++;
6705 if (r->printprocessor) {
6706 ndr_print_string(ndr, "printprocessor", r->printprocessor);
6708 ndr->depth--;
6709 ndr_print_ptr(ndr, "datatype", r->datatype);
6710 ndr->depth++;
6711 if (r->datatype) {
6712 ndr_print_string(ndr, "datatype", r->datatype);
6714 ndr->depth--;
6715 ndr_print_ptr(ndr, "parameters", r->parameters);
6716 ndr->depth++;
6717 if (r->parameters) {
6718 ndr_print_string(ndr, "parameters", r->parameters);
6720 ndr->depth--;
6721 ndr_print_uint32(ndr, "secdesc_ptr", r->secdesc_ptr);
6722 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6723 ndr_print_uint32(ndr, "priority", r->priority);
6724 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
6725 ndr_print_uint32(ndr, "starttime", r->starttime);
6726 ndr_print_uint32(ndr, "untiltime", r->untiltime);
6727 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6728 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6729 ndr_print_uint32(ndr, "averageppm", r->averageppm);
6730 ndr->depth--;
6733 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
6735 if (ndr_flags & NDR_SCALARS) {
6736 NDR_CHECK(ndr_push_align(ndr, 4));
6737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
6739 if (ndr_flags & NDR_BUFFERS) {
6741 return NDR_ERR_SUCCESS;
6744 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
6746 if (ndr_flags & NDR_SCALARS) {
6747 NDR_CHECK(ndr_pull_align(ndr, 4));
6748 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
6750 if (ndr_flags & NDR_BUFFERS) {
6752 return NDR_ERR_SUCCESS;
6755 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
6757 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
6758 ndr->depth++;
6759 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
6760 ndr->depth--;
6763 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
6765 if (ndr_flags & NDR_SCALARS) {
6766 NDR_CHECK(ndr_push_align(ndr, 4));
6767 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6768 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6769 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6771 if (ndr_flags & NDR_BUFFERS) {
6772 if (r->printername) {
6773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6776 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6778 if (r->servername) {
6779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6782 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6785 return NDR_ERR_SUCCESS;
6788 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
6790 uint32_t _ptr_printername;
6791 uint32_t size_printername_1 = 0;
6792 uint32_t length_printername_1 = 0;
6793 TALLOC_CTX *_mem_save_printername_0;
6794 uint32_t _ptr_servername;
6795 uint32_t size_servername_1 = 0;
6796 uint32_t length_servername_1 = 0;
6797 TALLOC_CTX *_mem_save_servername_0;
6798 if (ndr_flags & NDR_SCALARS) {
6799 NDR_CHECK(ndr_pull_align(ndr, 4));
6800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6801 if (_ptr_printername) {
6802 NDR_PULL_ALLOC(ndr, r->printername);
6803 } else {
6804 r->printername = NULL;
6806 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6807 if (_ptr_servername) {
6808 NDR_PULL_ALLOC(ndr, r->servername);
6809 } else {
6810 r->servername = NULL;
6812 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6814 if (ndr_flags & NDR_BUFFERS) {
6815 if (r->printername) {
6816 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6817 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6818 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6819 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6820 size_printername_1 = ndr_get_array_size(ndr, &r->printername);
6821 length_printername_1 = ndr_get_array_length(ndr, &r->printername);
6822 if (length_printername_1 > size_printername_1) {
6823 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
6825 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
6826 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
6827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6829 if (r->servername) {
6830 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6831 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6832 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6833 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6834 size_servername_1 = ndr_get_array_size(ndr, &r->servername);
6835 length_servername_1 = ndr_get_array_length(ndr, &r->servername);
6836 if (length_servername_1 > size_servername_1) {
6837 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
6839 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
6840 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
6841 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6844 return NDR_ERR_SUCCESS;
6847 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
6849 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
6850 ndr->depth++;
6851 ndr_print_ptr(ndr, "printername", r->printername);
6852 ndr->depth++;
6853 if (r->printername) {
6854 ndr_print_string(ndr, "printername", r->printername);
6856 ndr->depth--;
6857 ndr_print_ptr(ndr, "servername", r->servername);
6858 ndr->depth++;
6859 if (r->servername) {
6860 ndr_print_string(ndr, "servername", r->servername);
6862 ndr->depth--;
6863 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6864 ndr->depth--;
6867 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
6869 if (ndr_flags & NDR_SCALARS) {
6870 NDR_CHECK(ndr_push_align(ndr, 4));
6871 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6872 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6873 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
6875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
6877 if (ndr_flags & NDR_BUFFERS) {
6878 if (r->printername) {
6879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6882 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6884 if (r->portname) {
6885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6887 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6888 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6891 return NDR_ERR_SUCCESS;
6894 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
6896 uint32_t _ptr_printername;
6897 uint32_t size_printername_1 = 0;
6898 uint32_t length_printername_1 = 0;
6899 TALLOC_CTX *_mem_save_printername_0;
6900 uint32_t _ptr_portname;
6901 uint32_t size_portname_1 = 0;
6902 uint32_t length_portname_1 = 0;
6903 TALLOC_CTX *_mem_save_portname_0;
6904 if (ndr_flags & NDR_SCALARS) {
6905 NDR_CHECK(ndr_pull_align(ndr, 4));
6906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6907 if (_ptr_printername) {
6908 NDR_PULL_ALLOC(ndr, r->printername);
6909 } else {
6910 r->printername = NULL;
6912 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6913 if (_ptr_portname) {
6914 NDR_PULL_ALLOC(ndr, r->portname);
6915 } else {
6916 r->portname = NULL;
6918 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6919 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
6920 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
6922 if (ndr_flags & NDR_BUFFERS) {
6923 if (r->printername) {
6924 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6925 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6926 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6927 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6928 size_printername_1 = ndr_get_array_size(ndr, &r->printername);
6929 length_printername_1 = ndr_get_array_length(ndr, &r->printername);
6930 if (length_printername_1 > size_printername_1) {
6931 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
6933 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
6934 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
6935 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6937 if (r->portname) {
6938 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6939 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6940 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6941 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6942 size_portname_1 = ndr_get_array_size(ndr, &r->portname);
6943 length_portname_1 = ndr_get_array_length(ndr, &r->portname);
6944 if (length_portname_1 > size_portname_1) {
6945 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_portname_1, length_portname_1);
6947 NDR_CHECK(ndr_check_string_terminator(ndr, length_portname_1, sizeof(uint16_t)));
6948 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, length_portname_1, sizeof(uint16_t), CH_UTF16));
6949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6952 return NDR_ERR_SUCCESS;
6955 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
6957 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
6958 ndr->depth++;
6959 ndr_print_ptr(ndr, "printername", r->printername);
6960 ndr->depth++;
6961 if (r->printername) {
6962 ndr_print_string(ndr, "printername", r->printername);
6964 ndr->depth--;
6965 ndr_print_ptr(ndr, "portname", r->portname);
6966 ndr->depth++;
6967 if (r->portname) {
6968 ndr_print_string(ndr, "portname", r->portname);
6970 ndr->depth--;
6971 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6972 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
6973 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
6974 ndr->depth--;
6977 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
6979 if (ndr_flags & NDR_SCALARS) {
6980 NDR_CHECK(ndr_push_align(ndr, 4));
6981 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6983 if (ndr_flags & NDR_BUFFERS) {
6985 return NDR_ERR_SUCCESS;
6988 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
6990 if (ndr_flags & NDR_SCALARS) {
6991 NDR_CHECK(ndr_pull_align(ndr, 4));
6992 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6994 if (ndr_flags & NDR_BUFFERS) {
6996 return NDR_ERR_SUCCESS;
6999 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
7001 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
7002 ndr->depth++;
7003 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7004 ndr->depth--;
7007 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
7009 if (ndr_flags & NDR_SCALARS) {
7010 NDR_CHECK(ndr_push_align(ndr, 4));
7011 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
7012 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
7014 if (ndr_flags & NDR_BUFFERS) {
7015 if (r->guid) {
7016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7019 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7022 return NDR_ERR_SUCCESS;
7025 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
7027 uint32_t _ptr_guid;
7028 uint32_t size_guid_1 = 0;
7029 uint32_t length_guid_1 = 0;
7030 TALLOC_CTX *_mem_save_guid_0;
7031 if (ndr_flags & NDR_SCALARS) {
7032 NDR_CHECK(ndr_pull_align(ndr, 4));
7033 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
7034 if (_ptr_guid) {
7035 NDR_PULL_ALLOC(ndr, r->guid);
7036 } else {
7037 r->guid = NULL;
7039 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
7041 if (ndr_flags & NDR_BUFFERS) {
7042 if (r->guid) {
7043 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7044 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
7045 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
7046 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
7047 size_guid_1 = ndr_get_array_size(ndr, &r->guid);
7048 length_guid_1 = ndr_get_array_length(ndr, &r->guid);
7049 if (length_guid_1 > size_guid_1) {
7050 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_guid_1, length_guid_1);
7052 NDR_CHECK(ndr_check_string_terminator(ndr, length_guid_1, sizeof(uint16_t)));
7053 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, length_guid_1, sizeof(uint16_t), CH_UTF16));
7054 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
7057 return NDR_ERR_SUCCESS;
7060 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
7062 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
7063 ndr->depth++;
7064 ndr_print_ptr(ndr, "guid", r->guid);
7065 ndr->depth++;
7066 if (r->guid) {
7067 ndr_print_string(ndr, "guid", r->guid);
7069 ndr->depth--;
7070 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
7071 ndr->depth--;
7074 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo8 *r)
7076 if (ndr_flags & NDR_SCALARS) {
7077 NDR_CHECK(ndr_push_align(ndr, 4));
7078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7080 if (ndr_flags & NDR_BUFFERS) {
7082 return NDR_ERR_SUCCESS;
7085 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo8 *r)
7087 if (ndr_flags & NDR_SCALARS) {
7088 NDR_CHECK(ndr_pull_align(ndr, 4));
7089 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7091 if (ndr_flags & NDR_BUFFERS) {
7093 return NDR_ERR_SUCCESS;
7096 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo8 *r)
7098 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo8");
7099 ndr->depth++;
7100 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7101 ndr->depth--;
7104 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo9(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo9 *r)
7106 if (ndr_flags & NDR_SCALARS) {
7107 NDR_CHECK(ndr_push_align(ndr, 4));
7108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7110 if (ndr_flags & NDR_BUFFERS) {
7112 return NDR_ERR_SUCCESS;
7115 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo9(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo9 *r)
7117 if (ndr_flags & NDR_SCALARS) {
7118 NDR_CHECK(ndr_pull_align(ndr, 4));
7119 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7121 if (ndr_flags & NDR_BUFFERS) {
7123 return NDR_ERR_SUCCESS;
7126 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo9(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo9 *r)
7128 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo9");
7129 ndr->depth++;
7130 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7131 ndr->depth--;
7134 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
7136 if (ndr_flags & NDR_SCALARS) {
7137 int level = ndr_push_get_switch_value(ndr, r);
7138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7139 switch (level) {
7140 case 0: {
7141 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
7142 break; }
7144 case 1: {
7145 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7146 break; }
7148 case 2: {
7149 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7150 break; }
7152 case 3: {
7153 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
7154 break; }
7156 case 4: {
7157 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
7158 break; }
7160 case 5: {
7161 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
7162 break; }
7164 case 6: {
7165 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
7166 break; }
7168 case 7: {
7169 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
7170 break; }
7172 case 8: {
7173 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
7174 break; }
7176 case 9: {
7177 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
7178 break; }
7180 default: {
7181 break; }
7185 if (ndr_flags & NDR_BUFFERS) {
7186 int level = ndr_push_get_switch_value(ndr, r);
7187 switch (level) {
7188 case 0:
7189 if (r->info0) {
7190 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7192 break;
7194 case 1:
7195 if (r->info1) {
7196 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7198 break;
7200 case 2:
7201 if (r->info2) {
7202 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7204 break;
7206 case 3:
7207 if (r->info3) {
7208 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7210 break;
7212 case 4:
7213 if (r->info4) {
7214 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7216 break;
7218 case 5:
7219 if (r->info5) {
7220 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7222 break;
7224 case 6:
7225 if (r->info6) {
7226 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7228 break;
7230 case 7:
7231 if (r->info7) {
7232 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7234 break;
7236 case 8:
7237 if (r->info8) {
7238 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
7240 break;
7242 case 9:
7243 if (r->info9) {
7244 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
7246 break;
7248 default:
7249 break;
7253 return NDR_ERR_SUCCESS;
7256 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
7258 int level;
7259 uint32_t _level;
7260 TALLOC_CTX *_mem_save_info0_0;
7261 uint32_t _ptr_info0;
7262 TALLOC_CTX *_mem_save_info1_0;
7263 uint32_t _ptr_info1;
7264 TALLOC_CTX *_mem_save_info2_0;
7265 uint32_t _ptr_info2;
7266 TALLOC_CTX *_mem_save_info3_0;
7267 uint32_t _ptr_info3;
7268 TALLOC_CTX *_mem_save_info4_0;
7269 uint32_t _ptr_info4;
7270 TALLOC_CTX *_mem_save_info5_0;
7271 uint32_t _ptr_info5;
7272 TALLOC_CTX *_mem_save_info6_0;
7273 uint32_t _ptr_info6;
7274 TALLOC_CTX *_mem_save_info7_0;
7275 uint32_t _ptr_info7;
7276 TALLOC_CTX *_mem_save_info8_0;
7277 uint32_t _ptr_info8;
7278 TALLOC_CTX *_mem_save_info9_0;
7279 uint32_t _ptr_info9;
7280 level = ndr_pull_get_switch_value(ndr, r);
7281 if (ndr_flags & NDR_SCALARS) {
7282 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7283 if (_level != level) {
7284 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7286 switch (level) {
7287 case 0: {
7288 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7289 if (_ptr_info0) {
7290 NDR_PULL_ALLOC(ndr, r->info0);
7291 } else {
7292 r->info0 = NULL;
7294 break; }
7296 case 1: {
7297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7298 if (_ptr_info1) {
7299 NDR_PULL_ALLOC(ndr, r->info1);
7300 } else {
7301 r->info1 = NULL;
7303 break; }
7305 case 2: {
7306 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7307 if (_ptr_info2) {
7308 NDR_PULL_ALLOC(ndr, r->info2);
7309 } else {
7310 r->info2 = NULL;
7312 break; }
7314 case 3: {
7315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7316 if (_ptr_info3) {
7317 NDR_PULL_ALLOC(ndr, r->info3);
7318 } else {
7319 r->info3 = NULL;
7321 break; }
7323 case 4: {
7324 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7325 if (_ptr_info4) {
7326 NDR_PULL_ALLOC(ndr, r->info4);
7327 } else {
7328 r->info4 = NULL;
7330 break; }
7332 case 5: {
7333 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7334 if (_ptr_info5) {
7335 NDR_PULL_ALLOC(ndr, r->info5);
7336 } else {
7337 r->info5 = NULL;
7339 break; }
7341 case 6: {
7342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7343 if (_ptr_info6) {
7344 NDR_PULL_ALLOC(ndr, r->info6);
7345 } else {
7346 r->info6 = NULL;
7348 break; }
7350 case 7: {
7351 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7352 if (_ptr_info7) {
7353 NDR_PULL_ALLOC(ndr, r->info7);
7354 } else {
7355 r->info7 = NULL;
7357 break; }
7359 case 8: {
7360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7361 if (_ptr_info8) {
7362 NDR_PULL_ALLOC(ndr, r->info8);
7363 } else {
7364 r->info8 = NULL;
7366 break; }
7368 case 9: {
7369 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7370 if (_ptr_info9) {
7371 NDR_PULL_ALLOC(ndr, r->info9);
7372 } else {
7373 r->info9 = NULL;
7375 break; }
7377 default: {
7378 break; }
7382 if (ndr_flags & NDR_BUFFERS) {
7383 switch (level) {
7384 case 0:
7385 if (r->info0) {
7386 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7387 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7388 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7389 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7391 break;
7393 case 1:
7394 if (r->info1) {
7395 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7396 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7397 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7400 break;
7402 case 2:
7403 if (r->info2) {
7404 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7405 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7406 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7407 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7409 break;
7411 case 3:
7412 if (r->info3) {
7413 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7414 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7415 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7418 break;
7420 case 4:
7421 if (r->info4) {
7422 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7423 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7424 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7427 break;
7429 case 5:
7430 if (r->info5) {
7431 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7432 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7433 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7434 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7436 break;
7438 case 6:
7439 if (r->info6) {
7440 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7441 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7442 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7445 break;
7447 case 7:
7448 if (r->info7) {
7449 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7450 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7451 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7454 break;
7456 case 8:
7457 if (r->info8) {
7458 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7459 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7460 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
7461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7463 break;
7465 case 9:
7466 if (r->info9) {
7467 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7468 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7469 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
7470 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7472 break;
7474 default:
7475 break;
7479 return NDR_ERR_SUCCESS;
7482 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7484 int level;
7485 level = ndr_print_get_switch_value(ndr, r);
7486 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
7487 switch (level) {
7488 case 0:
7489 ndr_print_ptr(ndr, "info0", r->info0);
7490 ndr->depth++;
7491 if (r->info0) {
7492 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
7494 ndr->depth--;
7495 break;
7497 case 1:
7498 ndr_print_ptr(ndr, "info1", r->info1);
7499 ndr->depth++;
7500 if (r->info1) {
7501 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
7503 ndr->depth--;
7504 break;
7506 case 2:
7507 ndr_print_ptr(ndr, "info2", r->info2);
7508 ndr->depth++;
7509 if (r->info2) {
7510 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
7512 ndr->depth--;
7513 break;
7515 case 3:
7516 ndr_print_ptr(ndr, "info3", r->info3);
7517 ndr->depth++;
7518 if (r->info3) {
7519 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
7521 ndr->depth--;
7522 break;
7524 case 4:
7525 ndr_print_ptr(ndr, "info4", r->info4);
7526 ndr->depth++;
7527 if (r->info4) {
7528 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
7530 ndr->depth--;
7531 break;
7533 case 5:
7534 ndr_print_ptr(ndr, "info5", r->info5);
7535 ndr->depth++;
7536 if (r->info5) {
7537 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
7539 ndr->depth--;
7540 break;
7542 case 6:
7543 ndr_print_ptr(ndr, "info6", r->info6);
7544 ndr->depth++;
7545 if (r->info6) {
7546 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
7548 ndr->depth--;
7549 break;
7551 case 7:
7552 ndr_print_ptr(ndr, "info7", r->info7);
7553 ndr->depth++;
7554 if (r->info7) {
7555 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
7557 ndr->depth--;
7558 break;
7560 case 8:
7561 ndr_print_ptr(ndr, "info8", r->info8);
7562 ndr->depth++;
7563 if (r->info8) {
7564 ndr_print_spoolss_SetPrinterInfo8(ndr, "info8", r->info8);
7566 ndr->depth--;
7567 break;
7569 case 9:
7570 ndr_print_ptr(ndr, "info9", r->info9);
7571 ndr->depth++;
7572 if (r->info9) {
7573 ndr_print_spoolss_SetPrinterInfo9(ndr, "info9", r->info9);
7575 ndr->depth--;
7576 break;
7578 default:
7579 break;
7584 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
7586 if (ndr_flags & NDR_SCALARS) {
7587 NDR_CHECK(ndr_push_align(ndr, 4));
7588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7589 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7590 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7592 if (ndr_flags & NDR_BUFFERS) {
7593 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7595 return NDR_ERR_SUCCESS;
7598 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
7600 if (ndr_flags & NDR_SCALARS) {
7601 NDR_CHECK(ndr_pull_align(ndr, 4));
7602 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7603 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7604 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7606 if (ndr_flags & NDR_BUFFERS) {
7607 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7609 return NDR_ERR_SUCCESS;
7612 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
7614 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
7615 ndr->depth++;
7616 ndr_print_uint32(ndr, "level", r->level);
7617 ndr_print_set_switch_value(ndr, &r->info, r->level);
7618 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
7619 ndr->depth--;
7622 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
7624 if (ndr_flags & NDR_SCALARS) {
7625 NDR_CHECK(ndr_push_align(ndr, 4));
7626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
7628 uint32_t _flags_save_string_array = ndr->flags;
7629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7630 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
7631 ndr->flags = _flags_save_string_array;
7634 if (ndr_flags & NDR_BUFFERS) {
7636 return NDR_ERR_SUCCESS;
7639 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
7641 if (ndr_flags & NDR_SCALARS) {
7642 NDR_CHECK(ndr_pull_align(ndr, 4));
7643 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
7645 uint32_t _flags_save_string_array = ndr->flags;
7646 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7647 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
7648 ndr->flags = _flags_save_string_array;
7651 if (ndr_flags & NDR_BUFFERS) {
7653 return NDR_ERR_SUCCESS;
7656 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
7658 ndr_print_struct(ndr, name, "spoolss_StringArray");
7659 ndr->depth++;
7660 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);
7661 ndr_print_string_array(ndr, "string", r->string);
7662 ndr->depth--;
7665 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
7667 if (ndr_flags & NDR_SCALARS) {
7668 NDR_CHECK(ndr_push_align(ndr, 4));
7669 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7671 if (ndr_flags & NDR_BUFFERS) {
7672 if (r->driver_name) {
7673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7676 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7679 return NDR_ERR_SUCCESS;
7682 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
7684 uint32_t _ptr_driver_name;
7685 uint32_t size_driver_name_1 = 0;
7686 uint32_t length_driver_name_1 = 0;
7687 TALLOC_CTX *_mem_save_driver_name_0;
7688 if (ndr_flags & NDR_SCALARS) {
7689 NDR_CHECK(ndr_pull_align(ndr, 4));
7690 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7691 if (_ptr_driver_name) {
7692 NDR_PULL_ALLOC(ndr, r->driver_name);
7693 } else {
7694 r->driver_name = NULL;
7697 if (ndr_flags & NDR_BUFFERS) {
7698 if (r->driver_name) {
7699 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7700 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7701 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7702 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7703 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
7704 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
7705 if (length_driver_name_1 > size_driver_name_1) {
7706 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
7708 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
7709 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
7710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7713 return NDR_ERR_SUCCESS;
7716 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
7718 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
7719 ndr->depth++;
7720 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7721 ndr->depth++;
7722 if (r->driver_name) {
7723 ndr_print_string(ndr, "driver_name", r->driver_name);
7725 ndr->depth--;
7726 ndr->depth--;
7729 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
7731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7732 return NDR_ERR_SUCCESS;
7735 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
7737 uint32_t v;
7738 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7739 *r = v;
7740 return NDR_ERR_SUCCESS;
7743 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
7745 const char *val = NULL;
7747 switch (r) {
7748 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
7749 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
7750 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
7751 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
7753 ndr_print_enum(ndr, name, "ENUM", val, r);
7756 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
7758 if (ndr_flags & NDR_SCALARS) {
7759 NDR_CHECK(ndr_push_align(ndr, 4));
7760 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7761 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7762 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7763 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7764 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7765 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7767 if (ndr_flags & NDR_BUFFERS) {
7768 if (r->driver_name) {
7769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7772 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7774 if (r->architecture) {
7775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, 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->architecture, CH_UTF16)));
7778 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7780 if (r->driver_path) {
7781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, 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->driver_path, CH_UTF16)));
7784 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7786 if (r->data_file) {
7787 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, 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->data_file, CH_UTF16)));
7790 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7792 if (r->config_file) {
7793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_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->config_file, CH_UTF16)));
7796 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7799 return NDR_ERR_SUCCESS;
7802 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
7804 uint32_t _ptr_driver_name;
7805 uint32_t size_driver_name_1 = 0;
7806 uint32_t length_driver_name_1 = 0;
7807 TALLOC_CTX *_mem_save_driver_name_0;
7808 uint32_t _ptr_architecture;
7809 uint32_t size_architecture_1 = 0;
7810 uint32_t length_architecture_1 = 0;
7811 TALLOC_CTX *_mem_save_architecture_0;
7812 uint32_t _ptr_driver_path;
7813 uint32_t size_driver_path_1 = 0;
7814 uint32_t length_driver_path_1 = 0;
7815 TALLOC_CTX *_mem_save_driver_path_0;
7816 uint32_t _ptr_data_file;
7817 uint32_t size_data_file_1 = 0;
7818 uint32_t length_data_file_1 = 0;
7819 TALLOC_CTX *_mem_save_data_file_0;
7820 uint32_t _ptr_config_file;
7821 uint32_t size_config_file_1 = 0;
7822 uint32_t length_config_file_1 = 0;
7823 TALLOC_CTX *_mem_save_config_file_0;
7824 if (ndr_flags & NDR_SCALARS) {
7825 NDR_CHECK(ndr_pull_align(ndr, 4));
7826 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7828 if (_ptr_driver_name) {
7829 NDR_PULL_ALLOC(ndr, r->driver_name);
7830 } else {
7831 r->driver_name = NULL;
7833 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7834 if (_ptr_architecture) {
7835 NDR_PULL_ALLOC(ndr, r->architecture);
7836 } else {
7837 r->architecture = NULL;
7839 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7840 if (_ptr_driver_path) {
7841 NDR_PULL_ALLOC(ndr, r->driver_path);
7842 } else {
7843 r->driver_path = NULL;
7845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7846 if (_ptr_data_file) {
7847 NDR_PULL_ALLOC(ndr, r->data_file);
7848 } else {
7849 r->data_file = NULL;
7851 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7852 if (_ptr_config_file) {
7853 NDR_PULL_ALLOC(ndr, r->config_file);
7854 } else {
7855 r->config_file = NULL;
7858 if (ndr_flags & NDR_BUFFERS) {
7859 if (r->driver_name) {
7860 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7861 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7862 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7863 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7864 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
7865 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
7866 if (length_driver_name_1 > size_driver_name_1) {
7867 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
7869 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
7870 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
7871 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7873 if (r->architecture) {
7874 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7875 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7876 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7877 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7878 size_architecture_1 = ndr_get_array_size(ndr, &r->architecture);
7879 length_architecture_1 = ndr_get_array_length(ndr, &r->architecture);
7880 if (length_architecture_1 > size_architecture_1) {
7881 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
7883 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
7884 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
7885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7887 if (r->driver_path) {
7888 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7889 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7890 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7891 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7892 size_driver_path_1 = ndr_get_array_size(ndr, &r->driver_path);
7893 length_driver_path_1 = ndr_get_array_length(ndr, &r->driver_path);
7894 if (length_driver_path_1 > size_driver_path_1) {
7895 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_path_1, length_driver_path_1);
7897 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
7898 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
7899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7901 if (r->data_file) {
7902 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7903 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7904 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7905 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7906 size_data_file_1 = ndr_get_array_size(ndr, &r->data_file);
7907 length_data_file_1 = ndr_get_array_length(ndr, &r->data_file);
7908 if (length_data_file_1 > size_data_file_1) {
7909 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_file_1, length_data_file_1);
7911 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
7912 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
7913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7915 if (r->config_file) {
7916 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7917 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7918 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7919 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7920 size_config_file_1 = ndr_get_array_size(ndr, &r->config_file);
7921 length_config_file_1 = ndr_get_array_length(ndr, &r->config_file);
7922 if (length_config_file_1 > size_config_file_1) {
7923 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_config_file_1, length_config_file_1);
7925 NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
7926 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
7927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7930 return NDR_ERR_SUCCESS;
7933 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
7935 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
7936 ndr->depth++;
7937 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7938 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7939 ndr->depth++;
7940 if (r->driver_name) {
7941 ndr_print_string(ndr, "driver_name", r->driver_name);
7943 ndr->depth--;
7944 ndr_print_ptr(ndr, "architecture", r->architecture);
7945 ndr->depth++;
7946 if (r->architecture) {
7947 ndr_print_string(ndr, "architecture", r->architecture);
7949 ndr->depth--;
7950 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7951 ndr->depth++;
7952 if (r->driver_path) {
7953 ndr_print_string(ndr, "driver_path", r->driver_path);
7955 ndr->depth--;
7956 ndr_print_ptr(ndr, "data_file", r->data_file);
7957 ndr->depth++;
7958 if (r->data_file) {
7959 ndr_print_string(ndr, "data_file", r->data_file);
7961 ndr->depth--;
7962 ndr_print_ptr(ndr, "config_file", r->config_file);
7963 ndr->depth++;
7964 if (r->config_file) {
7965 ndr_print_string(ndr, "config_file", r->config_file);
7967 ndr->depth--;
7968 ndr->depth--;
7971 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
7973 if (ndr_flags & NDR_SCALARS) {
7974 NDR_CHECK(ndr_push_align(ndr, 4));
7975 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7976 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7977 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7978 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7979 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7980 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7981 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
7982 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
7983 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
7984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
7985 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
7987 if (ndr_flags & NDR_BUFFERS) {
7988 if (r->driver_name) {
7989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7991 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7992 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7994 if (r->architecture) {
7995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7997 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7998 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8000 if (r->driver_path) {
8001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8002 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8004 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8006 if (r->data_file) {
8007 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8008 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8009 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8010 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8012 if (r->config_file) {
8013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8016 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8018 if (r->help_file) {
8019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8022 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8024 if (r->monitor_name) {
8025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8028 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8030 if (r->default_datatype) {
8031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8034 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8036 if (r->dependent_files) {
8037 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8040 return NDR_ERR_SUCCESS;
8043 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
8045 uint32_t _ptr_driver_name;
8046 uint32_t size_driver_name_1 = 0;
8047 uint32_t length_driver_name_1 = 0;
8048 TALLOC_CTX *_mem_save_driver_name_0;
8049 uint32_t _ptr_architecture;
8050 uint32_t size_architecture_1 = 0;
8051 uint32_t length_architecture_1 = 0;
8052 TALLOC_CTX *_mem_save_architecture_0;
8053 uint32_t _ptr_driver_path;
8054 uint32_t size_driver_path_1 = 0;
8055 uint32_t length_driver_path_1 = 0;
8056 TALLOC_CTX *_mem_save_driver_path_0;
8057 uint32_t _ptr_data_file;
8058 uint32_t size_data_file_1 = 0;
8059 uint32_t length_data_file_1 = 0;
8060 TALLOC_CTX *_mem_save_data_file_0;
8061 uint32_t _ptr_config_file;
8062 uint32_t size_config_file_1 = 0;
8063 uint32_t length_config_file_1 = 0;
8064 TALLOC_CTX *_mem_save_config_file_0;
8065 uint32_t _ptr_help_file;
8066 uint32_t size_help_file_1 = 0;
8067 uint32_t length_help_file_1 = 0;
8068 TALLOC_CTX *_mem_save_help_file_0;
8069 uint32_t _ptr_monitor_name;
8070 uint32_t size_monitor_name_1 = 0;
8071 uint32_t length_monitor_name_1 = 0;
8072 TALLOC_CTX *_mem_save_monitor_name_0;
8073 uint32_t _ptr_default_datatype;
8074 uint32_t size_default_datatype_1 = 0;
8075 uint32_t length_default_datatype_1 = 0;
8076 TALLOC_CTX *_mem_save_default_datatype_0;
8077 uint32_t _ptr_dependent_files;
8078 TALLOC_CTX *_mem_save_dependent_files_0;
8079 if (ndr_flags & NDR_SCALARS) {
8080 NDR_CHECK(ndr_pull_align(ndr, 4));
8081 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8082 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8083 if (_ptr_driver_name) {
8084 NDR_PULL_ALLOC(ndr, r->driver_name);
8085 } else {
8086 r->driver_name = NULL;
8088 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8089 if (_ptr_architecture) {
8090 NDR_PULL_ALLOC(ndr, r->architecture);
8091 } else {
8092 r->architecture = NULL;
8094 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8095 if (_ptr_driver_path) {
8096 NDR_PULL_ALLOC(ndr, r->driver_path);
8097 } else {
8098 r->driver_path = NULL;
8100 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8101 if (_ptr_data_file) {
8102 NDR_PULL_ALLOC(ndr, r->data_file);
8103 } else {
8104 r->data_file = NULL;
8106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8107 if (_ptr_config_file) {
8108 NDR_PULL_ALLOC(ndr, r->config_file);
8109 } else {
8110 r->config_file = NULL;
8112 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8113 if (_ptr_help_file) {
8114 NDR_PULL_ALLOC(ndr, r->help_file);
8115 } else {
8116 r->help_file = NULL;
8118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8119 if (_ptr_monitor_name) {
8120 NDR_PULL_ALLOC(ndr, r->monitor_name);
8121 } else {
8122 r->monitor_name = NULL;
8124 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8125 if (_ptr_default_datatype) {
8126 NDR_PULL_ALLOC(ndr, r->default_datatype);
8127 } else {
8128 r->default_datatype = NULL;
8130 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8131 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8132 if (_ptr_dependent_files) {
8133 NDR_PULL_ALLOC(ndr, r->dependent_files);
8134 } else {
8135 r->dependent_files = NULL;
8138 if (ndr_flags & NDR_BUFFERS) {
8139 if (r->driver_name) {
8140 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8141 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8142 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8143 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8144 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
8145 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
8146 if (length_driver_name_1 > size_driver_name_1) {
8147 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
8149 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
8150 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
8151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8153 if (r->architecture) {
8154 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8155 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8156 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8157 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8158 size_architecture_1 = ndr_get_array_size(ndr, &r->architecture);
8159 length_architecture_1 = ndr_get_array_length(ndr, &r->architecture);
8160 if (length_architecture_1 > size_architecture_1) {
8161 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
8163 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
8164 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
8165 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8167 if (r->driver_path) {
8168 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8169 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8170 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8171 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8172 size_driver_path_1 = ndr_get_array_size(ndr, &r->driver_path);
8173 length_driver_path_1 = ndr_get_array_length(ndr, &r->driver_path);
8174 if (length_driver_path_1 > size_driver_path_1) {
8175 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_path_1, length_driver_path_1);
8177 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
8178 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
8179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8181 if (r->data_file) {
8182 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8183 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8184 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8185 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8186 size_data_file_1 = ndr_get_array_size(ndr, &r->data_file);
8187 length_data_file_1 = ndr_get_array_length(ndr, &r->data_file);
8188 if (length_data_file_1 > size_data_file_1) {
8189 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_file_1, length_data_file_1);
8191 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
8192 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
8193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8195 if (r->config_file) {
8196 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8197 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8198 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8199 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8200 size_config_file_1 = ndr_get_array_size(ndr, &r->config_file);
8201 length_config_file_1 = ndr_get_array_length(ndr, &r->config_file);
8202 if (length_config_file_1 > size_config_file_1) {
8203 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_config_file_1, length_config_file_1);
8205 NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
8206 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
8207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8209 if (r->help_file) {
8210 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8211 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8212 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8213 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8214 size_help_file_1 = ndr_get_array_size(ndr, &r->help_file);
8215 length_help_file_1 = ndr_get_array_length(ndr, &r->help_file);
8216 if (length_help_file_1 > size_help_file_1) {
8217 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_help_file_1, length_help_file_1);
8219 NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
8220 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
8221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8223 if (r->monitor_name) {
8224 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8225 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8226 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8227 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8228 size_monitor_name_1 = ndr_get_array_size(ndr, &r->monitor_name);
8229 length_monitor_name_1 = ndr_get_array_length(ndr, &r->monitor_name);
8230 if (length_monitor_name_1 > size_monitor_name_1) {
8231 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_1, length_monitor_name_1);
8233 NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
8234 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
8235 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8237 if (r->default_datatype) {
8238 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8239 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8240 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8241 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8242 size_default_datatype_1 = ndr_get_array_size(ndr, &r->default_datatype);
8243 length_default_datatype_1 = ndr_get_array_length(ndr, &r->default_datatype);
8244 if (length_default_datatype_1 > size_default_datatype_1) {
8245 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_default_datatype_1, length_default_datatype_1);
8247 NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
8248 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
8249 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8251 if (r->dependent_files) {
8252 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8253 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8254 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8255 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8258 return NDR_ERR_SUCCESS;
8261 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
8263 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
8264 ndr->depth++;
8265 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8266 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8267 ndr->depth++;
8268 if (r->driver_name) {
8269 ndr_print_string(ndr, "driver_name", r->driver_name);
8271 ndr->depth--;
8272 ndr_print_ptr(ndr, "architecture", r->architecture);
8273 ndr->depth++;
8274 if (r->architecture) {
8275 ndr_print_string(ndr, "architecture", r->architecture);
8277 ndr->depth--;
8278 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8279 ndr->depth++;
8280 if (r->driver_path) {
8281 ndr_print_string(ndr, "driver_path", r->driver_path);
8283 ndr->depth--;
8284 ndr_print_ptr(ndr, "data_file", r->data_file);
8285 ndr->depth++;
8286 if (r->data_file) {
8287 ndr_print_string(ndr, "data_file", r->data_file);
8289 ndr->depth--;
8290 ndr_print_ptr(ndr, "config_file", r->config_file);
8291 ndr->depth++;
8292 if (r->config_file) {
8293 ndr_print_string(ndr, "config_file", r->config_file);
8295 ndr->depth--;
8296 ndr_print_ptr(ndr, "help_file", r->help_file);
8297 ndr->depth++;
8298 if (r->help_file) {
8299 ndr_print_string(ndr, "help_file", r->help_file);
8301 ndr->depth--;
8302 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8303 ndr->depth++;
8304 if (r->monitor_name) {
8305 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8307 ndr->depth--;
8308 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8309 ndr->depth++;
8310 if (r->default_datatype) {
8311 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8313 ndr->depth--;
8314 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);
8315 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8316 ndr->depth++;
8317 if (r->dependent_files) {
8318 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8320 ndr->depth--;
8321 ndr->depth--;
8324 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8326 if (ndr_flags & NDR_SCALARS) {
8327 NDR_CHECK(ndr_push_align(ndr, 4));
8328 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8329 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8330 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8331 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8332 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8333 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8334 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8335 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8336 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8338 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8340 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8342 if (ndr_flags & NDR_BUFFERS) {
8343 if (r->driver_name) {
8344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8346 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8347 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8349 if (r->architecture) {
8350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8353 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8355 if (r->driver_path) {
8356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8359 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8361 if (r->data_file) {
8362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8365 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8367 if (r->config_file) {
8368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8371 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8373 if (r->help_file) {
8374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8377 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8379 if (r->monitor_name) {
8380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8383 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8385 if (r->default_datatype) {
8386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8389 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8391 if (r->dependent_files) {
8392 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8394 if (r->previous_names) {
8395 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8398 return NDR_ERR_SUCCESS;
8401 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8403 uint32_t _ptr_driver_name;
8404 uint32_t size_driver_name_1 = 0;
8405 uint32_t length_driver_name_1 = 0;
8406 TALLOC_CTX *_mem_save_driver_name_0;
8407 uint32_t _ptr_architecture;
8408 uint32_t size_architecture_1 = 0;
8409 uint32_t length_architecture_1 = 0;
8410 TALLOC_CTX *_mem_save_architecture_0;
8411 uint32_t _ptr_driver_path;
8412 uint32_t size_driver_path_1 = 0;
8413 uint32_t length_driver_path_1 = 0;
8414 TALLOC_CTX *_mem_save_driver_path_0;
8415 uint32_t _ptr_data_file;
8416 uint32_t size_data_file_1 = 0;
8417 uint32_t length_data_file_1 = 0;
8418 TALLOC_CTX *_mem_save_data_file_0;
8419 uint32_t _ptr_config_file;
8420 uint32_t size_config_file_1 = 0;
8421 uint32_t length_config_file_1 = 0;
8422 TALLOC_CTX *_mem_save_config_file_0;
8423 uint32_t _ptr_help_file;
8424 uint32_t size_help_file_1 = 0;
8425 uint32_t length_help_file_1 = 0;
8426 TALLOC_CTX *_mem_save_help_file_0;
8427 uint32_t _ptr_monitor_name;
8428 uint32_t size_monitor_name_1 = 0;
8429 uint32_t length_monitor_name_1 = 0;
8430 TALLOC_CTX *_mem_save_monitor_name_0;
8431 uint32_t _ptr_default_datatype;
8432 uint32_t size_default_datatype_1 = 0;
8433 uint32_t length_default_datatype_1 = 0;
8434 TALLOC_CTX *_mem_save_default_datatype_0;
8435 uint32_t _ptr_dependent_files;
8436 TALLOC_CTX *_mem_save_dependent_files_0;
8437 uint32_t _ptr_previous_names;
8438 TALLOC_CTX *_mem_save_previous_names_0;
8439 if (ndr_flags & NDR_SCALARS) {
8440 NDR_CHECK(ndr_pull_align(ndr, 4));
8441 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8442 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8443 if (_ptr_driver_name) {
8444 NDR_PULL_ALLOC(ndr, r->driver_name);
8445 } else {
8446 r->driver_name = NULL;
8448 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8449 if (_ptr_architecture) {
8450 NDR_PULL_ALLOC(ndr, r->architecture);
8451 } else {
8452 r->architecture = NULL;
8454 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8455 if (_ptr_driver_path) {
8456 NDR_PULL_ALLOC(ndr, r->driver_path);
8457 } else {
8458 r->driver_path = NULL;
8460 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8461 if (_ptr_data_file) {
8462 NDR_PULL_ALLOC(ndr, r->data_file);
8463 } else {
8464 r->data_file = NULL;
8466 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8467 if (_ptr_config_file) {
8468 NDR_PULL_ALLOC(ndr, r->config_file);
8469 } else {
8470 r->config_file = NULL;
8472 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8473 if (_ptr_help_file) {
8474 NDR_PULL_ALLOC(ndr, r->help_file);
8475 } else {
8476 r->help_file = NULL;
8478 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8479 if (_ptr_monitor_name) {
8480 NDR_PULL_ALLOC(ndr, r->monitor_name);
8481 } else {
8482 r->monitor_name = NULL;
8484 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8485 if (_ptr_default_datatype) {
8486 NDR_PULL_ALLOC(ndr, r->default_datatype);
8487 } else {
8488 r->default_datatype = NULL;
8490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8491 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8492 if (_ptr_dependent_files) {
8493 NDR_PULL_ALLOC(ndr, r->dependent_files);
8494 } else {
8495 r->dependent_files = NULL;
8497 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8498 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8499 if (_ptr_previous_names) {
8500 NDR_PULL_ALLOC(ndr, r->previous_names);
8501 } else {
8502 r->previous_names = NULL;
8505 if (ndr_flags & NDR_BUFFERS) {
8506 if (r->driver_name) {
8507 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8508 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8509 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8510 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8511 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
8512 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
8513 if (length_driver_name_1 > size_driver_name_1) {
8514 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
8516 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
8517 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
8518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8520 if (r->architecture) {
8521 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8522 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8523 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8524 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8525 size_architecture_1 = ndr_get_array_size(ndr, &r->architecture);
8526 length_architecture_1 = ndr_get_array_length(ndr, &r->architecture);
8527 if (length_architecture_1 > size_architecture_1) {
8528 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
8530 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
8531 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
8532 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8534 if (r->driver_path) {
8535 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8536 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8537 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8538 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8539 size_driver_path_1 = ndr_get_array_size(ndr, &r->driver_path);
8540 length_driver_path_1 = ndr_get_array_length(ndr, &r->driver_path);
8541 if (length_driver_path_1 > size_driver_path_1) {
8542 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_path_1, length_driver_path_1);
8544 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
8545 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
8546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8548 if (r->data_file) {
8549 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8550 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8551 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8552 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8553 size_data_file_1 = ndr_get_array_size(ndr, &r->data_file);
8554 length_data_file_1 = ndr_get_array_length(ndr, &r->data_file);
8555 if (length_data_file_1 > size_data_file_1) {
8556 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_file_1, length_data_file_1);
8558 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
8559 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
8560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8562 if (r->config_file) {
8563 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8564 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8565 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8566 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8567 size_config_file_1 = ndr_get_array_size(ndr, &r->config_file);
8568 length_config_file_1 = ndr_get_array_length(ndr, &r->config_file);
8569 if (length_config_file_1 > size_config_file_1) {
8570 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_config_file_1, length_config_file_1);
8572 NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
8573 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
8574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8576 if (r->help_file) {
8577 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8578 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8579 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8580 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8581 size_help_file_1 = ndr_get_array_size(ndr, &r->help_file);
8582 length_help_file_1 = ndr_get_array_length(ndr, &r->help_file);
8583 if (length_help_file_1 > size_help_file_1) {
8584 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_help_file_1, length_help_file_1);
8586 NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
8587 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
8588 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8590 if (r->monitor_name) {
8591 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8592 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8593 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8594 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8595 size_monitor_name_1 = ndr_get_array_size(ndr, &r->monitor_name);
8596 length_monitor_name_1 = ndr_get_array_length(ndr, &r->monitor_name);
8597 if (length_monitor_name_1 > size_monitor_name_1) {
8598 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_1, length_monitor_name_1);
8600 NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
8601 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
8602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8604 if (r->default_datatype) {
8605 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8606 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8607 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8608 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8609 size_default_datatype_1 = ndr_get_array_size(ndr, &r->default_datatype);
8610 length_default_datatype_1 = ndr_get_array_length(ndr, &r->default_datatype);
8611 if (length_default_datatype_1 > size_default_datatype_1) {
8612 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_default_datatype_1, length_default_datatype_1);
8614 NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
8615 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
8616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8618 if (r->dependent_files) {
8619 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8620 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8621 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8624 if (r->previous_names) {
8625 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8626 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8627 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8631 return NDR_ERR_SUCCESS;
8634 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
8636 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
8637 ndr->depth++;
8638 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8639 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8640 ndr->depth++;
8641 if (r->driver_name) {
8642 ndr_print_string(ndr, "driver_name", r->driver_name);
8644 ndr->depth--;
8645 ndr_print_ptr(ndr, "architecture", r->architecture);
8646 ndr->depth++;
8647 if (r->architecture) {
8648 ndr_print_string(ndr, "architecture", r->architecture);
8650 ndr->depth--;
8651 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8652 ndr->depth++;
8653 if (r->driver_path) {
8654 ndr_print_string(ndr, "driver_path", r->driver_path);
8656 ndr->depth--;
8657 ndr_print_ptr(ndr, "data_file", r->data_file);
8658 ndr->depth++;
8659 if (r->data_file) {
8660 ndr_print_string(ndr, "data_file", r->data_file);
8662 ndr->depth--;
8663 ndr_print_ptr(ndr, "config_file", r->config_file);
8664 ndr->depth++;
8665 if (r->config_file) {
8666 ndr_print_string(ndr, "config_file", r->config_file);
8668 ndr->depth--;
8669 ndr_print_ptr(ndr, "help_file", r->help_file);
8670 ndr->depth++;
8671 if (r->help_file) {
8672 ndr_print_string(ndr, "help_file", r->help_file);
8674 ndr->depth--;
8675 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8676 ndr->depth++;
8677 if (r->monitor_name) {
8678 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8680 ndr->depth--;
8681 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8682 ndr->depth++;
8683 if (r->default_datatype) {
8684 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8686 ndr->depth--;
8687 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);
8688 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8689 ndr->depth++;
8690 if (r->dependent_files) {
8691 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8693 ndr->depth--;
8694 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);
8695 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8696 ndr->depth++;
8697 if (r->previous_names) {
8698 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8700 ndr->depth--;
8701 ndr->depth--;
8704 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
8706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8707 return NDR_ERR_SUCCESS;
8710 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
8712 uint32_t v;
8713 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8714 *r = v;
8715 return NDR_ERR_SUCCESS;
8718 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
8720 ndr_print_uint32(ndr, name, r);
8721 ndr->depth++;
8722 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
8723 ndr->depth--;
8726 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
8728 if (ndr_flags & NDR_SCALARS) {
8729 NDR_CHECK(ndr_push_align(ndr, 8));
8730 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8731 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8732 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8733 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8734 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8735 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8736 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8737 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8738 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8740 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8742 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8743 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8744 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8745 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8746 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8747 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8748 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8750 if (ndr_flags & NDR_BUFFERS) {
8751 if (r->driver_name) {
8752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8755 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8757 if (r->architecture) {
8758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8761 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8763 if (r->driver_path) {
8764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8767 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8769 if (r->data_file) {
8770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8773 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8775 if (r->config_file) {
8776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8779 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8781 if (r->help_file) {
8782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8785 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8787 if (r->monitor_name) {
8788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8791 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8793 if (r->default_datatype) {
8794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8797 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8799 if (r->dependent_files) {
8800 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8802 if (r->previous_names) {
8803 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8805 if (r->manufacturer_name) {
8806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8809 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8811 if (r->manufacturer_url) {
8812 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8815 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8817 if (r->hardware_id) {
8818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8821 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8823 if (r->provider) {
8824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8827 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8830 return NDR_ERR_SUCCESS;
8833 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
8835 uint32_t _ptr_driver_name;
8836 uint32_t size_driver_name_1 = 0;
8837 uint32_t length_driver_name_1 = 0;
8838 TALLOC_CTX *_mem_save_driver_name_0;
8839 uint32_t _ptr_architecture;
8840 uint32_t size_architecture_1 = 0;
8841 uint32_t length_architecture_1 = 0;
8842 TALLOC_CTX *_mem_save_architecture_0;
8843 uint32_t _ptr_driver_path;
8844 uint32_t size_driver_path_1 = 0;
8845 uint32_t length_driver_path_1 = 0;
8846 TALLOC_CTX *_mem_save_driver_path_0;
8847 uint32_t _ptr_data_file;
8848 uint32_t size_data_file_1 = 0;
8849 uint32_t length_data_file_1 = 0;
8850 TALLOC_CTX *_mem_save_data_file_0;
8851 uint32_t _ptr_config_file;
8852 uint32_t size_config_file_1 = 0;
8853 uint32_t length_config_file_1 = 0;
8854 TALLOC_CTX *_mem_save_config_file_0;
8855 uint32_t _ptr_help_file;
8856 uint32_t size_help_file_1 = 0;
8857 uint32_t length_help_file_1 = 0;
8858 TALLOC_CTX *_mem_save_help_file_0;
8859 uint32_t _ptr_monitor_name;
8860 uint32_t size_monitor_name_1 = 0;
8861 uint32_t length_monitor_name_1 = 0;
8862 TALLOC_CTX *_mem_save_monitor_name_0;
8863 uint32_t _ptr_default_datatype;
8864 uint32_t size_default_datatype_1 = 0;
8865 uint32_t length_default_datatype_1 = 0;
8866 TALLOC_CTX *_mem_save_default_datatype_0;
8867 uint32_t _ptr_dependent_files;
8868 TALLOC_CTX *_mem_save_dependent_files_0;
8869 uint32_t _ptr_previous_names;
8870 TALLOC_CTX *_mem_save_previous_names_0;
8871 uint32_t _ptr_manufacturer_name;
8872 uint32_t size_manufacturer_name_1 = 0;
8873 uint32_t length_manufacturer_name_1 = 0;
8874 TALLOC_CTX *_mem_save_manufacturer_name_0;
8875 uint32_t _ptr_manufacturer_url;
8876 uint32_t size_manufacturer_url_1 = 0;
8877 uint32_t length_manufacturer_url_1 = 0;
8878 TALLOC_CTX *_mem_save_manufacturer_url_0;
8879 uint32_t _ptr_hardware_id;
8880 uint32_t size_hardware_id_1 = 0;
8881 uint32_t length_hardware_id_1 = 0;
8882 TALLOC_CTX *_mem_save_hardware_id_0;
8883 uint32_t _ptr_provider;
8884 uint32_t size_provider_1 = 0;
8885 uint32_t length_provider_1 = 0;
8886 TALLOC_CTX *_mem_save_provider_0;
8887 if (ndr_flags & NDR_SCALARS) {
8888 NDR_CHECK(ndr_pull_align(ndr, 8));
8889 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8891 if (_ptr_driver_name) {
8892 NDR_PULL_ALLOC(ndr, r->driver_name);
8893 } else {
8894 r->driver_name = NULL;
8896 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8897 if (_ptr_architecture) {
8898 NDR_PULL_ALLOC(ndr, r->architecture);
8899 } else {
8900 r->architecture = NULL;
8902 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8903 if (_ptr_driver_path) {
8904 NDR_PULL_ALLOC(ndr, r->driver_path);
8905 } else {
8906 r->driver_path = NULL;
8908 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8909 if (_ptr_data_file) {
8910 NDR_PULL_ALLOC(ndr, r->data_file);
8911 } else {
8912 r->data_file = NULL;
8914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8915 if (_ptr_config_file) {
8916 NDR_PULL_ALLOC(ndr, r->config_file);
8917 } else {
8918 r->config_file = NULL;
8920 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8921 if (_ptr_help_file) {
8922 NDR_PULL_ALLOC(ndr, r->help_file);
8923 } else {
8924 r->help_file = NULL;
8926 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8927 if (_ptr_monitor_name) {
8928 NDR_PULL_ALLOC(ndr, r->monitor_name);
8929 } else {
8930 r->monitor_name = NULL;
8932 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8933 if (_ptr_default_datatype) {
8934 NDR_PULL_ALLOC(ndr, r->default_datatype);
8935 } else {
8936 r->default_datatype = NULL;
8938 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8939 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8940 if (_ptr_dependent_files) {
8941 NDR_PULL_ALLOC(ndr, r->dependent_files);
8942 } else {
8943 r->dependent_files = NULL;
8945 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8946 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8947 if (_ptr_previous_names) {
8948 NDR_PULL_ALLOC(ndr, r->previous_names);
8949 } else {
8950 r->previous_names = NULL;
8952 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
8953 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
8954 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
8955 if (_ptr_manufacturer_name) {
8956 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
8957 } else {
8958 r->manufacturer_name = NULL;
8960 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
8961 if (_ptr_manufacturer_url) {
8962 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
8963 } else {
8964 r->manufacturer_url = NULL;
8966 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
8967 if (_ptr_hardware_id) {
8968 NDR_PULL_ALLOC(ndr, r->hardware_id);
8969 } else {
8970 r->hardware_id = NULL;
8972 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
8973 if (_ptr_provider) {
8974 NDR_PULL_ALLOC(ndr, r->provider);
8975 } else {
8976 r->provider = NULL;
8979 if (ndr_flags & NDR_BUFFERS) {
8980 if (r->driver_name) {
8981 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8982 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8983 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8984 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8985 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
8986 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
8987 if (length_driver_name_1 > size_driver_name_1) {
8988 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
8990 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
8991 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
8992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8994 if (r->architecture) {
8995 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8996 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8997 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8998 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8999 size_architecture_1 = ndr_get_array_size(ndr, &r->architecture);
9000 length_architecture_1 = ndr_get_array_length(ndr, &r->architecture);
9001 if (length_architecture_1 > size_architecture_1) {
9002 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
9004 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
9005 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
9006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9008 if (r->driver_path) {
9009 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9010 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9011 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9012 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9013 size_driver_path_1 = ndr_get_array_size(ndr, &r->driver_path);
9014 length_driver_path_1 = ndr_get_array_length(ndr, &r->driver_path);
9015 if (length_driver_path_1 > size_driver_path_1) {
9016 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_path_1, length_driver_path_1);
9018 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
9019 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
9020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9022 if (r->data_file) {
9023 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9024 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9025 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9026 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9027 size_data_file_1 = ndr_get_array_size(ndr, &r->data_file);
9028 length_data_file_1 = ndr_get_array_length(ndr, &r->data_file);
9029 if (length_data_file_1 > size_data_file_1) {
9030 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_file_1, length_data_file_1);
9032 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
9033 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
9034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9036 if (r->config_file) {
9037 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9038 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9039 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9040 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9041 size_config_file_1 = ndr_get_array_size(ndr, &r->config_file);
9042 length_config_file_1 = ndr_get_array_length(ndr, &r->config_file);
9043 if (length_config_file_1 > size_config_file_1) {
9044 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_config_file_1, length_config_file_1);
9046 NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
9047 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
9048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9050 if (r->help_file) {
9051 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9052 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9053 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9054 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9055 size_help_file_1 = ndr_get_array_size(ndr, &r->help_file);
9056 length_help_file_1 = ndr_get_array_length(ndr, &r->help_file);
9057 if (length_help_file_1 > size_help_file_1) {
9058 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_help_file_1, length_help_file_1);
9060 NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
9061 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
9062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9064 if (r->monitor_name) {
9065 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9066 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9067 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9068 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9069 size_monitor_name_1 = ndr_get_array_size(ndr, &r->monitor_name);
9070 length_monitor_name_1 = ndr_get_array_length(ndr, &r->monitor_name);
9071 if (length_monitor_name_1 > size_monitor_name_1) {
9072 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_1, length_monitor_name_1);
9074 NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
9075 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
9076 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9078 if (r->default_datatype) {
9079 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9080 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9081 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9082 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9083 size_default_datatype_1 = ndr_get_array_size(ndr, &r->default_datatype);
9084 length_default_datatype_1 = ndr_get_array_length(ndr, &r->default_datatype);
9085 if (length_default_datatype_1 > size_default_datatype_1) {
9086 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_default_datatype_1, length_default_datatype_1);
9088 NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
9089 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
9090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9092 if (r->dependent_files) {
9093 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9094 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9095 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9098 if (r->previous_names) {
9099 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9100 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9101 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9104 if (r->manufacturer_name) {
9105 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9106 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9107 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9108 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9109 size_manufacturer_name_1 = ndr_get_array_size(ndr, &r->manufacturer_name);
9110 length_manufacturer_name_1 = ndr_get_array_length(ndr, &r->manufacturer_name);
9111 if (length_manufacturer_name_1 > size_manufacturer_name_1) {
9112 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_manufacturer_name_1, length_manufacturer_name_1);
9114 NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_name_1, sizeof(uint16_t)));
9115 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, length_manufacturer_name_1, sizeof(uint16_t), CH_UTF16));
9116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9118 if (r->manufacturer_url) {
9119 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9120 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9121 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9122 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9123 size_manufacturer_url_1 = ndr_get_array_size(ndr, &r->manufacturer_url);
9124 length_manufacturer_url_1 = ndr_get_array_length(ndr, &r->manufacturer_url);
9125 if (length_manufacturer_url_1 > size_manufacturer_url_1) {
9126 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_manufacturer_url_1, length_manufacturer_url_1);
9128 NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_url_1, sizeof(uint16_t)));
9129 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, length_manufacturer_url_1, sizeof(uint16_t), CH_UTF16));
9130 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9132 if (r->hardware_id) {
9133 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9134 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9135 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9136 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9137 size_hardware_id_1 = ndr_get_array_size(ndr, &r->hardware_id);
9138 length_hardware_id_1 = ndr_get_array_length(ndr, &r->hardware_id);
9139 if (length_hardware_id_1 > size_hardware_id_1) {
9140 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_hardware_id_1, length_hardware_id_1);
9142 NDR_CHECK(ndr_check_string_terminator(ndr, length_hardware_id_1, sizeof(uint16_t)));
9143 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, length_hardware_id_1, sizeof(uint16_t), CH_UTF16));
9144 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9146 if (r->provider) {
9147 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9148 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9149 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9150 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9151 size_provider_1 = ndr_get_array_size(ndr, &r->provider);
9152 length_provider_1 = ndr_get_array_length(ndr, &r->provider);
9153 if (length_provider_1 > size_provider_1) {
9154 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_provider_1, length_provider_1);
9156 NDR_CHECK(ndr_check_string_terminator(ndr, length_provider_1, sizeof(uint16_t)));
9157 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, length_provider_1, sizeof(uint16_t), CH_UTF16));
9158 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9161 return NDR_ERR_SUCCESS;
9164 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
9166 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
9167 ndr->depth++;
9168 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9169 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9170 ndr->depth++;
9171 if (r->driver_name) {
9172 ndr_print_string(ndr, "driver_name", r->driver_name);
9174 ndr->depth--;
9175 ndr_print_ptr(ndr, "architecture", r->architecture);
9176 ndr->depth++;
9177 if (r->architecture) {
9178 ndr_print_string(ndr, "architecture", r->architecture);
9180 ndr->depth--;
9181 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9182 ndr->depth++;
9183 if (r->driver_path) {
9184 ndr_print_string(ndr, "driver_path", r->driver_path);
9186 ndr->depth--;
9187 ndr_print_ptr(ndr, "data_file", r->data_file);
9188 ndr->depth++;
9189 if (r->data_file) {
9190 ndr_print_string(ndr, "data_file", r->data_file);
9192 ndr->depth--;
9193 ndr_print_ptr(ndr, "config_file", r->config_file);
9194 ndr->depth++;
9195 if (r->config_file) {
9196 ndr_print_string(ndr, "config_file", r->config_file);
9198 ndr->depth--;
9199 ndr_print_ptr(ndr, "help_file", r->help_file);
9200 ndr->depth++;
9201 if (r->help_file) {
9202 ndr_print_string(ndr, "help_file", r->help_file);
9204 ndr->depth--;
9205 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9206 ndr->depth++;
9207 if (r->monitor_name) {
9208 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9210 ndr->depth--;
9211 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9212 ndr->depth++;
9213 if (r->default_datatype) {
9214 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9216 ndr->depth--;
9217 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);
9218 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9219 ndr->depth++;
9220 if (r->dependent_files) {
9221 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9223 ndr->depth--;
9224 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);
9225 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9226 ndr->depth++;
9227 if (r->previous_names) {
9228 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9230 ndr->depth--;
9231 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9232 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9233 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9234 ndr->depth++;
9235 if (r->manufacturer_name) {
9236 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9238 ndr->depth--;
9239 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9240 ndr->depth++;
9241 if (r->manufacturer_url) {
9242 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9244 ndr->depth--;
9245 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9246 ndr->depth++;
9247 if (r->hardware_id) {
9248 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9250 ndr->depth--;
9251 ndr_print_ptr(ndr, "provider", r->provider);
9252 ndr->depth++;
9253 if (r->provider) {
9254 ndr_print_string(ndr, "provider", r->provider);
9256 ndr->depth--;
9257 ndr->depth--;
9260 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
9262 if (ndr_flags & NDR_SCALARS) {
9263 NDR_CHECK(ndr_push_align(ndr, 8));
9264 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9265 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9266 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9267 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9268 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9269 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9270 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9271 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9272 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9274 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9276 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9277 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9278 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9279 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9280 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9281 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9282 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9283 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
9284 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
9285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9286 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
9287 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
9288 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9290 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
9291 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9292 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9294 if (ndr_flags & NDR_BUFFERS) {
9295 if (r->driver_name) {
9296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9299 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9301 if (r->architecture) {
9302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9305 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9307 if (r->driver_path) {
9308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9311 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9313 if (r->data_file) {
9314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9316 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9317 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9319 if (r->config_file) {
9320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9323 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9325 if (r->help_file) {
9326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9329 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9331 if (r->monitor_name) {
9332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9335 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9337 if (r->default_datatype) {
9338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9341 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9343 if (r->dependent_files) {
9344 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9346 if (r->previous_names) {
9347 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9349 if (r->manufacturer_name) {
9350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9353 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9355 if (r->manufacturer_url) {
9356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9359 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9361 if (r->hardware_id) {
9362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9365 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9367 if (r->provider) {
9368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9371 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9373 if (r->print_processor) {
9374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9377 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9379 if (r->vendor_setup) {
9380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9383 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9385 if (r->color_profiles) {
9386 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9388 if (r->inf_path) {
9389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9392 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9394 if (r->core_driver_dependencies) {
9395 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9398 return NDR_ERR_SUCCESS;
9401 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
9403 uint32_t _ptr_driver_name;
9404 uint32_t size_driver_name_1 = 0;
9405 uint32_t length_driver_name_1 = 0;
9406 TALLOC_CTX *_mem_save_driver_name_0;
9407 uint32_t _ptr_architecture;
9408 uint32_t size_architecture_1 = 0;
9409 uint32_t length_architecture_1 = 0;
9410 TALLOC_CTX *_mem_save_architecture_0;
9411 uint32_t _ptr_driver_path;
9412 uint32_t size_driver_path_1 = 0;
9413 uint32_t length_driver_path_1 = 0;
9414 TALLOC_CTX *_mem_save_driver_path_0;
9415 uint32_t _ptr_data_file;
9416 uint32_t size_data_file_1 = 0;
9417 uint32_t length_data_file_1 = 0;
9418 TALLOC_CTX *_mem_save_data_file_0;
9419 uint32_t _ptr_config_file;
9420 uint32_t size_config_file_1 = 0;
9421 uint32_t length_config_file_1 = 0;
9422 TALLOC_CTX *_mem_save_config_file_0;
9423 uint32_t _ptr_help_file;
9424 uint32_t size_help_file_1 = 0;
9425 uint32_t length_help_file_1 = 0;
9426 TALLOC_CTX *_mem_save_help_file_0;
9427 uint32_t _ptr_monitor_name;
9428 uint32_t size_monitor_name_1 = 0;
9429 uint32_t length_monitor_name_1 = 0;
9430 TALLOC_CTX *_mem_save_monitor_name_0;
9431 uint32_t _ptr_default_datatype;
9432 uint32_t size_default_datatype_1 = 0;
9433 uint32_t length_default_datatype_1 = 0;
9434 TALLOC_CTX *_mem_save_default_datatype_0;
9435 uint32_t _ptr_dependent_files;
9436 TALLOC_CTX *_mem_save_dependent_files_0;
9437 uint32_t _ptr_previous_names;
9438 TALLOC_CTX *_mem_save_previous_names_0;
9439 uint32_t _ptr_manufacturer_name;
9440 uint32_t size_manufacturer_name_1 = 0;
9441 uint32_t length_manufacturer_name_1 = 0;
9442 TALLOC_CTX *_mem_save_manufacturer_name_0;
9443 uint32_t _ptr_manufacturer_url;
9444 uint32_t size_manufacturer_url_1 = 0;
9445 uint32_t length_manufacturer_url_1 = 0;
9446 TALLOC_CTX *_mem_save_manufacturer_url_0;
9447 uint32_t _ptr_hardware_id;
9448 uint32_t size_hardware_id_1 = 0;
9449 uint32_t length_hardware_id_1 = 0;
9450 TALLOC_CTX *_mem_save_hardware_id_0;
9451 uint32_t _ptr_provider;
9452 uint32_t size_provider_1 = 0;
9453 uint32_t length_provider_1 = 0;
9454 TALLOC_CTX *_mem_save_provider_0;
9455 uint32_t _ptr_print_processor;
9456 uint32_t size_print_processor_1 = 0;
9457 uint32_t length_print_processor_1 = 0;
9458 TALLOC_CTX *_mem_save_print_processor_0;
9459 uint32_t _ptr_vendor_setup;
9460 uint32_t size_vendor_setup_1 = 0;
9461 uint32_t length_vendor_setup_1 = 0;
9462 TALLOC_CTX *_mem_save_vendor_setup_0;
9463 uint32_t _ptr_color_profiles;
9464 TALLOC_CTX *_mem_save_color_profiles_0;
9465 uint32_t _ptr_inf_path;
9466 uint32_t size_inf_path_1 = 0;
9467 uint32_t length_inf_path_1 = 0;
9468 TALLOC_CTX *_mem_save_inf_path_0;
9469 uint32_t _ptr_core_driver_dependencies;
9470 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9471 if (ndr_flags & NDR_SCALARS) {
9472 NDR_CHECK(ndr_pull_align(ndr, 8));
9473 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9475 if (_ptr_driver_name) {
9476 NDR_PULL_ALLOC(ndr, r->driver_name);
9477 } else {
9478 r->driver_name = NULL;
9480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9481 if (_ptr_architecture) {
9482 NDR_PULL_ALLOC(ndr, r->architecture);
9483 } else {
9484 r->architecture = NULL;
9486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9487 if (_ptr_driver_path) {
9488 NDR_PULL_ALLOC(ndr, r->driver_path);
9489 } else {
9490 r->driver_path = NULL;
9492 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9493 if (_ptr_data_file) {
9494 NDR_PULL_ALLOC(ndr, r->data_file);
9495 } else {
9496 r->data_file = NULL;
9498 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9499 if (_ptr_config_file) {
9500 NDR_PULL_ALLOC(ndr, r->config_file);
9501 } else {
9502 r->config_file = NULL;
9504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9505 if (_ptr_help_file) {
9506 NDR_PULL_ALLOC(ndr, r->help_file);
9507 } else {
9508 r->help_file = NULL;
9510 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9511 if (_ptr_monitor_name) {
9512 NDR_PULL_ALLOC(ndr, r->monitor_name);
9513 } else {
9514 r->monitor_name = NULL;
9516 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9517 if (_ptr_default_datatype) {
9518 NDR_PULL_ALLOC(ndr, r->default_datatype);
9519 } else {
9520 r->default_datatype = NULL;
9522 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9523 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9524 if (_ptr_dependent_files) {
9525 NDR_PULL_ALLOC(ndr, r->dependent_files);
9526 } else {
9527 r->dependent_files = NULL;
9529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9530 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9531 if (_ptr_previous_names) {
9532 NDR_PULL_ALLOC(ndr, r->previous_names);
9533 } else {
9534 r->previous_names = NULL;
9536 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9537 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9538 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9539 if (_ptr_manufacturer_name) {
9540 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9541 } else {
9542 r->manufacturer_name = NULL;
9544 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9545 if (_ptr_manufacturer_url) {
9546 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9547 } else {
9548 r->manufacturer_url = NULL;
9550 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9551 if (_ptr_hardware_id) {
9552 NDR_PULL_ALLOC(ndr, r->hardware_id);
9553 } else {
9554 r->hardware_id = NULL;
9556 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9557 if (_ptr_provider) {
9558 NDR_PULL_ALLOC(ndr, r->provider);
9559 } else {
9560 r->provider = NULL;
9562 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9563 if (_ptr_print_processor) {
9564 NDR_PULL_ALLOC(ndr, r->print_processor);
9565 } else {
9566 r->print_processor = NULL;
9568 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9569 if (_ptr_vendor_setup) {
9570 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9571 } else {
9572 r->vendor_setup = NULL;
9574 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9575 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9576 if (_ptr_color_profiles) {
9577 NDR_PULL_ALLOC(ndr, r->color_profiles);
9578 } else {
9579 r->color_profiles = NULL;
9581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9582 if (_ptr_inf_path) {
9583 NDR_PULL_ALLOC(ndr, r->inf_path);
9584 } else {
9585 r->inf_path = NULL;
9587 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9588 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9589 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9590 if (_ptr_core_driver_dependencies) {
9591 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9592 } else {
9593 r->core_driver_dependencies = NULL;
9595 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9596 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9598 if (ndr_flags & NDR_BUFFERS) {
9599 if (r->driver_name) {
9600 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9601 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9602 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9603 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9604 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
9605 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
9606 if (length_driver_name_1 > size_driver_name_1) {
9607 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
9609 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
9610 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
9611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9613 if (r->architecture) {
9614 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9615 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9616 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9617 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9618 size_architecture_1 = ndr_get_array_size(ndr, &r->architecture);
9619 length_architecture_1 = ndr_get_array_length(ndr, &r->architecture);
9620 if (length_architecture_1 > size_architecture_1) {
9621 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
9623 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
9624 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
9625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9627 if (r->driver_path) {
9628 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9629 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9630 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9631 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9632 size_driver_path_1 = ndr_get_array_size(ndr, &r->driver_path);
9633 length_driver_path_1 = ndr_get_array_length(ndr, &r->driver_path);
9634 if (length_driver_path_1 > size_driver_path_1) {
9635 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_path_1, length_driver_path_1);
9637 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
9638 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
9639 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9641 if (r->data_file) {
9642 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9643 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9644 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9645 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9646 size_data_file_1 = ndr_get_array_size(ndr, &r->data_file);
9647 length_data_file_1 = ndr_get_array_length(ndr, &r->data_file);
9648 if (length_data_file_1 > size_data_file_1) {
9649 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_file_1, length_data_file_1);
9651 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
9652 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
9653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9655 if (r->config_file) {
9656 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9657 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9658 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9659 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9660 size_config_file_1 = ndr_get_array_size(ndr, &r->config_file);
9661 length_config_file_1 = ndr_get_array_length(ndr, &r->config_file);
9662 if (length_config_file_1 > size_config_file_1) {
9663 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_config_file_1, length_config_file_1);
9665 NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
9666 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
9667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9669 if (r->help_file) {
9670 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9671 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9672 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9673 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9674 size_help_file_1 = ndr_get_array_size(ndr, &r->help_file);
9675 length_help_file_1 = ndr_get_array_length(ndr, &r->help_file);
9676 if (length_help_file_1 > size_help_file_1) {
9677 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_help_file_1, length_help_file_1);
9679 NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
9680 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
9681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9683 if (r->monitor_name) {
9684 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9685 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9686 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9687 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9688 size_monitor_name_1 = ndr_get_array_size(ndr, &r->monitor_name);
9689 length_monitor_name_1 = ndr_get_array_length(ndr, &r->monitor_name);
9690 if (length_monitor_name_1 > size_monitor_name_1) {
9691 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_1, length_monitor_name_1);
9693 NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
9694 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
9695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9697 if (r->default_datatype) {
9698 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9699 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9700 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9701 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9702 size_default_datatype_1 = ndr_get_array_size(ndr, &r->default_datatype);
9703 length_default_datatype_1 = ndr_get_array_length(ndr, &r->default_datatype);
9704 if (length_default_datatype_1 > size_default_datatype_1) {
9705 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_default_datatype_1, length_default_datatype_1);
9707 NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
9708 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
9709 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9711 if (r->dependent_files) {
9712 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9713 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9714 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9717 if (r->previous_names) {
9718 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9719 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9720 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9721 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9723 if (r->manufacturer_name) {
9724 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9725 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9726 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9727 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9728 size_manufacturer_name_1 = ndr_get_array_size(ndr, &r->manufacturer_name);
9729 length_manufacturer_name_1 = ndr_get_array_length(ndr, &r->manufacturer_name);
9730 if (length_manufacturer_name_1 > size_manufacturer_name_1) {
9731 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_manufacturer_name_1, length_manufacturer_name_1);
9733 NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_name_1, sizeof(uint16_t)));
9734 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, length_manufacturer_name_1, sizeof(uint16_t), CH_UTF16));
9735 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9737 if (r->manufacturer_url) {
9738 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9739 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9740 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9741 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9742 size_manufacturer_url_1 = ndr_get_array_size(ndr, &r->manufacturer_url);
9743 length_manufacturer_url_1 = ndr_get_array_length(ndr, &r->manufacturer_url);
9744 if (length_manufacturer_url_1 > size_manufacturer_url_1) {
9745 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_manufacturer_url_1, length_manufacturer_url_1);
9747 NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_url_1, sizeof(uint16_t)));
9748 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, length_manufacturer_url_1, sizeof(uint16_t), CH_UTF16));
9749 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9751 if (r->hardware_id) {
9752 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9753 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9754 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9755 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9756 size_hardware_id_1 = ndr_get_array_size(ndr, &r->hardware_id);
9757 length_hardware_id_1 = ndr_get_array_length(ndr, &r->hardware_id);
9758 if (length_hardware_id_1 > size_hardware_id_1) {
9759 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_hardware_id_1, length_hardware_id_1);
9761 NDR_CHECK(ndr_check_string_terminator(ndr, length_hardware_id_1, sizeof(uint16_t)));
9762 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, length_hardware_id_1, sizeof(uint16_t), CH_UTF16));
9763 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9765 if (r->provider) {
9766 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9767 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9768 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9769 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9770 size_provider_1 = ndr_get_array_size(ndr, &r->provider);
9771 length_provider_1 = ndr_get_array_length(ndr, &r->provider);
9772 if (length_provider_1 > size_provider_1) {
9773 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_provider_1, length_provider_1);
9775 NDR_CHECK(ndr_check_string_terminator(ndr, length_provider_1, sizeof(uint16_t)));
9776 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, length_provider_1, sizeof(uint16_t), CH_UTF16));
9777 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9779 if (r->print_processor) {
9780 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
9781 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
9782 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
9783 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
9784 size_print_processor_1 = ndr_get_array_size(ndr, &r->print_processor);
9785 length_print_processor_1 = ndr_get_array_length(ndr, &r->print_processor);
9786 if (length_print_processor_1 > size_print_processor_1) {
9787 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_1, length_print_processor_1);
9789 NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_1, sizeof(uint16_t)));
9790 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, length_print_processor_1, sizeof(uint16_t), CH_UTF16));
9791 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
9793 if (r->vendor_setup) {
9794 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
9795 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
9796 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
9797 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
9798 size_vendor_setup_1 = ndr_get_array_size(ndr, &r->vendor_setup);
9799 length_vendor_setup_1 = ndr_get_array_length(ndr, &r->vendor_setup);
9800 if (length_vendor_setup_1 > size_vendor_setup_1) {
9801 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_vendor_setup_1, length_vendor_setup_1);
9803 NDR_CHECK(ndr_check_string_terminator(ndr, length_vendor_setup_1, sizeof(uint16_t)));
9804 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, length_vendor_setup_1, sizeof(uint16_t), CH_UTF16));
9805 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
9807 if (r->color_profiles) {
9808 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
9809 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
9810 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
9813 if (r->inf_path) {
9814 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9815 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
9816 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
9817 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
9818 size_inf_path_1 = ndr_get_array_size(ndr, &r->inf_path);
9819 length_inf_path_1 = ndr_get_array_length(ndr, &r->inf_path);
9820 if (length_inf_path_1 > size_inf_path_1) {
9821 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_inf_path_1, length_inf_path_1);
9823 NDR_CHECK(ndr_check_string_terminator(ndr, length_inf_path_1, sizeof(uint16_t)));
9824 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, length_inf_path_1, sizeof(uint16_t), CH_UTF16));
9825 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
9827 if (r->core_driver_dependencies) {
9828 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
9829 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
9830 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
9834 return NDR_ERR_SUCCESS;
9837 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
9839 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
9840 ndr->depth++;
9841 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9842 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9843 ndr->depth++;
9844 if (r->driver_name) {
9845 ndr_print_string(ndr, "driver_name", r->driver_name);
9847 ndr->depth--;
9848 ndr_print_ptr(ndr, "architecture", r->architecture);
9849 ndr->depth++;
9850 if (r->architecture) {
9851 ndr_print_string(ndr, "architecture", r->architecture);
9853 ndr->depth--;
9854 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9855 ndr->depth++;
9856 if (r->driver_path) {
9857 ndr_print_string(ndr, "driver_path", r->driver_path);
9859 ndr->depth--;
9860 ndr_print_ptr(ndr, "data_file", r->data_file);
9861 ndr->depth++;
9862 if (r->data_file) {
9863 ndr_print_string(ndr, "data_file", r->data_file);
9865 ndr->depth--;
9866 ndr_print_ptr(ndr, "config_file", r->config_file);
9867 ndr->depth++;
9868 if (r->config_file) {
9869 ndr_print_string(ndr, "config_file", r->config_file);
9871 ndr->depth--;
9872 ndr_print_ptr(ndr, "help_file", r->help_file);
9873 ndr->depth++;
9874 if (r->help_file) {
9875 ndr_print_string(ndr, "help_file", r->help_file);
9877 ndr->depth--;
9878 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9879 ndr->depth++;
9880 if (r->monitor_name) {
9881 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9883 ndr->depth--;
9884 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9885 ndr->depth++;
9886 if (r->default_datatype) {
9887 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9889 ndr->depth--;
9890 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);
9891 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9892 ndr->depth++;
9893 if (r->dependent_files) {
9894 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9896 ndr->depth--;
9897 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);
9898 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9899 ndr->depth++;
9900 if (r->previous_names) {
9901 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9903 ndr->depth--;
9904 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9905 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9906 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9907 ndr->depth++;
9908 if (r->manufacturer_name) {
9909 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9911 ndr->depth--;
9912 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9913 ndr->depth++;
9914 if (r->manufacturer_url) {
9915 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9917 ndr->depth--;
9918 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9919 ndr->depth++;
9920 if (r->hardware_id) {
9921 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9923 ndr->depth--;
9924 ndr_print_ptr(ndr, "provider", r->provider);
9925 ndr->depth++;
9926 if (r->provider) {
9927 ndr_print_string(ndr, "provider", r->provider);
9929 ndr->depth--;
9930 ndr_print_ptr(ndr, "print_processor", r->print_processor);
9931 ndr->depth++;
9932 if (r->print_processor) {
9933 ndr_print_string(ndr, "print_processor", r->print_processor);
9935 ndr->depth--;
9936 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
9937 ndr->depth++;
9938 if (r->vendor_setup) {
9939 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
9941 ndr->depth--;
9942 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);
9943 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
9944 ndr->depth++;
9945 if (r->color_profiles) {
9946 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
9948 ndr->depth--;
9949 ndr_print_ptr(ndr, "inf_path", r->inf_path);
9950 ndr->depth++;
9951 if (r->inf_path) {
9952 ndr_print_string(ndr, "inf_path", r->inf_path);
9954 ndr->depth--;
9955 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
9956 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);
9957 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9958 ndr->depth++;
9959 if (r->core_driver_dependencies) {
9960 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9962 ndr->depth--;
9963 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
9964 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
9965 ndr->depth--;
9968 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
9970 if (ndr_flags & NDR_SCALARS) {
9971 int level = ndr_push_get_switch_value(ndr, r);
9972 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9973 switch (level) {
9974 case 1: {
9975 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
9976 break; }
9978 case 2: {
9979 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
9980 break; }
9982 case 3: {
9983 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
9984 break; }
9986 case 4: {
9987 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
9988 break; }
9990 case 6: {
9991 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
9992 break; }
9994 case 8: {
9995 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
9996 break; }
9998 default:
9999 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
10002 if (ndr_flags & NDR_BUFFERS) {
10003 int level = ndr_push_get_switch_value(ndr, r);
10004 switch (level) {
10005 case 1:
10006 if (r->info1) {
10007 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10009 break;
10011 case 2:
10012 if (r->info2) {
10013 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10015 break;
10017 case 3:
10018 if (r->info3) {
10019 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10021 break;
10023 case 4:
10024 if (r->info4) {
10025 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10027 break;
10029 case 6:
10030 if (r->info6) {
10031 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10033 break;
10035 case 8:
10036 if (r->info8) {
10037 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10039 break;
10041 default:
10042 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
10045 return NDR_ERR_SUCCESS;
10048 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
10050 int level;
10051 uint32_t _level;
10052 TALLOC_CTX *_mem_save_info1_0;
10053 uint32_t _ptr_info1;
10054 TALLOC_CTX *_mem_save_info2_0;
10055 uint32_t _ptr_info2;
10056 TALLOC_CTX *_mem_save_info3_0;
10057 uint32_t _ptr_info3;
10058 TALLOC_CTX *_mem_save_info4_0;
10059 uint32_t _ptr_info4;
10060 TALLOC_CTX *_mem_save_info6_0;
10061 uint32_t _ptr_info6;
10062 TALLOC_CTX *_mem_save_info8_0;
10063 uint32_t _ptr_info8;
10064 level = ndr_pull_get_switch_value(ndr, r);
10065 if (ndr_flags & NDR_SCALARS) {
10066 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10067 if (_level != level) {
10068 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
10070 switch (level) {
10071 case 1: {
10072 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
10073 if (_ptr_info1) {
10074 NDR_PULL_ALLOC(ndr, r->info1);
10075 } else {
10076 r->info1 = NULL;
10078 break; }
10080 case 2: {
10081 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
10082 if (_ptr_info2) {
10083 NDR_PULL_ALLOC(ndr, r->info2);
10084 } else {
10085 r->info2 = NULL;
10087 break; }
10089 case 3: {
10090 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
10091 if (_ptr_info3) {
10092 NDR_PULL_ALLOC(ndr, r->info3);
10093 } else {
10094 r->info3 = NULL;
10096 break; }
10098 case 4: {
10099 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
10100 if (_ptr_info4) {
10101 NDR_PULL_ALLOC(ndr, r->info4);
10102 } else {
10103 r->info4 = NULL;
10105 break; }
10107 case 6: {
10108 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
10109 if (_ptr_info6) {
10110 NDR_PULL_ALLOC(ndr, r->info6);
10111 } else {
10112 r->info6 = NULL;
10114 break; }
10116 case 8: {
10117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
10118 if (_ptr_info8) {
10119 NDR_PULL_ALLOC(ndr, r->info8);
10120 } else {
10121 r->info8 = NULL;
10123 break; }
10125 default:
10126 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
10129 if (ndr_flags & NDR_BUFFERS) {
10130 switch (level) {
10131 case 1:
10132 if (r->info1) {
10133 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10134 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
10135 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10136 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
10138 break;
10140 case 2:
10141 if (r->info2) {
10142 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
10143 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
10144 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10145 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
10147 break;
10149 case 3:
10150 if (r->info3) {
10151 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
10152 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
10153 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10154 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
10156 break;
10158 case 4:
10159 if (r->info4) {
10160 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
10161 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
10162 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10163 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
10165 break;
10167 case 6:
10168 if (r->info6) {
10169 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
10170 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
10171 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10172 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
10174 break;
10176 case 8:
10177 if (r->info8) {
10178 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
10179 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
10180 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10181 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
10183 break;
10185 default:
10186 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
10189 return NDR_ERR_SUCCESS;
10192 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
10194 int level;
10195 level = ndr_print_get_switch_value(ndr, r);
10196 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
10197 switch (level) {
10198 case 1:
10199 ndr_print_ptr(ndr, "info1", r->info1);
10200 ndr->depth++;
10201 if (r->info1) {
10202 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
10204 ndr->depth--;
10205 break;
10207 case 2:
10208 ndr_print_ptr(ndr, "info2", r->info2);
10209 ndr->depth++;
10210 if (r->info2) {
10211 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
10213 ndr->depth--;
10214 break;
10216 case 3:
10217 ndr_print_ptr(ndr, "info3", r->info3);
10218 ndr->depth++;
10219 if (r->info3) {
10220 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
10222 ndr->depth--;
10223 break;
10225 case 4:
10226 ndr_print_ptr(ndr, "info4", r->info4);
10227 ndr->depth++;
10228 if (r->info4) {
10229 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
10231 ndr->depth--;
10232 break;
10234 case 6:
10235 ndr_print_ptr(ndr, "info6", r->info6);
10236 ndr->depth++;
10237 if (r->info6) {
10238 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
10240 ndr->depth--;
10241 break;
10243 case 8:
10244 ndr_print_ptr(ndr, "info8", r->info8);
10245 ndr->depth++;
10246 if (r->info8) {
10247 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
10249 ndr->depth--;
10250 break;
10252 default:
10253 ndr_print_bad_level(ndr, name, level);
10257 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
10259 if (ndr_flags & NDR_SCALARS) {
10260 NDR_CHECK(ndr_push_align(ndr, 4));
10261 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
10262 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
10263 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10265 if (ndr_flags & NDR_BUFFERS) {
10266 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10268 return NDR_ERR_SUCCESS;
10271 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
10273 if (ndr_flags & NDR_SCALARS) {
10274 NDR_CHECK(ndr_pull_align(ndr, 4));
10275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
10276 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
10277 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10279 if (ndr_flags & NDR_BUFFERS) {
10280 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10282 return NDR_ERR_SUCCESS;
10285 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
10287 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
10288 ndr->depth++;
10289 ndr_print_uint32(ndr, "level", r->level);
10290 ndr_print_set_switch_value(ndr, &r->info, r->level);
10291 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
10292 ndr->depth--;
10295 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
10297 if (ndr_flags & NDR_SCALARS) {
10298 NDR_CHECK(ndr_push_align(ndr, 4));
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_name));
10303 ndr->flags = _flags_save_string;
10306 if (ndr_flags & NDR_BUFFERS) {
10308 uint32_t _flags_save_string = ndr->flags;
10309 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10310 if (r->driver_name) {
10311 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10312 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10313 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10315 ndr->flags = _flags_save_string;
10318 return NDR_ERR_SUCCESS;
10321 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
10323 uint32_t _ptr_driver_name;
10324 TALLOC_CTX *_mem_save_driver_name_0;
10325 if (ndr_flags & NDR_SCALARS) {
10326 NDR_CHECK(ndr_pull_align(ndr, 4));
10328 uint32_t _flags_save_string = ndr->flags;
10329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10330 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10331 if (_ptr_driver_name) {
10332 NDR_PULL_ALLOC(ndr, r->driver_name);
10333 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10334 } else {
10335 r->driver_name = NULL;
10337 ndr->flags = _flags_save_string;
10340 if (ndr_flags & NDR_BUFFERS) {
10342 uint32_t _flags_save_string = ndr->flags;
10343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10344 if (r->driver_name) {
10345 uint32_t _relative_save_offset;
10346 _relative_save_offset = ndr->offset;
10347 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10348 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10349 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10350 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10352 ndr->offset = _relative_save_offset;
10354 ndr->flags = _flags_save_string;
10357 return NDR_ERR_SUCCESS;
10360 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
10362 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
10363 ndr->depth++;
10364 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10365 ndr->depth++;
10366 if (r->driver_name) {
10367 ndr_print_string(ndr, "driver_name", r->driver_name);
10369 ndr->depth--;
10370 ndr->depth--;
10373 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10375 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
10378 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
10380 if (ndr_flags & NDR_SCALARS) {
10381 NDR_CHECK(ndr_push_align(ndr, 4));
10382 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10384 uint32_t _flags_save_string = ndr->flags;
10385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10386 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10387 ndr->flags = _flags_save_string;
10390 uint32_t _flags_save_string = ndr->flags;
10391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10392 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10393 ndr->flags = _flags_save_string;
10396 uint32_t _flags_save_string = ndr->flags;
10397 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10398 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10399 ndr->flags = _flags_save_string;
10402 uint32_t _flags_save_string = ndr->flags;
10403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10404 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10405 ndr->flags = _flags_save_string;
10408 uint32_t _flags_save_string = ndr->flags;
10409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10410 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10411 ndr->flags = _flags_save_string;
10414 if (ndr_flags & NDR_BUFFERS) {
10416 uint32_t _flags_save_string = ndr->flags;
10417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10418 if (r->driver_name) {
10419 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10420 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10421 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10423 ndr->flags = _flags_save_string;
10426 uint32_t _flags_save_string = ndr->flags;
10427 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10428 if (r->architecture) {
10429 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
10430 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10431 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
10433 ndr->flags = _flags_save_string;
10436 uint32_t _flags_save_string = ndr->flags;
10437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10438 if (r->driver_path) {
10439 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
10440 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10441 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
10443 ndr->flags = _flags_save_string;
10446 uint32_t _flags_save_string = ndr->flags;
10447 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10448 if (r->data_file) {
10449 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
10450 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10451 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
10453 ndr->flags = _flags_save_string;
10456 uint32_t _flags_save_string = ndr->flags;
10457 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10458 if (r->config_file) {
10459 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
10460 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10461 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
10463 ndr->flags = _flags_save_string;
10466 return NDR_ERR_SUCCESS;
10469 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
10471 uint32_t _ptr_driver_name;
10472 TALLOC_CTX *_mem_save_driver_name_0;
10473 uint32_t _ptr_architecture;
10474 TALLOC_CTX *_mem_save_architecture_0;
10475 uint32_t _ptr_driver_path;
10476 TALLOC_CTX *_mem_save_driver_path_0;
10477 uint32_t _ptr_data_file;
10478 TALLOC_CTX *_mem_save_data_file_0;
10479 uint32_t _ptr_config_file;
10480 TALLOC_CTX *_mem_save_config_file_0;
10481 if (ndr_flags & NDR_SCALARS) {
10482 NDR_CHECK(ndr_pull_align(ndr, 4));
10483 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
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_name));
10488 if (_ptr_driver_name) {
10489 NDR_PULL_ALLOC(ndr, r->driver_name);
10490 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10491 } else {
10492 r->driver_name = 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_architecture));
10500 if (_ptr_architecture) {
10501 NDR_PULL_ALLOC(ndr, r->architecture);
10502 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10503 } else {
10504 r->architecture = 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_driver_path));
10512 if (_ptr_driver_path) {
10513 NDR_PULL_ALLOC(ndr, r->driver_path);
10514 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10515 } else {
10516 r->driver_path = 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_data_file));
10524 if (_ptr_data_file) {
10525 NDR_PULL_ALLOC(ndr, r->data_file);
10526 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10527 } else {
10528 r->data_file = NULL;
10530 ndr->flags = _flags_save_string;
10533 uint32_t _flags_save_string = ndr->flags;
10534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10535 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10536 if (_ptr_config_file) {
10537 NDR_PULL_ALLOC(ndr, r->config_file);
10538 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10539 } else {
10540 r->config_file = NULL;
10542 ndr->flags = _flags_save_string;
10545 if (ndr_flags & NDR_BUFFERS) {
10547 uint32_t _flags_save_string = ndr->flags;
10548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10549 if (r->driver_name) {
10550 uint32_t _relative_save_offset;
10551 _relative_save_offset = ndr->offset;
10552 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10553 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10554 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10555 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10557 ndr->offset = _relative_save_offset;
10559 ndr->flags = _flags_save_string;
10562 uint32_t _flags_save_string = ndr->flags;
10563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10564 if (r->architecture) {
10565 uint32_t _relative_save_offset;
10566 _relative_save_offset = ndr->offset;
10567 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10568 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10569 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10570 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10571 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10572 ndr->offset = _relative_save_offset;
10574 ndr->flags = _flags_save_string;
10577 uint32_t _flags_save_string = ndr->flags;
10578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10579 if (r->driver_path) {
10580 uint32_t _relative_save_offset;
10581 _relative_save_offset = ndr->offset;
10582 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10583 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10584 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10585 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10587 ndr->offset = _relative_save_offset;
10589 ndr->flags = _flags_save_string;
10592 uint32_t _flags_save_string = ndr->flags;
10593 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10594 if (r->data_file) {
10595 uint32_t _relative_save_offset;
10596 _relative_save_offset = ndr->offset;
10597 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10598 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10599 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10600 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10602 ndr->offset = _relative_save_offset;
10604 ndr->flags = _flags_save_string;
10607 uint32_t _flags_save_string = ndr->flags;
10608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10609 if (r->config_file) {
10610 uint32_t _relative_save_offset;
10611 _relative_save_offset = ndr->offset;
10612 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10613 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10614 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10615 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10617 ndr->offset = _relative_save_offset;
10619 ndr->flags = _flags_save_string;
10622 return NDR_ERR_SUCCESS;
10625 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10627 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10628 ndr->depth++;
10629 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10630 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10631 ndr->depth++;
10632 if (r->driver_name) {
10633 ndr_print_string(ndr, "driver_name", r->driver_name);
10635 ndr->depth--;
10636 ndr_print_ptr(ndr, "architecture", r->architecture);
10637 ndr->depth++;
10638 if (r->architecture) {
10639 ndr_print_string(ndr, "architecture", r->architecture);
10641 ndr->depth--;
10642 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10643 ndr->depth++;
10644 if (r->driver_path) {
10645 ndr_print_string(ndr, "driver_path", r->driver_path);
10647 ndr->depth--;
10648 ndr_print_ptr(ndr, "data_file", r->data_file);
10649 ndr->depth++;
10650 if (r->data_file) {
10651 ndr_print_string(ndr, "data_file", r->data_file);
10653 ndr->depth--;
10654 ndr_print_ptr(ndr, "config_file", r->config_file);
10655 ndr->depth++;
10656 if (r->config_file) {
10657 ndr_print_string(ndr, "config_file", r->config_file);
10659 ndr->depth--;
10660 ndr->depth--;
10663 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10665 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10668 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10670 if (ndr_flags & NDR_SCALARS) {
10671 NDR_CHECK(ndr_push_align(ndr, 4));
10672 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10674 uint32_t _flags_save_string = ndr->flags;
10675 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10676 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10677 ndr->flags = _flags_save_string;
10680 uint32_t _flags_save_string = ndr->flags;
10681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10682 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10683 ndr->flags = _flags_save_string;
10686 uint32_t _flags_save_string = ndr->flags;
10687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10688 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10689 ndr->flags = _flags_save_string;
10692 uint32_t _flags_save_string = ndr->flags;
10693 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10694 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10695 ndr->flags = _flags_save_string;
10698 uint32_t _flags_save_string = ndr->flags;
10699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10700 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10701 ndr->flags = _flags_save_string;
10704 uint32_t _flags_save_string = ndr->flags;
10705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10706 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10707 ndr->flags = _flags_save_string;
10710 uint32_t _flags_save_string_array = ndr->flags;
10711 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10712 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10713 ndr->flags = _flags_save_string_array;
10716 uint32_t _flags_save_string = ndr->flags;
10717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10718 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10719 ndr->flags = _flags_save_string;
10722 uint32_t _flags_save_string = ndr->flags;
10723 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10724 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10725 ndr->flags = _flags_save_string;
10728 if (ndr_flags & NDR_BUFFERS) {
10730 uint32_t _flags_save_string = ndr->flags;
10731 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10732 if (r->driver_name) {
10733 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10734 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10735 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10737 ndr->flags = _flags_save_string;
10740 uint32_t _flags_save_string = ndr->flags;
10741 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10742 if (r->architecture) {
10743 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
10744 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10745 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
10747 ndr->flags = _flags_save_string;
10750 uint32_t _flags_save_string = ndr->flags;
10751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10752 if (r->driver_path) {
10753 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
10754 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10755 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
10757 ndr->flags = _flags_save_string;
10760 uint32_t _flags_save_string = ndr->flags;
10761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10762 if (r->data_file) {
10763 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
10764 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10765 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
10767 ndr->flags = _flags_save_string;
10770 uint32_t _flags_save_string = ndr->flags;
10771 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10772 if (r->config_file) {
10773 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
10774 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10775 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
10777 ndr->flags = _flags_save_string;
10780 uint32_t _flags_save_string = ndr->flags;
10781 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10782 if (r->help_file) {
10783 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
10784 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10785 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
10787 ndr->flags = _flags_save_string;
10790 uint32_t _flags_save_string_array = ndr->flags;
10791 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10792 if (r->dependent_files) {
10793 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
10794 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10795 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
10797 ndr->flags = _flags_save_string_array;
10800 uint32_t _flags_save_string = ndr->flags;
10801 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10802 if (r->monitor_name) {
10803 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
10804 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10805 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
10807 ndr->flags = _flags_save_string;
10810 uint32_t _flags_save_string = ndr->flags;
10811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10812 if (r->default_datatype) {
10813 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
10814 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10815 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
10817 ndr->flags = _flags_save_string;
10820 return NDR_ERR_SUCCESS;
10823 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
10825 uint32_t _ptr_driver_name;
10826 TALLOC_CTX *_mem_save_driver_name_0;
10827 uint32_t _ptr_architecture;
10828 TALLOC_CTX *_mem_save_architecture_0;
10829 uint32_t _ptr_driver_path;
10830 TALLOC_CTX *_mem_save_driver_path_0;
10831 uint32_t _ptr_data_file;
10832 TALLOC_CTX *_mem_save_data_file_0;
10833 uint32_t _ptr_config_file;
10834 TALLOC_CTX *_mem_save_config_file_0;
10835 uint32_t _ptr_help_file;
10836 TALLOC_CTX *_mem_save_help_file_0;
10837 uint32_t _ptr_dependent_files;
10838 TALLOC_CTX *_mem_save_dependent_files_0;
10839 uint32_t _ptr_monitor_name;
10840 TALLOC_CTX *_mem_save_monitor_name_0;
10841 uint32_t _ptr_default_datatype;
10842 TALLOC_CTX *_mem_save_default_datatype_0;
10843 if (ndr_flags & NDR_SCALARS) {
10844 NDR_CHECK(ndr_pull_align(ndr, 4));
10845 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10847 uint32_t _flags_save_string = ndr->flags;
10848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10850 if (_ptr_driver_name) {
10851 NDR_PULL_ALLOC(ndr, r->driver_name);
10852 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10853 } else {
10854 r->driver_name = NULL;
10856 ndr->flags = _flags_save_string;
10859 uint32_t _flags_save_string = ndr->flags;
10860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10862 if (_ptr_architecture) {
10863 NDR_PULL_ALLOC(ndr, r->architecture);
10864 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10865 } else {
10866 r->architecture = NULL;
10868 ndr->flags = _flags_save_string;
10871 uint32_t _flags_save_string = ndr->flags;
10872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10874 if (_ptr_driver_path) {
10875 NDR_PULL_ALLOC(ndr, r->driver_path);
10876 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10877 } else {
10878 r->driver_path = NULL;
10880 ndr->flags = _flags_save_string;
10883 uint32_t _flags_save_string = ndr->flags;
10884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10885 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10886 if (_ptr_data_file) {
10887 NDR_PULL_ALLOC(ndr, r->data_file);
10888 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10889 } else {
10890 r->data_file = NULL;
10892 ndr->flags = _flags_save_string;
10895 uint32_t _flags_save_string = ndr->flags;
10896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10897 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10898 if (_ptr_config_file) {
10899 NDR_PULL_ALLOC(ndr, r->config_file);
10900 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10901 } else {
10902 r->config_file = NULL;
10904 ndr->flags = _flags_save_string;
10907 uint32_t _flags_save_string = ndr->flags;
10908 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10909 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10910 if (_ptr_help_file) {
10911 NDR_PULL_ALLOC(ndr, r->help_file);
10912 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10913 } else {
10914 r->help_file = NULL;
10916 ndr->flags = _flags_save_string;
10919 uint32_t _flags_save_string_array = ndr->flags;
10920 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10921 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10922 if (_ptr_dependent_files) {
10923 NDR_PULL_ALLOC(ndr, r->dependent_files);
10924 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10925 } else {
10926 r->dependent_files = NULL;
10928 ndr->flags = _flags_save_string_array;
10931 uint32_t _flags_save_string = ndr->flags;
10932 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10934 if (_ptr_monitor_name) {
10935 NDR_PULL_ALLOC(ndr, r->monitor_name);
10936 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10937 } else {
10938 r->monitor_name = NULL;
10940 ndr->flags = _flags_save_string;
10943 uint32_t _flags_save_string = ndr->flags;
10944 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10945 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10946 if (_ptr_default_datatype) {
10947 NDR_PULL_ALLOC(ndr, r->default_datatype);
10948 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10949 } else {
10950 r->default_datatype = NULL;
10952 ndr->flags = _flags_save_string;
10955 if (ndr_flags & NDR_BUFFERS) {
10957 uint32_t _flags_save_string = ndr->flags;
10958 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10959 if (r->driver_name) {
10960 uint32_t _relative_save_offset;
10961 _relative_save_offset = ndr->offset;
10962 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10963 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10964 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10965 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10967 ndr->offset = _relative_save_offset;
10969 ndr->flags = _flags_save_string;
10972 uint32_t _flags_save_string = ndr->flags;
10973 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10974 if (r->architecture) {
10975 uint32_t _relative_save_offset;
10976 _relative_save_offset = ndr->offset;
10977 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10978 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10979 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10980 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10982 ndr->offset = _relative_save_offset;
10984 ndr->flags = _flags_save_string;
10987 uint32_t _flags_save_string = ndr->flags;
10988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10989 if (r->driver_path) {
10990 uint32_t _relative_save_offset;
10991 _relative_save_offset = ndr->offset;
10992 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10993 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10994 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10995 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10997 ndr->offset = _relative_save_offset;
10999 ndr->flags = _flags_save_string;
11002 uint32_t _flags_save_string = ndr->flags;
11003 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11004 if (r->data_file) {
11005 uint32_t _relative_save_offset;
11006 _relative_save_offset = ndr->offset;
11007 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11008 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11009 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11010 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11012 ndr->offset = _relative_save_offset;
11014 ndr->flags = _flags_save_string;
11017 uint32_t _flags_save_string = ndr->flags;
11018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11019 if (r->config_file) {
11020 uint32_t _relative_save_offset;
11021 _relative_save_offset = ndr->offset;
11022 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11023 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11024 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11025 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11027 ndr->offset = _relative_save_offset;
11029 ndr->flags = _flags_save_string;
11032 uint32_t _flags_save_string = ndr->flags;
11033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11034 if (r->help_file) {
11035 uint32_t _relative_save_offset;
11036 _relative_save_offset = ndr->offset;
11037 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11038 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11039 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11040 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11042 ndr->offset = _relative_save_offset;
11044 ndr->flags = _flags_save_string;
11047 uint32_t _flags_save_string_array = ndr->flags;
11048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11049 if (r->dependent_files) {
11050 uint32_t _relative_save_offset;
11051 _relative_save_offset = ndr->offset;
11052 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11053 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11054 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11055 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11056 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11057 ndr->offset = _relative_save_offset;
11059 ndr->flags = _flags_save_string_array;
11062 uint32_t _flags_save_string = ndr->flags;
11063 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11064 if (r->monitor_name) {
11065 uint32_t _relative_save_offset;
11066 _relative_save_offset = ndr->offset;
11067 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11068 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11069 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11070 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11072 ndr->offset = _relative_save_offset;
11074 ndr->flags = _flags_save_string;
11077 uint32_t _flags_save_string = ndr->flags;
11078 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11079 if (r->default_datatype) {
11080 uint32_t _relative_save_offset;
11081 _relative_save_offset = ndr->offset;
11082 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11083 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11084 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11085 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11087 ndr->offset = _relative_save_offset;
11089 ndr->flags = _flags_save_string;
11092 return NDR_ERR_SUCCESS;
11095 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
11097 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
11098 ndr->depth++;
11099 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11100 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11101 ndr->depth++;
11102 if (r->driver_name) {
11103 ndr_print_string(ndr, "driver_name", r->driver_name);
11105 ndr->depth--;
11106 ndr_print_ptr(ndr, "architecture", r->architecture);
11107 ndr->depth++;
11108 if (r->architecture) {
11109 ndr_print_string(ndr, "architecture", r->architecture);
11111 ndr->depth--;
11112 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11113 ndr->depth++;
11114 if (r->driver_path) {
11115 ndr_print_string(ndr, "driver_path", r->driver_path);
11117 ndr->depth--;
11118 ndr_print_ptr(ndr, "data_file", r->data_file);
11119 ndr->depth++;
11120 if (r->data_file) {
11121 ndr_print_string(ndr, "data_file", r->data_file);
11123 ndr->depth--;
11124 ndr_print_ptr(ndr, "config_file", r->config_file);
11125 ndr->depth++;
11126 if (r->config_file) {
11127 ndr_print_string(ndr, "config_file", r->config_file);
11129 ndr->depth--;
11130 ndr_print_ptr(ndr, "help_file", r->help_file);
11131 ndr->depth++;
11132 if (r->help_file) {
11133 ndr_print_string(ndr, "help_file", r->help_file);
11135 ndr->depth--;
11136 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11137 ndr->depth++;
11138 if (r->dependent_files) {
11139 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11141 ndr->depth--;
11142 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11143 ndr->depth++;
11144 if (r->monitor_name) {
11145 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11147 ndr->depth--;
11148 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11149 ndr->depth++;
11150 if (r->default_datatype) {
11151 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11153 ndr->depth--;
11154 ndr->depth--;
11157 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
11159 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
11162 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
11164 if (ndr_flags & NDR_SCALARS) {
11165 NDR_CHECK(ndr_push_align(ndr, 4));
11166 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11168 uint32_t _flags_save_string = ndr->flags;
11169 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11170 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11171 ndr->flags = _flags_save_string;
11174 uint32_t _flags_save_string = ndr->flags;
11175 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11176 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11177 ndr->flags = _flags_save_string;
11180 uint32_t _flags_save_string = ndr->flags;
11181 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11182 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11183 ndr->flags = _flags_save_string;
11186 uint32_t _flags_save_string = ndr->flags;
11187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11188 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11189 ndr->flags = _flags_save_string;
11192 uint32_t _flags_save_string = ndr->flags;
11193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11194 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11195 ndr->flags = _flags_save_string;
11198 uint32_t _flags_save_string = ndr->flags;
11199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11200 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11201 ndr->flags = _flags_save_string;
11204 uint32_t _flags_save_string_array = ndr->flags;
11205 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11206 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11207 ndr->flags = _flags_save_string_array;
11210 uint32_t _flags_save_string = ndr->flags;
11211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11212 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11213 ndr->flags = _flags_save_string;
11216 uint32_t _flags_save_string = ndr->flags;
11217 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11218 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11219 ndr->flags = _flags_save_string;
11222 uint32_t _flags_save_string_array = ndr->flags;
11223 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11224 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11225 ndr->flags = _flags_save_string_array;
11228 if (ndr_flags & NDR_BUFFERS) {
11230 uint32_t _flags_save_string = ndr->flags;
11231 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11232 if (r->driver_name) {
11233 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11234 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11235 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11237 ndr->flags = _flags_save_string;
11240 uint32_t _flags_save_string = ndr->flags;
11241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11242 if (r->architecture) {
11243 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11244 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11245 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11247 ndr->flags = _flags_save_string;
11250 uint32_t _flags_save_string = ndr->flags;
11251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11252 if (r->driver_path) {
11253 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11254 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11255 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11257 ndr->flags = _flags_save_string;
11260 uint32_t _flags_save_string = ndr->flags;
11261 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11262 if (r->data_file) {
11263 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11264 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11265 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11267 ndr->flags = _flags_save_string;
11270 uint32_t _flags_save_string = ndr->flags;
11271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11272 if (r->config_file) {
11273 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11274 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11275 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11277 ndr->flags = _flags_save_string;
11280 uint32_t _flags_save_string = ndr->flags;
11281 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11282 if (r->help_file) {
11283 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
11284 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11285 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
11287 ndr->flags = _flags_save_string;
11290 uint32_t _flags_save_string_array = ndr->flags;
11291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11292 if (r->dependent_files) {
11293 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
11294 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11295 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
11297 ndr->flags = _flags_save_string_array;
11300 uint32_t _flags_save_string = ndr->flags;
11301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11302 if (r->monitor_name) {
11303 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
11304 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11305 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
11307 ndr->flags = _flags_save_string;
11310 uint32_t _flags_save_string = ndr->flags;
11311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11312 if (r->default_datatype) {
11313 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
11314 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11315 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
11317 ndr->flags = _flags_save_string;
11320 uint32_t _flags_save_string_array = ndr->flags;
11321 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11322 if (r->previous_names) {
11323 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
11324 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11325 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
11327 ndr->flags = _flags_save_string_array;
11330 return NDR_ERR_SUCCESS;
11333 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
11335 uint32_t _ptr_driver_name;
11336 TALLOC_CTX *_mem_save_driver_name_0;
11337 uint32_t _ptr_architecture;
11338 TALLOC_CTX *_mem_save_architecture_0;
11339 uint32_t _ptr_driver_path;
11340 TALLOC_CTX *_mem_save_driver_path_0;
11341 uint32_t _ptr_data_file;
11342 TALLOC_CTX *_mem_save_data_file_0;
11343 uint32_t _ptr_config_file;
11344 TALLOC_CTX *_mem_save_config_file_0;
11345 uint32_t _ptr_help_file;
11346 TALLOC_CTX *_mem_save_help_file_0;
11347 uint32_t _ptr_dependent_files;
11348 TALLOC_CTX *_mem_save_dependent_files_0;
11349 uint32_t _ptr_monitor_name;
11350 TALLOC_CTX *_mem_save_monitor_name_0;
11351 uint32_t _ptr_default_datatype;
11352 TALLOC_CTX *_mem_save_default_datatype_0;
11353 uint32_t _ptr_previous_names;
11354 TALLOC_CTX *_mem_save_previous_names_0;
11355 if (ndr_flags & NDR_SCALARS) {
11356 NDR_CHECK(ndr_pull_align(ndr, 4));
11357 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11359 uint32_t _flags_save_string = ndr->flags;
11360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11361 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11362 if (_ptr_driver_name) {
11363 NDR_PULL_ALLOC(ndr, r->driver_name);
11364 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11365 } else {
11366 r->driver_name = NULL;
11368 ndr->flags = _flags_save_string;
11371 uint32_t _flags_save_string = ndr->flags;
11372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11373 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11374 if (_ptr_architecture) {
11375 NDR_PULL_ALLOC(ndr, r->architecture);
11376 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11377 } else {
11378 r->architecture = NULL;
11380 ndr->flags = _flags_save_string;
11383 uint32_t _flags_save_string = ndr->flags;
11384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11386 if (_ptr_driver_path) {
11387 NDR_PULL_ALLOC(ndr, r->driver_path);
11388 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11389 } else {
11390 r->driver_path = NULL;
11392 ndr->flags = _flags_save_string;
11395 uint32_t _flags_save_string = ndr->flags;
11396 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11397 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11398 if (_ptr_data_file) {
11399 NDR_PULL_ALLOC(ndr, r->data_file);
11400 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11401 } else {
11402 r->data_file = NULL;
11404 ndr->flags = _flags_save_string;
11407 uint32_t _flags_save_string = ndr->flags;
11408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11409 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11410 if (_ptr_config_file) {
11411 NDR_PULL_ALLOC(ndr, r->config_file);
11412 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11413 } else {
11414 r->config_file = NULL;
11416 ndr->flags = _flags_save_string;
11419 uint32_t _flags_save_string = ndr->flags;
11420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11421 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11422 if (_ptr_help_file) {
11423 NDR_PULL_ALLOC(ndr, r->help_file);
11424 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11425 } else {
11426 r->help_file = NULL;
11428 ndr->flags = _flags_save_string;
11431 uint32_t _flags_save_string_array = ndr->flags;
11432 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11434 if (_ptr_dependent_files) {
11435 NDR_PULL_ALLOC(ndr, r->dependent_files);
11436 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11437 } else {
11438 r->dependent_files = NULL;
11440 ndr->flags = _flags_save_string_array;
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_monitor_name));
11446 if (_ptr_monitor_name) {
11447 NDR_PULL_ALLOC(ndr, r->monitor_name);
11448 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11449 } else {
11450 r->monitor_name = 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_default_datatype));
11458 if (_ptr_default_datatype) {
11459 NDR_PULL_ALLOC(ndr, r->default_datatype);
11460 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11461 } else {
11462 r->default_datatype = NULL;
11464 ndr->flags = _flags_save_string;
11467 uint32_t _flags_save_string_array = ndr->flags;
11468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11469 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11470 if (_ptr_previous_names) {
11471 NDR_PULL_ALLOC(ndr, r->previous_names);
11472 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11473 } else {
11474 r->previous_names = NULL;
11476 ndr->flags = _flags_save_string_array;
11479 if (ndr_flags & NDR_BUFFERS) {
11481 uint32_t _flags_save_string = ndr->flags;
11482 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11483 if (r->driver_name) {
11484 uint32_t _relative_save_offset;
11485 _relative_save_offset = ndr->offset;
11486 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11487 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11488 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11489 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11491 ndr->offset = _relative_save_offset;
11493 ndr->flags = _flags_save_string;
11496 uint32_t _flags_save_string = ndr->flags;
11497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11498 if (r->architecture) {
11499 uint32_t _relative_save_offset;
11500 _relative_save_offset = ndr->offset;
11501 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11502 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11503 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11504 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11505 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_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->driver_path) {
11514 uint32_t _relative_save_offset;
11515 _relative_save_offset = ndr->offset;
11516 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11517 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11518 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11519 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_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->data_file) {
11529 uint32_t _relative_save_offset;
11530 _relative_save_offset = ndr->offset;
11531 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11532 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11533 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11534 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_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->config_file) {
11544 uint32_t _relative_save_offset;
11545 _relative_save_offset = ndr->offset;
11546 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11547 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11548 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11549 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_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->help_file) {
11559 uint32_t _relative_save_offset;
11560 _relative_save_offset = ndr->offset;
11561 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11562 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11563 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11564 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11566 ndr->offset = _relative_save_offset;
11568 ndr->flags = _flags_save_string;
11571 uint32_t _flags_save_string_array = ndr->flags;
11572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11573 if (r->dependent_files) {
11574 uint32_t _relative_save_offset;
11575 _relative_save_offset = ndr->offset;
11576 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11577 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11578 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11579 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11580 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11581 ndr->offset = _relative_save_offset;
11583 ndr->flags = _flags_save_string_array;
11586 uint32_t _flags_save_string = ndr->flags;
11587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11588 if (r->monitor_name) {
11589 uint32_t _relative_save_offset;
11590 _relative_save_offset = ndr->offset;
11591 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11592 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11593 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11594 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11596 ndr->offset = _relative_save_offset;
11598 ndr->flags = _flags_save_string;
11601 uint32_t _flags_save_string = ndr->flags;
11602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11603 if (r->default_datatype) {
11604 uint32_t _relative_save_offset;
11605 _relative_save_offset = ndr->offset;
11606 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11607 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11608 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11609 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11611 ndr->offset = _relative_save_offset;
11613 ndr->flags = _flags_save_string;
11616 uint32_t _flags_save_string_array = ndr->flags;
11617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11618 if (r->previous_names) {
11619 uint32_t _relative_save_offset;
11620 _relative_save_offset = ndr->offset;
11621 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11622 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11623 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11624 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11626 ndr->offset = _relative_save_offset;
11628 ndr->flags = _flags_save_string_array;
11631 return NDR_ERR_SUCCESS;
11634 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11636 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11637 ndr->depth++;
11638 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11639 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11640 ndr->depth++;
11641 if (r->driver_name) {
11642 ndr_print_string(ndr, "driver_name", r->driver_name);
11644 ndr->depth--;
11645 ndr_print_ptr(ndr, "architecture", r->architecture);
11646 ndr->depth++;
11647 if (r->architecture) {
11648 ndr_print_string(ndr, "architecture", r->architecture);
11650 ndr->depth--;
11651 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11652 ndr->depth++;
11653 if (r->driver_path) {
11654 ndr_print_string(ndr, "driver_path", r->driver_path);
11656 ndr->depth--;
11657 ndr_print_ptr(ndr, "data_file", r->data_file);
11658 ndr->depth++;
11659 if (r->data_file) {
11660 ndr_print_string(ndr, "data_file", r->data_file);
11662 ndr->depth--;
11663 ndr_print_ptr(ndr, "config_file", r->config_file);
11664 ndr->depth++;
11665 if (r->config_file) {
11666 ndr_print_string(ndr, "config_file", r->config_file);
11668 ndr->depth--;
11669 ndr_print_ptr(ndr, "help_file", r->help_file);
11670 ndr->depth++;
11671 if (r->help_file) {
11672 ndr_print_string(ndr, "help_file", r->help_file);
11674 ndr->depth--;
11675 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11676 ndr->depth++;
11677 if (r->dependent_files) {
11678 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11680 ndr->depth--;
11681 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11682 ndr->depth++;
11683 if (r->monitor_name) {
11684 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11686 ndr->depth--;
11687 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11688 ndr->depth++;
11689 if (r->default_datatype) {
11690 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11692 ndr->depth--;
11693 ndr_print_ptr(ndr, "previous_names", r->previous_names);
11694 ndr->depth++;
11695 if (r->previous_names) {
11696 ndr_print_string_array(ndr, "previous_names", r->previous_names);
11698 ndr->depth--;
11699 ndr->depth--;
11702 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
11704 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
11707 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
11709 if (ndr_flags & NDR_SCALARS) {
11710 NDR_CHECK(ndr_push_align(ndr, 4));
11711 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11713 uint32_t _flags_save_string = ndr->flags;
11714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11715 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11716 ndr->flags = _flags_save_string;
11719 uint32_t _flags_save_string = ndr->flags;
11720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11721 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11722 ndr->flags = _flags_save_string;
11725 uint32_t _flags_save_string = ndr->flags;
11726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11727 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11728 ndr->flags = _flags_save_string;
11731 uint32_t _flags_save_string = ndr->flags;
11732 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11733 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11734 ndr->flags = _flags_save_string;
11737 uint32_t _flags_save_string = ndr->flags;
11738 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11739 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11740 ndr->flags = _flags_save_string;
11742 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
11743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
11744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
11746 if (ndr_flags & NDR_BUFFERS) {
11748 uint32_t _flags_save_string = ndr->flags;
11749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11750 if (r->driver_name) {
11751 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11752 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11753 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11755 ndr->flags = _flags_save_string;
11758 uint32_t _flags_save_string = ndr->flags;
11759 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11760 if (r->architecture) {
11761 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11762 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11763 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11765 ndr->flags = _flags_save_string;
11768 uint32_t _flags_save_string = ndr->flags;
11769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11770 if (r->driver_path) {
11771 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11772 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11773 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11775 ndr->flags = _flags_save_string;
11778 uint32_t _flags_save_string = ndr->flags;
11779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11780 if (r->data_file) {
11781 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11782 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11783 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11785 ndr->flags = _flags_save_string;
11788 uint32_t _flags_save_string = ndr->flags;
11789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11790 if (r->config_file) {
11791 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11792 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11793 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11795 ndr->flags = _flags_save_string;
11798 return NDR_ERR_SUCCESS;
11801 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
11803 uint32_t _ptr_driver_name;
11804 TALLOC_CTX *_mem_save_driver_name_0;
11805 uint32_t _ptr_architecture;
11806 TALLOC_CTX *_mem_save_architecture_0;
11807 uint32_t _ptr_driver_path;
11808 TALLOC_CTX *_mem_save_driver_path_0;
11809 uint32_t _ptr_data_file;
11810 TALLOC_CTX *_mem_save_data_file_0;
11811 uint32_t _ptr_config_file;
11812 TALLOC_CTX *_mem_save_config_file_0;
11813 if (ndr_flags & NDR_SCALARS) {
11814 NDR_CHECK(ndr_pull_align(ndr, 4));
11815 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11817 uint32_t _flags_save_string = ndr->flags;
11818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11820 if (_ptr_driver_name) {
11821 NDR_PULL_ALLOC(ndr, r->driver_name);
11822 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11823 } else {
11824 r->driver_name = NULL;
11826 ndr->flags = _flags_save_string;
11829 uint32_t _flags_save_string = ndr->flags;
11830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11832 if (_ptr_architecture) {
11833 NDR_PULL_ALLOC(ndr, r->architecture);
11834 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11835 } else {
11836 r->architecture = NULL;
11838 ndr->flags = _flags_save_string;
11841 uint32_t _flags_save_string = ndr->flags;
11842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11844 if (_ptr_driver_path) {
11845 NDR_PULL_ALLOC(ndr, r->driver_path);
11846 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11847 } else {
11848 r->driver_path = NULL;
11850 ndr->flags = _flags_save_string;
11853 uint32_t _flags_save_string = ndr->flags;
11854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11856 if (_ptr_data_file) {
11857 NDR_PULL_ALLOC(ndr, r->data_file);
11858 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11859 } else {
11860 r->data_file = NULL;
11862 ndr->flags = _flags_save_string;
11865 uint32_t _flags_save_string = ndr->flags;
11866 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11867 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11868 if (_ptr_config_file) {
11869 NDR_PULL_ALLOC(ndr, r->config_file);
11870 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11871 } else {
11872 r->config_file = NULL;
11874 ndr->flags = _flags_save_string;
11876 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
11877 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
11878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
11880 if (ndr_flags & NDR_BUFFERS) {
11882 uint32_t _flags_save_string = ndr->flags;
11883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11884 if (r->driver_name) {
11885 uint32_t _relative_save_offset;
11886 _relative_save_offset = ndr->offset;
11887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11888 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11889 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11892 ndr->offset = _relative_save_offset;
11894 ndr->flags = _flags_save_string;
11897 uint32_t _flags_save_string = ndr->flags;
11898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11899 if (r->architecture) {
11900 uint32_t _relative_save_offset;
11901 _relative_save_offset = ndr->offset;
11902 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11903 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11904 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11905 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11907 ndr->offset = _relative_save_offset;
11909 ndr->flags = _flags_save_string;
11912 uint32_t _flags_save_string = ndr->flags;
11913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11914 if (r->driver_path) {
11915 uint32_t _relative_save_offset;
11916 _relative_save_offset = ndr->offset;
11917 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11918 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11919 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11920 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11922 ndr->offset = _relative_save_offset;
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 if (r->data_file) {
11930 uint32_t _relative_save_offset;
11931 _relative_save_offset = ndr->offset;
11932 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11933 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11934 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11935 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11937 ndr->offset = _relative_save_offset;
11939 ndr->flags = _flags_save_string;
11942 uint32_t _flags_save_string = ndr->flags;
11943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11944 if (r->config_file) {
11945 uint32_t _relative_save_offset;
11946 _relative_save_offset = ndr->offset;
11947 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11948 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11949 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11950 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11952 ndr->offset = _relative_save_offset;
11954 ndr->flags = _flags_save_string;
11957 return NDR_ERR_SUCCESS;
11960 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
11962 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
11963 ndr->depth++;
11964 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11965 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11966 ndr->depth++;
11967 if (r->driver_name) {
11968 ndr_print_string(ndr, "driver_name", r->driver_name);
11970 ndr->depth--;
11971 ndr_print_ptr(ndr, "architecture", r->architecture);
11972 ndr->depth++;
11973 if (r->architecture) {
11974 ndr_print_string(ndr, "architecture", r->architecture);
11976 ndr->depth--;
11977 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11978 ndr->depth++;
11979 if (r->driver_path) {
11980 ndr_print_string(ndr, "driver_path", r->driver_path);
11982 ndr->depth--;
11983 ndr_print_ptr(ndr, "data_file", r->data_file);
11984 ndr->depth++;
11985 if (r->data_file) {
11986 ndr_print_string(ndr, "data_file", r->data_file);
11988 ndr->depth--;
11989 ndr_print_ptr(ndr, "config_file", r->config_file);
11990 ndr->depth++;
11991 if (r->config_file) {
11992 ndr_print_string(ndr, "config_file", r->config_file);
11994 ndr->depth--;
11995 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
11996 ndr_print_uint32(ndr, "config_version", r->config_version);
11997 ndr_print_uint32(ndr, "driver_version", r->driver_version);
11998 ndr->depth--;
12001 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
12003 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
12006 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
12008 if (ndr_flags & NDR_SCALARS) {
12009 NDR_CHECK(ndr_push_align(ndr, 8));
12010 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12012 uint32_t _flags_save_string = ndr->flags;
12013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12014 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12015 ndr->flags = _flags_save_string;
12018 uint32_t _flags_save_string = ndr->flags;
12019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12020 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12021 ndr->flags = _flags_save_string;
12024 uint32_t _flags_save_string = ndr->flags;
12025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12026 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12027 ndr->flags = _flags_save_string;
12030 uint32_t _flags_save_string = ndr->flags;
12031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12032 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12033 ndr->flags = _flags_save_string;
12036 uint32_t _flags_save_string = ndr->flags;
12037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12038 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12039 ndr->flags = _flags_save_string;
12042 uint32_t _flags_save_string = ndr->flags;
12043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12044 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12045 ndr->flags = _flags_save_string;
12048 uint32_t _flags_save_string_array = ndr->flags;
12049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12050 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12051 ndr->flags = _flags_save_string_array;
12054 uint32_t _flags_save_string = ndr->flags;
12055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12056 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12057 ndr->flags = _flags_save_string;
12060 uint32_t _flags_save_string = ndr->flags;
12061 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12062 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12063 ndr->flags = _flags_save_string;
12066 uint32_t _flags_save_string_array = ndr->flags;
12067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12068 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12069 ndr->flags = _flags_save_string_array;
12071 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12072 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12074 uint32_t _flags_save_string = ndr->flags;
12075 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12076 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12077 ndr->flags = _flags_save_string;
12080 uint32_t _flags_save_string = ndr->flags;
12081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12082 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12083 ndr->flags = _flags_save_string;
12086 uint32_t _flags_save_string = ndr->flags;
12087 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12088 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12089 ndr->flags = _flags_save_string;
12092 uint32_t _flags_save_string = ndr->flags;
12093 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12094 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12095 ndr->flags = _flags_save_string;
12098 if (ndr_flags & NDR_BUFFERS) {
12100 uint32_t _flags_save_string = ndr->flags;
12101 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12102 if (r->driver_name) {
12103 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12104 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12105 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12107 ndr->flags = _flags_save_string;
12110 uint32_t _flags_save_string = ndr->flags;
12111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12112 if (r->architecture) {
12113 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12114 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12115 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12117 ndr->flags = _flags_save_string;
12120 uint32_t _flags_save_string = ndr->flags;
12121 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12122 if (r->driver_path) {
12123 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12124 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12125 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
12127 ndr->flags = _flags_save_string;
12130 uint32_t _flags_save_string = ndr->flags;
12131 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12132 if (r->data_file) {
12133 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12134 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12135 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12137 ndr->flags = _flags_save_string;
12140 uint32_t _flags_save_string = ndr->flags;
12141 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12142 if (r->config_file) {
12143 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12144 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12145 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12147 ndr->flags = _flags_save_string;
12150 uint32_t _flags_save_string = ndr->flags;
12151 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12152 if (r->help_file) {
12153 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
12154 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12155 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
12157 ndr->flags = _flags_save_string;
12160 uint32_t _flags_save_string_array = ndr->flags;
12161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12162 if (r->dependent_files) {
12163 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
12164 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12165 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
12167 ndr->flags = _flags_save_string_array;
12170 uint32_t _flags_save_string = ndr->flags;
12171 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12172 if (r->monitor_name) {
12173 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
12174 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12175 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
12177 ndr->flags = _flags_save_string;
12180 uint32_t _flags_save_string = ndr->flags;
12181 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12182 if (r->default_datatype) {
12183 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
12184 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12185 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
12187 ndr->flags = _flags_save_string;
12190 uint32_t _flags_save_string_array = ndr->flags;
12191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12192 if (r->previous_names) {
12193 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
12194 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12195 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
12197 ndr->flags = _flags_save_string_array;
12200 uint32_t _flags_save_string = ndr->flags;
12201 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12202 if (r->manufacturer_name) {
12203 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
12204 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12205 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
12207 ndr->flags = _flags_save_string;
12210 uint32_t _flags_save_string = ndr->flags;
12211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12212 if (r->manufacturer_url) {
12213 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
12214 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12215 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
12217 ndr->flags = _flags_save_string;
12220 uint32_t _flags_save_string = ndr->flags;
12221 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12222 if (r->hardware_id) {
12223 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
12224 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12225 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
12227 ndr->flags = _flags_save_string;
12230 uint32_t _flags_save_string = ndr->flags;
12231 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12232 if (r->provider) {
12233 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
12234 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12235 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
12237 ndr->flags = _flags_save_string;
12240 return NDR_ERR_SUCCESS;
12243 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
12245 uint32_t _ptr_driver_name;
12246 TALLOC_CTX *_mem_save_driver_name_0;
12247 uint32_t _ptr_architecture;
12248 TALLOC_CTX *_mem_save_architecture_0;
12249 uint32_t _ptr_driver_path;
12250 TALLOC_CTX *_mem_save_driver_path_0;
12251 uint32_t _ptr_data_file;
12252 TALLOC_CTX *_mem_save_data_file_0;
12253 uint32_t _ptr_config_file;
12254 TALLOC_CTX *_mem_save_config_file_0;
12255 uint32_t _ptr_help_file;
12256 TALLOC_CTX *_mem_save_help_file_0;
12257 uint32_t _ptr_dependent_files;
12258 TALLOC_CTX *_mem_save_dependent_files_0;
12259 uint32_t _ptr_monitor_name;
12260 TALLOC_CTX *_mem_save_monitor_name_0;
12261 uint32_t _ptr_default_datatype;
12262 TALLOC_CTX *_mem_save_default_datatype_0;
12263 uint32_t _ptr_previous_names;
12264 TALLOC_CTX *_mem_save_previous_names_0;
12265 uint32_t _ptr_manufacturer_name;
12266 TALLOC_CTX *_mem_save_manufacturer_name_0;
12267 uint32_t _ptr_manufacturer_url;
12268 TALLOC_CTX *_mem_save_manufacturer_url_0;
12269 uint32_t _ptr_hardware_id;
12270 TALLOC_CTX *_mem_save_hardware_id_0;
12271 uint32_t _ptr_provider;
12272 TALLOC_CTX *_mem_save_provider_0;
12273 if (ndr_flags & NDR_SCALARS) {
12274 NDR_CHECK(ndr_pull_align(ndr, 8));
12275 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12277 uint32_t _flags_save_string = ndr->flags;
12278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12279 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12280 if (_ptr_driver_name) {
12281 NDR_PULL_ALLOC(ndr, r->driver_name);
12282 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12283 } else {
12284 r->driver_name = NULL;
12286 ndr->flags = _flags_save_string;
12289 uint32_t _flags_save_string = ndr->flags;
12290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12291 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12292 if (_ptr_architecture) {
12293 NDR_PULL_ALLOC(ndr, r->architecture);
12294 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12295 } else {
12296 r->architecture = NULL;
12298 ndr->flags = _flags_save_string;
12301 uint32_t _flags_save_string = ndr->flags;
12302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12303 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12304 if (_ptr_driver_path) {
12305 NDR_PULL_ALLOC(ndr, r->driver_path);
12306 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12307 } else {
12308 r->driver_path = NULL;
12310 ndr->flags = _flags_save_string;
12313 uint32_t _flags_save_string = ndr->flags;
12314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12316 if (_ptr_data_file) {
12317 NDR_PULL_ALLOC(ndr, r->data_file);
12318 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12319 } else {
12320 r->data_file = NULL;
12322 ndr->flags = _flags_save_string;
12325 uint32_t _flags_save_string = ndr->flags;
12326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12327 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12328 if (_ptr_config_file) {
12329 NDR_PULL_ALLOC(ndr, r->config_file);
12330 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12331 } else {
12332 r->config_file = NULL;
12334 ndr->flags = _flags_save_string;
12337 uint32_t _flags_save_string = ndr->flags;
12338 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12339 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12340 if (_ptr_help_file) {
12341 NDR_PULL_ALLOC(ndr, r->help_file);
12342 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12343 } else {
12344 r->help_file = NULL;
12346 ndr->flags = _flags_save_string;
12349 uint32_t _flags_save_string_array = ndr->flags;
12350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12351 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12352 if (_ptr_dependent_files) {
12353 NDR_PULL_ALLOC(ndr, r->dependent_files);
12354 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12355 } else {
12356 r->dependent_files = NULL;
12358 ndr->flags = _flags_save_string_array;
12361 uint32_t _flags_save_string = ndr->flags;
12362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12364 if (_ptr_monitor_name) {
12365 NDR_PULL_ALLOC(ndr, r->monitor_name);
12366 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12367 } else {
12368 r->monitor_name = NULL;
12370 ndr->flags = _flags_save_string;
12373 uint32_t _flags_save_string = ndr->flags;
12374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12376 if (_ptr_default_datatype) {
12377 NDR_PULL_ALLOC(ndr, r->default_datatype);
12378 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12379 } else {
12380 r->default_datatype = NULL;
12382 ndr->flags = _flags_save_string;
12385 uint32_t _flags_save_string_array = ndr->flags;
12386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12387 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12388 if (_ptr_previous_names) {
12389 NDR_PULL_ALLOC(ndr, r->previous_names);
12390 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12391 } else {
12392 r->previous_names = NULL;
12394 ndr->flags = _flags_save_string_array;
12396 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12397 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12399 uint32_t _flags_save_string = ndr->flags;
12400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12401 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12402 if (_ptr_manufacturer_name) {
12403 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12404 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12405 } else {
12406 r->manufacturer_name = NULL;
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_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12414 if (_ptr_manufacturer_url) {
12415 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12416 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12417 } else {
12418 r->manufacturer_url = NULL;
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_pull_generic_ptr(ndr, &_ptr_hardware_id));
12426 if (_ptr_hardware_id) {
12427 NDR_PULL_ALLOC(ndr, r->hardware_id);
12428 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12429 } else {
12430 r->hardware_id = NULL;
12432 ndr->flags = _flags_save_string;
12435 uint32_t _flags_save_string = ndr->flags;
12436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12437 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12438 if (_ptr_provider) {
12439 NDR_PULL_ALLOC(ndr, r->provider);
12440 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12441 } else {
12442 r->provider = NULL;
12444 ndr->flags = _flags_save_string;
12447 if (ndr_flags & NDR_BUFFERS) {
12449 uint32_t _flags_save_string = ndr->flags;
12450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12451 if (r->driver_name) {
12452 uint32_t _relative_save_offset;
12453 _relative_save_offset = ndr->offset;
12454 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12455 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12456 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12457 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12459 ndr->offset = _relative_save_offset;
12461 ndr->flags = _flags_save_string;
12464 uint32_t _flags_save_string = ndr->flags;
12465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12466 if (r->architecture) {
12467 uint32_t _relative_save_offset;
12468 _relative_save_offset = ndr->offset;
12469 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12470 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12471 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12472 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12473 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12474 ndr->offset = _relative_save_offset;
12476 ndr->flags = _flags_save_string;
12479 uint32_t _flags_save_string = ndr->flags;
12480 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12481 if (r->driver_path) {
12482 uint32_t _relative_save_offset;
12483 _relative_save_offset = ndr->offset;
12484 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12485 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12486 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12487 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12489 ndr->offset = _relative_save_offset;
12491 ndr->flags = _flags_save_string;
12494 uint32_t _flags_save_string = ndr->flags;
12495 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12496 if (r->data_file) {
12497 uint32_t _relative_save_offset;
12498 _relative_save_offset = ndr->offset;
12499 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12500 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12501 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12502 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12504 ndr->offset = _relative_save_offset;
12506 ndr->flags = _flags_save_string;
12509 uint32_t _flags_save_string = ndr->flags;
12510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12511 if (r->config_file) {
12512 uint32_t _relative_save_offset;
12513 _relative_save_offset = ndr->offset;
12514 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12515 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12516 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12517 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12519 ndr->offset = _relative_save_offset;
12521 ndr->flags = _flags_save_string;
12524 uint32_t _flags_save_string = ndr->flags;
12525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12526 if (r->help_file) {
12527 uint32_t _relative_save_offset;
12528 _relative_save_offset = ndr->offset;
12529 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12530 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12531 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12532 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12534 ndr->offset = _relative_save_offset;
12536 ndr->flags = _flags_save_string;
12539 uint32_t _flags_save_string_array = ndr->flags;
12540 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12541 if (r->dependent_files) {
12542 uint32_t _relative_save_offset;
12543 _relative_save_offset = ndr->offset;
12544 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12545 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12546 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12547 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12549 ndr->offset = _relative_save_offset;
12551 ndr->flags = _flags_save_string_array;
12554 uint32_t _flags_save_string = ndr->flags;
12555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12556 if (r->monitor_name) {
12557 uint32_t _relative_save_offset;
12558 _relative_save_offset = ndr->offset;
12559 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12560 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12561 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12562 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12563 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12564 ndr->offset = _relative_save_offset;
12566 ndr->flags = _flags_save_string;
12569 uint32_t _flags_save_string = ndr->flags;
12570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12571 if (r->default_datatype) {
12572 uint32_t _relative_save_offset;
12573 _relative_save_offset = ndr->offset;
12574 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12575 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12576 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12577 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12579 ndr->offset = _relative_save_offset;
12581 ndr->flags = _flags_save_string;
12584 uint32_t _flags_save_string_array = ndr->flags;
12585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12586 if (r->previous_names) {
12587 uint32_t _relative_save_offset;
12588 _relative_save_offset = ndr->offset;
12589 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12590 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12591 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12592 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12594 ndr->offset = _relative_save_offset;
12596 ndr->flags = _flags_save_string_array;
12599 uint32_t _flags_save_string = ndr->flags;
12600 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12601 if (r->manufacturer_name) {
12602 uint32_t _relative_save_offset;
12603 _relative_save_offset = ndr->offset;
12604 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12605 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12606 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12607 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12609 ndr->offset = _relative_save_offset;
12611 ndr->flags = _flags_save_string;
12614 uint32_t _flags_save_string = ndr->flags;
12615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12616 if (r->manufacturer_url) {
12617 uint32_t _relative_save_offset;
12618 _relative_save_offset = ndr->offset;
12619 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12620 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12621 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12622 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12623 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12624 ndr->offset = _relative_save_offset;
12626 ndr->flags = _flags_save_string;
12629 uint32_t _flags_save_string = ndr->flags;
12630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12631 if (r->hardware_id) {
12632 uint32_t _relative_save_offset;
12633 _relative_save_offset = ndr->offset;
12634 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
12635 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
12636 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
12637 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
12638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
12639 ndr->offset = _relative_save_offset;
12641 ndr->flags = _flags_save_string;
12644 uint32_t _flags_save_string = ndr->flags;
12645 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12646 if (r->provider) {
12647 uint32_t _relative_save_offset;
12648 _relative_save_offset = ndr->offset;
12649 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
12650 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
12651 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
12652 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
12653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
12654 ndr->offset = _relative_save_offset;
12656 ndr->flags = _flags_save_string;
12659 return NDR_ERR_SUCCESS;
12662 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
12664 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
12665 ndr->depth++;
12666 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12667 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12668 ndr->depth++;
12669 if (r->driver_name) {
12670 ndr_print_string(ndr, "driver_name", r->driver_name);
12672 ndr->depth--;
12673 ndr_print_ptr(ndr, "architecture", r->architecture);
12674 ndr->depth++;
12675 if (r->architecture) {
12676 ndr_print_string(ndr, "architecture", r->architecture);
12678 ndr->depth--;
12679 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12680 ndr->depth++;
12681 if (r->driver_path) {
12682 ndr_print_string(ndr, "driver_path", r->driver_path);
12684 ndr->depth--;
12685 ndr_print_ptr(ndr, "data_file", r->data_file);
12686 ndr->depth++;
12687 if (r->data_file) {
12688 ndr_print_string(ndr, "data_file", r->data_file);
12690 ndr->depth--;
12691 ndr_print_ptr(ndr, "config_file", r->config_file);
12692 ndr->depth++;
12693 if (r->config_file) {
12694 ndr_print_string(ndr, "config_file", r->config_file);
12696 ndr->depth--;
12697 ndr_print_ptr(ndr, "help_file", r->help_file);
12698 ndr->depth++;
12699 if (r->help_file) {
12700 ndr_print_string(ndr, "help_file", r->help_file);
12702 ndr->depth--;
12703 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12704 ndr->depth++;
12705 if (r->dependent_files) {
12706 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12708 ndr->depth--;
12709 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12710 ndr->depth++;
12711 if (r->monitor_name) {
12712 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12714 ndr->depth--;
12715 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12716 ndr->depth++;
12717 if (r->default_datatype) {
12718 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12720 ndr->depth--;
12721 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12722 ndr->depth++;
12723 if (r->previous_names) {
12724 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12726 ndr->depth--;
12727 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
12728 ndr_print_hyper(ndr, "driver_version", r->driver_version);
12729 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
12730 ndr->depth++;
12731 if (r->manufacturer_name) {
12732 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
12734 ndr->depth--;
12735 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
12736 ndr->depth++;
12737 if (r->manufacturer_url) {
12738 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
12740 ndr->depth--;
12741 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
12742 ndr->depth++;
12743 if (r->hardware_id) {
12744 ndr_print_string(ndr, "hardware_id", r->hardware_id);
12746 ndr->depth--;
12747 ndr_print_ptr(ndr, "provider", r->provider);
12748 ndr->depth++;
12749 if (r->provider) {
12750 ndr_print_string(ndr, "provider", r->provider);
12752 ndr->depth--;
12753 ndr->depth--;
12756 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
12758 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
12761 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
12763 if (ndr_flags & NDR_SCALARS) {
12764 NDR_CHECK(ndr_push_align(ndr, 8));
12765 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12767 uint32_t _flags_save_string = ndr->flags;
12768 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12769 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12770 ndr->flags = _flags_save_string;
12773 uint32_t _flags_save_string = ndr->flags;
12774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12775 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12776 ndr->flags = _flags_save_string;
12779 uint32_t _flags_save_string = ndr->flags;
12780 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12781 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12782 ndr->flags = _flags_save_string;
12785 uint32_t _flags_save_string = ndr->flags;
12786 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12787 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12788 ndr->flags = _flags_save_string;
12791 uint32_t _flags_save_string = ndr->flags;
12792 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12793 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12794 ndr->flags = _flags_save_string;
12797 uint32_t _flags_save_string = ndr->flags;
12798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12799 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12800 ndr->flags = _flags_save_string;
12803 uint32_t _flags_save_string = ndr->flags;
12804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12805 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12806 ndr->flags = _flags_save_string;
12809 uint32_t _flags_save_string = ndr->flags;
12810 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12811 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12812 ndr->flags = _flags_save_string;
12815 uint32_t _flags_save_string_array = ndr->flags;
12816 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12817 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12818 ndr->flags = _flags_save_string_array;
12821 uint32_t _flags_save_string_array = ndr->flags;
12822 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12823 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12824 ndr->flags = _flags_save_string_array;
12826 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12827 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12829 uint32_t _flags_save_string = ndr->flags;
12830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12831 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12832 ndr->flags = _flags_save_string;
12835 uint32_t _flags_save_string = ndr->flags;
12836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12837 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12838 ndr->flags = _flags_save_string;
12841 uint32_t _flags_save_string = ndr->flags;
12842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12843 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12844 ndr->flags = _flags_save_string;
12847 uint32_t _flags_save_string = ndr->flags;
12848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12849 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12850 ndr->flags = _flags_save_string;
12853 uint32_t _flags_save_string = ndr->flags;
12854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12855 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
12856 ndr->flags = _flags_save_string;
12859 uint32_t _flags_save_string = ndr->flags;
12860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12861 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
12862 ndr->flags = _flags_save_string;
12865 uint32_t _flags_save_string_array = ndr->flags;
12866 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12867 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
12868 ndr->flags = _flags_save_string_array;
12871 uint32_t _flags_save_string = ndr->flags;
12872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12873 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
12874 ndr->flags = _flags_save_string;
12876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
12878 uint32_t _flags_save_string_array = ndr->flags;
12879 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12880 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
12881 ndr->flags = _flags_save_string_array;
12883 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
12884 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
12886 if (ndr_flags & NDR_BUFFERS) {
12888 uint32_t _flags_save_string = ndr->flags;
12889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12890 if (r->driver_name) {
12891 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12892 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12893 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12895 ndr->flags = _flags_save_string;
12898 uint32_t _flags_save_string = ndr->flags;
12899 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12900 if (r->architecture) {
12901 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12902 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12903 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12905 ndr->flags = _flags_save_string;
12908 uint32_t _flags_save_string = ndr->flags;
12909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12910 if (r->driver_path) {
12911 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12912 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12913 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
12915 ndr->flags = _flags_save_string;
12918 uint32_t _flags_save_string = ndr->flags;
12919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12920 if (r->data_file) {
12921 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12922 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12923 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12925 ndr->flags = _flags_save_string;
12928 uint32_t _flags_save_string = ndr->flags;
12929 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12930 if (r->config_file) {
12931 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12932 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12933 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12935 ndr->flags = _flags_save_string;
12938 uint32_t _flags_save_string = ndr->flags;
12939 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12940 if (r->help_file) {
12941 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
12942 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12943 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
12945 ndr->flags = _flags_save_string;
12948 uint32_t _flags_save_string = ndr->flags;
12949 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12950 if (r->monitor_name) {
12951 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
12952 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12953 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
12955 ndr->flags = _flags_save_string;
12958 uint32_t _flags_save_string = ndr->flags;
12959 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12960 if (r->default_datatype) {
12961 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
12962 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12963 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
12965 ndr->flags = _flags_save_string;
12968 uint32_t _flags_save_string_array = ndr->flags;
12969 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12970 if (r->dependent_files) {
12971 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
12972 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12973 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
12975 ndr->flags = _flags_save_string_array;
12978 uint32_t _flags_save_string_array = ndr->flags;
12979 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12980 if (r->previous_names) {
12981 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
12982 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12983 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
12985 ndr->flags = _flags_save_string_array;
12988 uint32_t _flags_save_string = ndr->flags;
12989 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12990 if (r->manufacturer_name) {
12991 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
12992 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12993 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
12995 ndr->flags = _flags_save_string;
12998 uint32_t _flags_save_string = ndr->flags;
12999 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13000 if (r->manufacturer_url) {
13001 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
13002 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
13003 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
13005 ndr->flags = _flags_save_string;
13008 uint32_t _flags_save_string = ndr->flags;
13009 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13010 if (r->hardware_id) {
13011 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
13012 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
13013 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
13015 ndr->flags = _flags_save_string;
13018 uint32_t _flags_save_string = ndr->flags;
13019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13020 if (r->provider) {
13021 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
13022 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
13023 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
13025 ndr->flags = _flags_save_string;
13028 uint32_t _flags_save_string = ndr->flags;
13029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13030 if (r->print_processor) {
13031 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
13032 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
13033 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
13035 ndr->flags = _flags_save_string;
13038 uint32_t _flags_save_string = ndr->flags;
13039 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13040 if (r->vendor_setup) {
13041 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->vendor_setup));
13042 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
13043 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->vendor_setup));
13045 ndr->flags = _flags_save_string;
13048 uint32_t _flags_save_string_array = ndr->flags;
13049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13050 if (r->color_profiles) {
13051 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->color_profiles));
13052 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
13053 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->color_profiles));
13055 ndr->flags = _flags_save_string_array;
13058 uint32_t _flags_save_string = ndr->flags;
13059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13060 if (r->inf_path) {
13061 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_path));
13062 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
13063 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_path));
13065 ndr->flags = _flags_save_string;
13068 uint32_t _flags_save_string_array = ndr->flags;
13069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13070 if (r->core_driver_dependencies) {
13071 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->core_driver_dependencies));
13072 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
13073 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->core_driver_dependencies));
13075 ndr->flags = _flags_save_string_array;
13078 return NDR_ERR_SUCCESS;
13081 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
13083 uint32_t _ptr_driver_name;
13084 TALLOC_CTX *_mem_save_driver_name_0;
13085 uint32_t _ptr_architecture;
13086 TALLOC_CTX *_mem_save_architecture_0;
13087 uint32_t _ptr_driver_path;
13088 TALLOC_CTX *_mem_save_driver_path_0;
13089 uint32_t _ptr_data_file;
13090 TALLOC_CTX *_mem_save_data_file_0;
13091 uint32_t _ptr_config_file;
13092 TALLOC_CTX *_mem_save_config_file_0;
13093 uint32_t _ptr_help_file;
13094 TALLOC_CTX *_mem_save_help_file_0;
13095 uint32_t _ptr_monitor_name;
13096 TALLOC_CTX *_mem_save_monitor_name_0;
13097 uint32_t _ptr_default_datatype;
13098 TALLOC_CTX *_mem_save_default_datatype_0;
13099 uint32_t _ptr_dependent_files;
13100 TALLOC_CTX *_mem_save_dependent_files_0;
13101 uint32_t _ptr_previous_names;
13102 TALLOC_CTX *_mem_save_previous_names_0;
13103 uint32_t _ptr_manufacturer_name;
13104 TALLOC_CTX *_mem_save_manufacturer_name_0;
13105 uint32_t _ptr_manufacturer_url;
13106 TALLOC_CTX *_mem_save_manufacturer_url_0;
13107 uint32_t _ptr_hardware_id;
13108 TALLOC_CTX *_mem_save_hardware_id_0;
13109 uint32_t _ptr_provider;
13110 TALLOC_CTX *_mem_save_provider_0;
13111 uint32_t _ptr_print_processor;
13112 TALLOC_CTX *_mem_save_print_processor_0;
13113 uint32_t _ptr_vendor_setup;
13114 TALLOC_CTX *_mem_save_vendor_setup_0;
13115 uint32_t _ptr_color_profiles;
13116 TALLOC_CTX *_mem_save_color_profiles_0;
13117 uint32_t _ptr_inf_path;
13118 TALLOC_CTX *_mem_save_inf_path_0;
13119 uint32_t _ptr_core_driver_dependencies;
13120 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
13121 if (ndr_flags & NDR_SCALARS) {
13122 NDR_CHECK(ndr_pull_align(ndr, 8));
13123 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13125 uint32_t _flags_save_string = ndr->flags;
13126 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13127 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13128 if (_ptr_driver_name) {
13129 NDR_PULL_ALLOC(ndr, r->driver_name);
13130 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13131 } else {
13132 r->driver_name = NULL;
13134 ndr->flags = _flags_save_string;
13137 uint32_t _flags_save_string = ndr->flags;
13138 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13140 if (_ptr_architecture) {
13141 NDR_PULL_ALLOC(ndr, r->architecture);
13142 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13143 } else {
13144 r->architecture = NULL;
13146 ndr->flags = _flags_save_string;
13149 uint32_t _flags_save_string = ndr->flags;
13150 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13152 if (_ptr_driver_path) {
13153 NDR_PULL_ALLOC(ndr, r->driver_path);
13154 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13155 } else {
13156 r->driver_path = NULL;
13158 ndr->flags = _flags_save_string;
13161 uint32_t _flags_save_string = ndr->flags;
13162 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13164 if (_ptr_data_file) {
13165 NDR_PULL_ALLOC(ndr, r->data_file);
13166 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13167 } else {
13168 r->data_file = NULL;
13170 ndr->flags = _flags_save_string;
13173 uint32_t _flags_save_string = ndr->flags;
13174 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13176 if (_ptr_config_file) {
13177 NDR_PULL_ALLOC(ndr, r->config_file);
13178 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13179 } else {
13180 r->config_file = NULL;
13182 ndr->flags = _flags_save_string;
13185 uint32_t _flags_save_string = ndr->flags;
13186 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13188 if (_ptr_help_file) {
13189 NDR_PULL_ALLOC(ndr, r->help_file);
13190 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13191 } else {
13192 r->help_file = NULL;
13194 ndr->flags = _flags_save_string;
13197 uint32_t _flags_save_string = ndr->flags;
13198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13200 if (_ptr_monitor_name) {
13201 NDR_PULL_ALLOC(ndr, r->monitor_name);
13202 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13203 } else {
13204 r->monitor_name = NULL;
13206 ndr->flags = _flags_save_string;
13209 uint32_t _flags_save_string = ndr->flags;
13210 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13211 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13212 if (_ptr_default_datatype) {
13213 NDR_PULL_ALLOC(ndr, r->default_datatype);
13214 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13215 } else {
13216 r->default_datatype = NULL;
13218 ndr->flags = _flags_save_string;
13221 uint32_t _flags_save_string_array = ndr->flags;
13222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13223 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13224 if (_ptr_dependent_files) {
13225 NDR_PULL_ALLOC(ndr, r->dependent_files);
13226 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13227 } else {
13228 r->dependent_files = NULL;
13230 ndr->flags = _flags_save_string_array;
13233 uint32_t _flags_save_string_array = ndr->flags;
13234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13236 if (_ptr_previous_names) {
13237 NDR_PULL_ALLOC(ndr, r->previous_names);
13238 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13239 } else {
13240 r->previous_names = NULL;
13242 ndr->flags = _flags_save_string_array;
13244 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13245 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13247 uint32_t _flags_save_string = ndr->flags;
13248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13250 if (_ptr_manufacturer_name) {
13251 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13252 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13253 } else {
13254 r->manufacturer_name = NULL;
13256 ndr->flags = _flags_save_string;
13259 uint32_t _flags_save_string = ndr->flags;
13260 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13261 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13262 if (_ptr_manufacturer_url) {
13263 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13264 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13265 } else {
13266 r->manufacturer_url = NULL;
13268 ndr->flags = _flags_save_string;
13271 uint32_t _flags_save_string = ndr->flags;
13272 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13273 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13274 if (_ptr_hardware_id) {
13275 NDR_PULL_ALLOC(ndr, r->hardware_id);
13276 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13277 } else {
13278 r->hardware_id = NULL;
13280 ndr->flags = _flags_save_string;
13283 uint32_t _flags_save_string = ndr->flags;
13284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13285 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13286 if (_ptr_provider) {
13287 NDR_PULL_ALLOC(ndr, r->provider);
13288 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13289 } else {
13290 r->provider = NULL;
13292 ndr->flags = _flags_save_string;
13295 uint32_t _flags_save_string = ndr->flags;
13296 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
13298 if (_ptr_print_processor) {
13299 NDR_PULL_ALLOC(ndr, r->print_processor);
13300 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
13301 } else {
13302 r->print_processor = NULL;
13304 ndr->flags = _flags_save_string;
13307 uint32_t _flags_save_string = ndr->flags;
13308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13309 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
13310 if (_ptr_vendor_setup) {
13311 NDR_PULL_ALLOC(ndr, r->vendor_setup);
13312 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
13313 } else {
13314 r->vendor_setup = NULL;
13316 ndr->flags = _flags_save_string;
13319 uint32_t _flags_save_string_array = ndr->flags;
13320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13321 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
13322 if (_ptr_color_profiles) {
13323 NDR_PULL_ALLOC(ndr, r->color_profiles);
13324 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
13325 } else {
13326 r->color_profiles = NULL;
13328 ndr->flags = _flags_save_string_array;
13331 uint32_t _flags_save_string = ndr->flags;
13332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13333 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
13334 if (_ptr_inf_path) {
13335 NDR_PULL_ALLOC(ndr, r->inf_path);
13336 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
13337 } else {
13338 r->inf_path = NULL;
13340 ndr->flags = _flags_save_string;
13342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
13344 uint32_t _flags_save_string_array = ndr->flags;
13345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13346 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
13347 if (_ptr_core_driver_dependencies) {
13348 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
13349 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
13350 } else {
13351 r->core_driver_dependencies = NULL;
13353 ndr->flags = _flags_save_string_array;
13355 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
13356 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
13358 if (ndr_flags & NDR_BUFFERS) {
13360 uint32_t _flags_save_string = ndr->flags;
13361 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13362 if (r->driver_name) {
13363 uint32_t _relative_save_offset;
13364 _relative_save_offset = ndr->offset;
13365 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13366 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13367 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13368 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13370 ndr->offset = _relative_save_offset;
13372 ndr->flags = _flags_save_string;
13375 uint32_t _flags_save_string = ndr->flags;
13376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13377 if (r->architecture) {
13378 uint32_t _relative_save_offset;
13379 _relative_save_offset = ndr->offset;
13380 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13381 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13382 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13383 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13385 ndr->offset = _relative_save_offset;
13387 ndr->flags = _flags_save_string;
13390 uint32_t _flags_save_string = ndr->flags;
13391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13392 if (r->driver_path) {
13393 uint32_t _relative_save_offset;
13394 _relative_save_offset = ndr->offset;
13395 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13396 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13397 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13398 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13400 ndr->offset = _relative_save_offset;
13402 ndr->flags = _flags_save_string;
13405 uint32_t _flags_save_string = ndr->flags;
13406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13407 if (r->data_file) {
13408 uint32_t _relative_save_offset;
13409 _relative_save_offset = ndr->offset;
13410 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13411 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13412 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13413 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13415 ndr->offset = _relative_save_offset;
13417 ndr->flags = _flags_save_string;
13420 uint32_t _flags_save_string = ndr->flags;
13421 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13422 if (r->config_file) {
13423 uint32_t _relative_save_offset;
13424 _relative_save_offset = ndr->offset;
13425 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13426 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13427 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13428 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13429 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13430 ndr->offset = _relative_save_offset;
13432 ndr->flags = _flags_save_string;
13435 uint32_t _flags_save_string = ndr->flags;
13436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13437 if (r->help_file) {
13438 uint32_t _relative_save_offset;
13439 _relative_save_offset = ndr->offset;
13440 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
13441 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13442 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
13443 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
13444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
13445 ndr->offset = _relative_save_offset;
13447 ndr->flags = _flags_save_string;
13450 uint32_t _flags_save_string = ndr->flags;
13451 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13452 if (r->monitor_name) {
13453 uint32_t _relative_save_offset;
13454 _relative_save_offset = ndr->offset;
13455 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13456 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13457 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13458 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13459 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13460 ndr->offset = _relative_save_offset;
13462 ndr->flags = _flags_save_string;
13465 uint32_t _flags_save_string = ndr->flags;
13466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13467 if (r->default_datatype) {
13468 uint32_t _relative_save_offset;
13469 _relative_save_offset = ndr->offset;
13470 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13471 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13472 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13473 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13474 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13475 ndr->offset = _relative_save_offset;
13477 ndr->flags = _flags_save_string;
13480 uint32_t _flags_save_string_array = ndr->flags;
13481 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13482 if (r->dependent_files) {
13483 uint32_t _relative_save_offset;
13484 _relative_save_offset = ndr->offset;
13485 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13486 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13487 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13488 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13490 ndr->offset = _relative_save_offset;
13492 ndr->flags = _flags_save_string_array;
13495 uint32_t _flags_save_string_array = ndr->flags;
13496 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13497 if (r->previous_names) {
13498 uint32_t _relative_save_offset;
13499 _relative_save_offset = ndr->offset;
13500 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13501 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13502 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13503 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13505 ndr->offset = _relative_save_offset;
13507 ndr->flags = _flags_save_string_array;
13510 uint32_t _flags_save_string = ndr->flags;
13511 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13512 if (r->manufacturer_name) {
13513 uint32_t _relative_save_offset;
13514 _relative_save_offset = ndr->offset;
13515 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13516 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13517 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13518 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13520 ndr->offset = _relative_save_offset;
13522 ndr->flags = _flags_save_string;
13525 uint32_t _flags_save_string = ndr->flags;
13526 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13527 if (r->manufacturer_url) {
13528 uint32_t _relative_save_offset;
13529 _relative_save_offset = ndr->offset;
13530 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13531 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13532 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13533 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13534 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13535 ndr->offset = _relative_save_offset;
13537 ndr->flags = _flags_save_string;
13540 uint32_t _flags_save_string = ndr->flags;
13541 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13542 if (r->hardware_id) {
13543 uint32_t _relative_save_offset;
13544 _relative_save_offset = ndr->offset;
13545 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13546 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13547 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13548 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13549 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13550 ndr->offset = _relative_save_offset;
13552 ndr->flags = _flags_save_string;
13555 uint32_t _flags_save_string = ndr->flags;
13556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13557 if (r->provider) {
13558 uint32_t _relative_save_offset;
13559 _relative_save_offset = ndr->offset;
13560 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13561 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13562 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13563 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13565 ndr->offset = _relative_save_offset;
13567 ndr->flags = _flags_save_string;
13570 uint32_t _flags_save_string = ndr->flags;
13571 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13572 if (r->print_processor) {
13573 uint32_t _relative_save_offset;
13574 _relative_save_offset = ndr->offset;
13575 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
13576 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
13577 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
13578 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
13579 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
13580 ndr->offset = _relative_save_offset;
13582 ndr->flags = _flags_save_string;
13585 uint32_t _flags_save_string = ndr->flags;
13586 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13587 if (r->vendor_setup) {
13588 uint32_t _relative_save_offset;
13589 _relative_save_offset = ndr->offset;
13590 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
13591 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
13592 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
13593 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
13594 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
13595 ndr->offset = _relative_save_offset;
13597 ndr->flags = _flags_save_string;
13600 uint32_t _flags_save_string_array = ndr->flags;
13601 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13602 if (r->color_profiles) {
13603 uint32_t _relative_save_offset;
13604 _relative_save_offset = ndr->offset;
13605 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
13606 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
13607 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
13608 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
13609 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
13610 ndr->offset = _relative_save_offset;
13612 ndr->flags = _flags_save_string_array;
13615 uint32_t _flags_save_string = ndr->flags;
13616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13617 if (r->inf_path) {
13618 uint32_t _relative_save_offset;
13619 _relative_save_offset = ndr->offset;
13620 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
13621 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13622 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
13623 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
13624 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
13625 ndr->offset = _relative_save_offset;
13627 ndr->flags = _flags_save_string;
13630 uint32_t _flags_save_string_array = ndr->flags;
13631 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13632 if (r->core_driver_dependencies) {
13633 uint32_t _relative_save_offset;
13634 _relative_save_offset = ndr->offset;
13635 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
13636 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13637 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
13638 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
13639 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
13640 ndr->offset = _relative_save_offset;
13642 ndr->flags = _flags_save_string_array;
13645 return NDR_ERR_SUCCESS;
13648 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
13650 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
13651 ndr->depth++;
13652 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13653 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13654 ndr->depth++;
13655 if (r->driver_name) {
13656 ndr_print_string(ndr, "driver_name", r->driver_name);
13658 ndr->depth--;
13659 ndr_print_ptr(ndr, "architecture", r->architecture);
13660 ndr->depth++;
13661 if (r->architecture) {
13662 ndr_print_string(ndr, "architecture", r->architecture);
13664 ndr->depth--;
13665 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13666 ndr->depth++;
13667 if (r->driver_path) {
13668 ndr_print_string(ndr, "driver_path", r->driver_path);
13670 ndr->depth--;
13671 ndr_print_ptr(ndr, "data_file", r->data_file);
13672 ndr->depth++;
13673 if (r->data_file) {
13674 ndr_print_string(ndr, "data_file", r->data_file);
13676 ndr->depth--;
13677 ndr_print_ptr(ndr, "config_file", r->config_file);
13678 ndr->depth++;
13679 if (r->config_file) {
13680 ndr_print_string(ndr, "config_file", r->config_file);
13682 ndr->depth--;
13683 ndr_print_ptr(ndr, "help_file", r->help_file);
13684 ndr->depth++;
13685 if (r->help_file) {
13686 ndr_print_string(ndr, "help_file", r->help_file);
13688 ndr->depth--;
13689 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13690 ndr->depth++;
13691 if (r->monitor_name) {
13692 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13694 ndr->depth--;
13695 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13696 ndr->depth++;
13697 if (r->default_datatype) {
13698 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13700 ndr->depth--;
13701 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13702 ndr->depth++;
13703 if (r->dependent_files) {
13704 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13706 ndr->depth--;
13707 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13708 ndr->depth++;
13709 if (r->previous_names) {
13710 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13712 ndr->depth--;
13713 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13714 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13715 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13716 ndr->depth++;
13717 if (r->manufacturer_name) {
13718 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13720 ndr->depth--;
13721 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13722 ndr->depth++;
13723 if (r->manufacturer_url) {
13724 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13726 ndr->depth--;
13727 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13728 ndr->depth++;
13729 if (r->hardware_id) {
13730 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13732 ndr->depth--;
13733 ndr_print_ptr(ndr, "provider", r->provider);
13734 ndr->depth++;
13735 if (r->provider) {
13736 ndr_print_string(ndr, "provider", r->provider);
13738 ndr->depth--;
13739 ndr_print_ptr(ndr, "print_processor", r->print_processor);
13740 ndr->depth++;
13741 if (r->print_processor) {
13742 ndr_print_string(ndr, "print_processor", r->print_processor);
13744 ndr->depth--;
13745 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
13746 ndr->depth++;
13747 if (r->vendor_setup) {
13748 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
13750 ndr->depth--;
13751 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
13752 ndr->depth++;
13753 if (r->color_profiles) {
13754 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
13756 ndr->depth--;
13757 ndr_print_ptr(ndr, "inf_path", r->inf_path);
13758 ndr->depth++;
13759 if (r->inf_path) {
13760 ndr_print_string(ndr, "inf_path", r->inf_path);
13762 ndr->depth--;
13763 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
13764 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13765 ndr->depth++;
13766 if (r->core_driver_dependencies) {
13767 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13769 ndr->depth--;
13770 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
13771 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
13772 ndr->depth--;
13775 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
13777 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
13780 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
13782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13783 return NDR_ERR_SUCCESS;
13786 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
13788 uint32_t v;
13789 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13790 *r = v;
13791 return NDR_ERR_SUCCESS;
13794 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
13796 const char *val = NULL;
13798 switch (r) {
13799 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13800 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13801 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13802 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13803 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13805 ndr_print_enum(ndr, name, "ENUM", val, r);
13808 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
13810 if (ndr_flags & NDR_SCALARS) {
13811 NDR_CHECK(ndr_push_align(ndr, 4));
13813 uint32_t _flags_save_string = ndr->flags;
13814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13815 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
13816 ndr->flags = _flags_save_string;
13818 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
13819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
13821 if (ndr_flags & NDR_BUFFERS) {
13823 uint32_t _flags_save_string = ndr->flags;
13824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13825 if (r->file_name) {
13826 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->file_name));
13827 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
13828 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->file_name));
13830 ndr->flags = _flags_save_string;
13833 return NDR_ERR_SUCCESS;
13836 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
13838 uint32_t _ptr_file_name;
13839 TALLOC_CTX *_mem_save_file_name_0;
13840 if (ndr_flags & NDR_SCALARS) {
13841 NDR_CHECK(ndr_pull_align(ndr, 4));
13843 uint32_t _flags_save_string = ndr->flags;
13844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
13846 if (_ptr_file_name) {
13847 NDR_PULL_ALLOC(ndr, r->file_name);
13848 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
13849 } else {
13850 r->file_name = NULL;
13852 ndr->flags = _flags_save_string;
13854 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
13855 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
13857 if (ndr_flags & NDR_BUFFERS) {
13859 uint32_t _flags_save_string = ndr->flags;
13860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13861 if (r->file_name) {
13862 uint32_t _relative_save_offset;
13863 _relative_save_offset = ndr->offset;
13864 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
13865 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13866 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
13867 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
13868 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
13869 ndr->offset = _relative_save_offset;
13871 ndr->flags = _flags_save_string;
13874 return NDR_ERR_SUCCESS;
13877 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
13879 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
13880 ndr->depth++;
13881 ndr_print_ptr(ndr, "file_name", r->file_name);
13882 ndr->depth++;
13883 if (r->file_name) {
13884 ndr_print_string(ndr, "file_name", r->file_name);
13886 ndr->depth--;
13887 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
13888 ndr_print_uint32(ndr, "file_version", r->file_version);
13889 ndr->depth--;
13892 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
13894 uint32_t cntr_file_info_1;
13895 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
13896 ndr->depth++;
13897 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13898 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13899 ndr->depth++;
13900 if (r->driver_name) {
13901 ndr_print_string(ndr, "driver_name", r->driver_name);
13903 ndr->depth--;
13904 ndr_print_ptr(ndr, "architecture", r->architecture);
13905 ndr->depth++;
13906 if (r->architecture) {
13907 ndr_print_string(ndr, "architecture", r->architecture);
13909 ndr->depth--;
13910 ndr_print_ptr(ndr, "file_info", r->file_info);
13911 ndr->depth++;
13912 if (r->file_info) {
13913 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
13914 ndr->depth++;
13915 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
13916 char *idx_1=NULL;
13917 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
13918 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
13919 free(idx_1);
13922 ndr->depth--;
13924 ndr->depth--;
13925 ndr_print_uint32(ndr, "file_count", r->file_count);
13926 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13927 ndr->depth++;
13928 if (r->monitor_name) {
13929 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13931 ndr->depth--;
13932 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13933 ndr->depth++;
13934 if (r->default_datatype) {
13935 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13937 ndr->depth--;
13938 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13939 ndr->depth++;
13940 if (r->previous_names) {
13941 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13943 ndr->depth--;
13944 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13945 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13946 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13947 ndr->depth++;
13948 if (r->manufacturer_name) {
13949 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13951 ndr->depth--;
13952 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13953 ndr->depth++;
13954 if (r->manufacturer_url) {
13955 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13957 ndr->depth--;
13958 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13959 ndr->depth++;
13960 if (r->hardware_id) {
13961 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13963 ndr->depth--;
13964 ndr_print_ptr(ndr, "provider", r->provider);
13965 ndr->depth++;
13966 if (r->provider) {
13967 ndr_print_string(ndr, "provider", r->provider);
13969 ndr->depth--;
13970 ndr->depth--;
13973 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
13975 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
13978 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
13980 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13982 uint32_t _flags_save_UNION = ndr->flags;
13983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
13984 if (ndr_flags & NDR_SCALARS) {
13985 int level = ndr_push_get_switch_value(ndr, r);
13986 switch (level) {
13987 case 1: {
13988 NDR_CHECK(ndr_push_align(ndr, 4));
13989 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13990 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13991 break; }
13993 case 2: {
13994 NDR_CHECK(ndr_push_align(ndr, 4));
13995 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13996 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13997 break; }
13999 case 3: {
14000 NDR_CHECK(ndr_push_align(ndr, 4));
14001 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14002 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14003 break; }
14005 case 4: {
14006 NDR_CHECK(ndr_push_align(ndr, 4));
14007 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14008 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14009 break; }
14011 case 5: {
14012 NDR_CHECK(ndr_push_align(ndr, 4));
14013 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14014 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14015 break; }
14017 case 6: {
14018 NDR_CHECK(ndr_push_align(ndr, 8));
14019 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14020 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14021 break; }
14023 case 8: {
14024 NDR_CHECK(ndr_push_align(ndr, 8));
14025 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14026 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14027 break; }
14029 case 101: {
14030 NDR_CHECK(ndr_push_align(ndr, 8));
14031 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14032 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14033 break; }
14035 default: {
14036 break; }
14040 if (ndr_flags & NDR_BUFFERS) {
14041 int level = ndr_push_get_switch_value(ndr, r);
14042 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14043 switch (level) {
14044 case 1:
14045 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14046 break;
14048 case 2:
14049 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14050 break;
14052 case 3:
14053 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14054 break;
14056 case 4:
14057 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14058 break;
14060 case 5:
14061 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14062 break;
14064 case 6:
14065 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14066 break;
14068 case 8:
14069 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14070 break;
14072 case 101:
14073 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14074 break;
14076 default:
14077 break;
14081 ndr->flags = _flags_save_UNION;
14083 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14084 return NDR_ERR_SUCCESS;
14087 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
14089 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14090 int level;
14092 uint32_t _flags_save_UNION = ndr->flags;
14093 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14094 level = ndr_pull_get_switch_value(ndr, r);
14095 if (ndr_flags & NDR_SCALARS) {
14096 switch (level) {
14097 case 1: {
14098 NDR_CHECK(ndr_pull_align(ndr, 4));
14099 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14100 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14101 break; }
14103 case 2: {
14104 NDR_CHECK(ndr_pull_align(ndr, 4));
14105 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14106 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14107 break; }
14109 case 3: {
14110 NDR_CHECK(ndr_pull_align(ndr, 4));
14111 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14112 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14113 break; }
14115 case 4: {
14116 NDR_CHECK(ndr_pull_align(ndr, 4));
14117 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14118 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14119 break; }
14121 case 5: {
14122 NDR_CHECK(ndr_pull_align(ndr, 4));
14123 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14124 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14125 break; }
14127 case 6: {
14128 NDR_CHECK(ndr_pull_align(ndr, 8));
14129 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14130 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14131 break; }
14133 case 8: {
14134 NDR_CHECK(ndr_pull_align(ndr, 8));
14135 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14136 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14137 break; }
14139 case 101: {
14140 NDR_CHECK(ndr_pull_align(ndr, 8));
14141 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14142 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14143 break; }
14145 default: {
14146 break; }
14150 if (ndr_flags & NDR_BUFFERS) {
14151 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14152 switch (level) {
14153 case 1:
14154 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14155 break;
14157 case 2:
14158 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14159 break;
14161 case 3:
14162 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14163 break;
14165 case 4:
14166 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14167 break;
14169 case 5:
14170 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14171 break;
14173 case 6:
14174 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14175 break;
14177 case 8:
14178 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14179 break;
14181 case 101:
14182 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14183 break;
14185 default:
14186 break;
14190 ndr->flags = _flags_save_UNION;
14192 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14193 return NDR_ERR_SUCCESS;
14196 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
14198 int level;
14200 uint32_t _flags_save_UNION = ndr->flags;
14201 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14202 level = ndr_print_get_switch_value(ndr, r);
14203 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
14204 switch (level) {
14205 case 1:
14206 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
14207 break;
14209 case 2:
14210 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
14211 break;
14213 case 3:
14214 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
14215 break;
14217 case 4:
14218 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
14219 break;
14221 case 5:
14222 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
14223 break;
14225 case 6:
14226 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
14227 break;
14229 case 8:
14230 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
14231 break;
14233 case 101:
14234 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
14235 break;
14237 default:
14238 break;
14241 ndr->flags = _flags_save_UNION;
14245 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14247 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
14248 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
14251 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
14253 if (ndr_flags & NDR_SCALARS) {
14254 NDR_CHECK(ndr_push_align(ndr, 4));
14256 uint32_t _flags_save_string = ndr->flags;
14257 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14258 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14259 ndr->flags = _flags_save_string;
14262 if (ndr_flags & NDR_BUFFERS) {
14264 return NDR_ERR_SUCCESS;
14267 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
14269 if (ndr_flags & NDR_SCALARS) {
14270 NDR_CHECK(ndr_pull_align(ndr, 4));
14272 uint32_t _flags_save_string = ndr->flags;
14273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14274 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14275 ndr->flags = _flags_save_string;
14278 if (ndr_flags & NDR_BUFFERS) {
14280 return NDR_ERR_SUCCESS;
14283 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
14285 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
14286 ndr->depth++;
14287 ndr_print_string(ndr, "directory_name", r->directory_name);
14288 ndr->depth--;
14291 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14293 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
14296 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
14298 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14300 uint32_t _flags_save_UNION = ndr->flags;
14301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14302 if (ndr_flags & NDR_SCALARS) {
14303 int level = ndr_push_get_switch_value(ndr, r);
14304 switch (level) {
14305 case 1: {
14306 NDR_CHECK(ndr_push_align(ndr, 4));
14307 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14308 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14309 break; }
14311 default: {
14312 NDR_CHECK(ndr_push_align(ndr, 4));
14313 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14314 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14315 break; }
14319 if (ndr_flags & NDR_BUFFERS) {
14320 int level = ndr_push_get_switch_value(ndr, r);
14321 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14322 switch (level) {
14323 case 1:
14324 break;
14326 default:
14327 break;
14331 ndr->flags = _flags_save_UNION;
14333 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14334 return NDR_ERR_SUCCESS;
14337 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
14339 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14340 int level;
14342 uint32_t _flags_save_UNION = ndr->flags;
14343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14344 level = ndr_pull_get_switch_value(ndr, r);
14345 if (ndr_flags & NDR_SCALARS) {
14346 switch (level) {
14347 case 1: {
14348 NDR_CHECK(ndr_pull_align(ndr, 4));
14349 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14350 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14351 break; }
14353 default: {
14354 NDR_CHECK(ndr_pull_align(ndr, 4));
14355 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14356 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14357 break; }
14361 if (ndr_flags & NDR_BUFFERS) {
14362 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14363 switch (level) {
14364 case 1:
14365 break;
14367 default:
14368 break;
14372 ndr->flags = _flags_save_UNION;
14374 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14375 return NDR_ERR_SUCCESS;
14378 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
14380 int level;
14382 uint32_t _flags_save_UNION = ndr->flags;
14383 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14384 level = ndr_print_get_switch_value(ndr, r);
14385 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
14386 switch (level) {
14387 case 1:
14388 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14389 break;
14391 default:
14392 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14393 break;
14396 ndr->flags = _flags_save_UNION;
14400 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14402 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
14403 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
14406 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
14408 if (ndr_flags & NDR_SCALARS) {
14409 NDR_CHECK(ndr_push_align(ndr, 4));
14411 uint32_t _flags_save_string = ndr->flags;
14412 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14413 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
14414 ndr->flags = _flags_save_string;
14417 if (ndr_flags & NDR_BUFFERS) {
14419 uint32_t _flags_save_string = ndr->flags;
14420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14421 if (r->print_processor_name) {
14422 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor_name));
14423 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
14424 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor_name));
14426 ndr->flags = _flags_save_string;
14429 return NDR_ERR_SUCCESS;
14432 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
14434 uint32_t _ptr_print_processor_name;
14435 TALLOC_CTX *_mem_save_print_processor_name_0;
14436 if (ndr_flags & NDR_SCALARS) {
14437 NDR_CHECK(ndr_pull_align(ndr, 4));
14439 uint32_t _flags_save_string = ndr->flags;
14440 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14441 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
14442 if (_ptr_print_processor_name) {
14443 NDR_PULL_ALLOC(ndr, r->print_processor_name);
14444 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
14445 } else {
14446 r->print_processor_name = NULL;
14448 ndr->flags = _flags_save_string;
14451 if (ndr_flags & NDR_BUFFERS) {
14453 uint32_t _flags_save_string = ndr->flags;
14454 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14455 if (r->print_processor_name) {
14456 uint32_t _relative_save_offset;
14457 _relative_save_offset = ndr->offset;
14458 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
14459 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14460 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
14461 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
14462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
14463 ndr->offset = _relative_save_offset;
14465 ndr->flags = _flags_save_string;
14468 return NDR_ERR_SUCCESS;
14471 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
14473 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
14474 ndr->depth++;
14475 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
14476 ndr->depth++;
14477 if (r->print_processor_name) {
14478 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
14480 ndr->depth--;
14481 ndr->depth--;
14484 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14486 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
14489 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
14491 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14493 uint32_t _flags_save_UNION = ndr->flags;
14494 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14495 if (ndr_flags & NDR_SCALARS) {
14496 int level = ndr_push_get_switch_value(ndr, r);
14497 switch (level) {
14498 case 1: {
14499 NDR_CHECK(ndr_push_align(ndr, 4));
14500 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14501 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14502 break; }
14504 default: {
14505 break; }
14509 if (ndr_flags & NDR_BUFFERS) {
14510 int level = ndr_push_get_switch_value(ndr, r);
14511 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14512 switch (level) {
14513 case 1:
14514 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14515 break;
14517 default:
14518 break;
14522 ndr->flags = _flags_save_UNION;
14524 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14525 return NDR_ERR_SUCCESS;
14528 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
14530 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14531 int level;
14533 uint32_t _flags_save_UNION = ndr->flags;
14534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14535 level = ndr_pull_get_switch_value(ndr, r);
14536 if (ndr_flags & NDR_SCALARS) {
14537 switch (level) {
14538 case 1: {
14539 NDR_CHECK(ndr_pull_align(ndr, 4));
14540 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14541 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14542 break; }
14544 default: {
14545 break; }
14549 if (ndr_flags & NDR_BUFFERS) {
14550 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14551 switch (level) {
14552 case 1:
14553 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14554 break;
14556 default:
14557 break;
14561 ndr->flags = _flags_save_UNION;
14563 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14564 return NDR_ERR_SUCCESS;
14567 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
14569 int level;
14571 uint32_t _flags_save_UNION = ndr->flags;
14572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14573 level = ndr_print_get_switch_value(ndr, r);
14574 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
14575 switch (level) {
14576 case 1:
14577 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
14578 break;
14580 default:
14581 break;
14584 ndr->flags = _flags_save_UNION;
14588 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14590 if (ndr_flags & NDR_SCALARS) {
14591 NDR_CHECK(ndr_push_align(ndr, 4));
14593 uint32_t _flags_save_string = ndr->flags;
14594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14595 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14596 ndr->flags = _flags_save_string;
14599 if (ndr_flags & NDR_BUFFERS) {
14601 return NDR_ERR_SUCCESS;
14604 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
14606 if (ndr_flags & NDR_SCALARS) {
14607 NDR_CHECK(ndr_pull_align(ndr, 4));
14609 uint32_t _flags_save_string = ndr->flags;
14610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14611 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14612 ndr->flags = _flags_save_string;
14615 if (ndr_flags & NDR_BUFFERS) {
14617 return NDR_ERR_SUCCESS;
14620 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14622 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
14623 ndr->depth++;
14624 ndr_print_string(ndr, "directory_name", r->directory_name);
14625 ndr->depth--;
14628 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14630 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
14633 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
14635 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14637 uint32_t _flags_save_UNION = ndr->flags;
14638 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14639 if (ndr_flags & NDR_SCALARS) {
14640 int level = ndr_push_get_switch_value(ndr, r);
14641 switch (level) {
14642 case 1: {
14643 NDR_CHECK(ndr_push_align(ndr, 4));
14644 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14645 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14646 break; }
14648 default: {
14649 NDR_CHECK(ndr_push_align(ndr, 4));
14650 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14651 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14652 break; }
14656 if (ndr_flags & NDR_BUFFERS) {
14657 int level = ndr_push_get_switch_value(ndr, r);
14658 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14659 switch (level) {
14660 case 1:
14661 break;
14663 default:
14664 break;
14668 ndr->flags = _flags_save_UNION;
14670 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14671 return NDR_ERR_SUCCESS;
14674 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
14676 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14677 int level;
14679 uint32_t _flags_save_UNION = ndr->flags;
14680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14681 level = ndr_pull_get_switch_value(ndr, r);
14682 if (ndr_flags & NDR_SCALARS) {
14683 switch (level) {
14684 case 1: {
14685 NDR_CHECK(ndr_pull_align(ndr, 4));
14686 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14687 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14688 break; }
14690 default: {
14691 NDR_CHECK(ndr_pull_align(ndr, 4));
14692 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14693 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14694 break; }
14698 if (ndr_flags & NDR_BUFFERS) {
14699 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14700 switch (level) {
14701 case 1:
14702 break;
14704 default:
14705 break;
14709 ndr->flags = _flags_save_UNION;
14711 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14712 return NDR_ERR_SUCCESS;
14715 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
14717 int level;
14719 uint32_t _flags_save_UNION = ndr->flags;
14720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14721 level = ndr_print_get_switch_value(ndr, r);
14722 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
14723 switch (level) {
14724 case 1:
14725 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14726 break;
14728 default:
14729 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14730 break;
14733 ndr->flags = _flags_save_UNION;
14737 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14739 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
14740 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
14743 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
14745 if (ndr_flags & NDR_SCALARS) {
14746 NDR_CHECK(ndr_push_align(ndr, 4));
14747 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
14748 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
14749 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
14751 if (ndr_flags & NDR_BUFFERS) {
14752 if (r->document_name) {
14753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14755 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14756 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14758 if (r->output_file) {
14759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14762 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14764 if (r->datatype) {
14765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14768 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14771 return NDR_ERR_SUCCESS;
14774 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
14776 uint32_t _ptr_document_name;
14777 uint32_t size_document_name_1 = 0;
14778 uint32_t length_document_name_1 = 0;
14779 TALLOC_CTX *_mem_save_document_name_0;
14780 uint32_t _ptr_output_file;
14781 uint32_t size_output_file_1 = 0;
14782 uint32_t length_output_file_1 = 0;
14783 TALLOC_CTX *_mem_save_output_file_0;
14784 uint32_t _ptr_datatype;
14785 uint32_t size_datatype_1 = 0;
14786 uint32_t length_datatype_1 = 0;
14787 TALLOC_CTX *_mem_save_datatype_0;
14788 if (ndr_flags & NDR_SCALARS) {
14789 NDR_CHECK(ndr_pull_align(ndr, 4));
14790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
14791 if (_ptr_document_name) {
14792 NDR_PULL_ALLOC(ndr, r->document_name);
14793 } else {
14794 r->document_name = NULL;
14796 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
14797 if (_ptr_output_file) {
14798 NDR_PULL_ALLOC(ndr, r->output_file);
14799 } else {
14800 r->output_file = NULL;
14802 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14803 if (_ptr_datatype) {
14804 NDR_PULL_ALLOC(ndr, r->datatype);
14805 } else {
14806 r->datatype = NULL;
14809 if (ndr_flags & NDR_BUFFERS) {
14810 if (r->document_name) {
14811 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14812 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
14813 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
14814 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
14815 size_document_name_1 = ndr_get_array_size(ndr, &r->document_name);
14816 length_document_name_1 = ndr_get_array_length(ndr, &r->document_name);
14817 if (length_document_name_1 > size_document_name_1) {
14818 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_document_name_1, length_document_name_1);
14820 NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
14821 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
14822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
14824 if (r->output_file) {
14825 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14826 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
14827 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
14828 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
14829 size_output_file_1 = ndr_get_array_size(ndr, &r->output_file);
14830 length_output_file_1 = ndr_get_array_length(ndr, &r->output_file);
14831 if (length_output_file_1 > size_output_file_1) {
14832 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_output_file_1, length_output_file_1);
14834 NDR_CHECK(ndr_check_string_terminator(ndr, length_output_file_1, sizeof(uint16_t)));
14835 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, length_output_file_1, sizeof(uint16_t), CH_UTF16));
14836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
14838 if (r->datatype) {
14839 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14840 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
14841 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
14842 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
14843 size_datatype_1 = ndr_get_array_size(ndr, &r->datatype);
14844 length_datatype_1 = ndr_get_array_length(ndr, &r->datatype);
14845 if (length_datatype_1 > size_datatype_1) {
14846 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_datatype_1, length_datatype_1);
14848 NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
14849 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
14850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14853 return NDR_ERR_SUCCESS;
14856 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
14858 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
14859 ndr->depth++;
14860 ndr_print_ptr(ndr, "document_name", r->document_name);
14861 ndr->depth++;
14862 if (r->document_name) {
14863 ndr_print_string(ndr, "document_name", r->document_name);
14865 ndr->depth--;
14866 ndr_print_ptr(ndr, "output_file", r->output_file);
14867 ndr->depth++;
14868 if (r->output_file) {
14869 ndr_print_string(ndr, "output_file", r->output_file);
14871 ndr->depth--;
14872 ndr_print_ptr(ndr, "datatype", r->datatype);
14873 ndr->depth++;
14874 if (r->datatype) {
14875 ndr_print_string(ndr, "datatype", r->datatype);
14877 ndr->depth--;
14878 ndr->depth--;
14881 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
14883 if (ndr_flags & NDR_SCALARS) {
14884 int level = ndr_push_get_switch_value(ndr, r);
14885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14886 switch (level) {
14887 case 1: {
14888 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
14889 break; }
14891 case 2: {
14892 break; }
14894 case 3: {
14895 break; }
14897 default: {
14898 break; }
14902 if (ndr_flags & NDR_BUFFERS) {
14903 int level = ndr_push_get_switch_value(ndr, r);
14904 switch (level) {
14905 case 1:
14906 if (r->info1) {
14907 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14909 break;
14911 case 2:
14912 break;
14914 case 3:
14915 break;
14917 default:
14918 break;
14922 return NDR_ERR_SUCCESS;
14925 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
14927 int level;
14928 uint32_t _level;
14929 TALLOC_CTX *_mem_save_info1_0;
14930 uint32_t _ptr_info1;
14931 level = ndr_pull_get_switch_value(ndr, r);
14932 if (ndr_flags & NDR_SCALARS) {
14933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14934 if (_level != level) {
14935 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14937 switch (level) {
14938 case 1: {
14939 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
14940 if (_ptr_info1) {
14941 NDR_PULL_ALLOC(ndr, r->info1);
14942 } else {
14943 r->info1 = NULL;
14945 break; }
14947 case 2: {
14948 break; }
14950 case 3: {
14951 break; }
14953 default: {
14954 break; }
14958 if (ndr_flags & NDR_BUFFERS) {
14959 switch (level) {
14960 case 1:
14961 if (r->info1) {
14962 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14963 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
14964 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14965 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
14967 break;
14969 case 2:
14970 break;
14972 case 3:
14973 break;
14975 default:
14976 break;
14980 return NDR_ERR_SUCCESS;
14983 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
14985 int level;
14986 level = ndr_print_get_switch_value(ndr, r);
14987 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
14988 switch (level) {
14989 case 1:
14990 ndr_print_ptr(ndr, "info1", r->info1);
14991 ndr->depth++;
14992 if (r->info1) {
14993 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
14995 ndr->depth--;
14996 break;
14998 case 2:
14999 break;
15001 case 3:
15002 break;
15004 default:
15005 break;
15010 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
15012 if (ndr_flags & NDR_SCALARS) {
15013 NDR_CHECK(ndr_push_align(ndr, 4));
15014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
15015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15020 uint32_t _flags_save_string = ndr->flags;
15021 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15023 struct ndr_push *_ndr_extra_string;
15024 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15025 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15026 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15028 ndr->flags = _flags_save_string;
15031 if (ndr_flags & NDR_BUFFERS) {
15033 return NDR_ERR_SUCCESS;
15036 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
15038 if (ndr_flags & NDR_SCALARS) {
15039 NDR_CHECK(ndr_pull_align(ndr, 4));
15040 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15041 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15042 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15043 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15044 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
15046 uint32_t _flags_save_string = ndr->flags;
15047 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15049 struct ndr_pull *_ndr_extra_string;
15050 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15051 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15052 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15054 ndr->flags = _flags_save_string;
15057 if (ndr_flags & NDR_BUFFERS) {
15059 return NDR_ERR_SUCCESS;
15062 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
15064 ndr_print_struct(ndr, name, "spoolss_OSVersion");
15065 ndr->depth++;
15066 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);
15067 ndr_print_uint32(ndr, "major", r->major);
15068 ndr_print_uint32(ndr, "minor", r->minor);
15069 ndr_print_uint32(ndr, "build", r->build);
15070 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
15071 ndr_print_string(ndr, "extra_string", r->extra_string);
15072 ndr->depth--;
15075 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
15077 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
15080 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
15082 if (ndr_flags & NDR_SCALARS) {
15083 NDR_CHECK(ndr_push_align(ndr, 4));
15084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
15085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15090 uint32_t _flags_save_string = ndr->flags;
15091 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15093 struct ndr_push *_ndr_extra_string;
15094 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15095 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15096 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15098 ndr->flags = _flags_save_string;
15100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
15101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
15103 if (ndr_flags & NDR_BUFFERS) {
15105 return NDR_ERR_SUCCESS;
15108 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
15110 if (ndr_flags & NDR_SCALARS) {
15111 NDR_CHECK(ndr_pull_align(ndr, 4));
15112 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15113 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15114 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15115 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15116 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
15118 uint32_t _flags_save_string = ndr->flags;
15119 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15121 struct ndr_pull *_ndr_extra_string;
15122 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15123 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15124 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15126 ndr->flags = _flags_save_string;
15128 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
15129 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
15131 if (ndr_flags & NDR_BUFFERS) {
15133 return NDR_ERR_SUCCESS;
15136 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
15138 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
15139 ndr->depth++;
15140 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);
15141 ndr_print_uint32(ndr, "major", r->major);
15142 ndr_print_uint32(ndr, "minor", r->minor);
15143 ndr_print_uint32(ndr, "build", r->build);
15144 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
15145 ndr_print_string(ndr, "extra_string", r->extra_string);
15146 ndr_print_uint32(ndr, "unknown2", r->unknown2);
15147 ndr_print_uint32(ndr, "unknown3", r->unknown3);
15148 ndr->depth--;
15151 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
15153 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
15156 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
15158 if (ndr_flags & NDR_SCALARS) {
15159 int level = ndr_push_get_switch_value(ndr, r);
15160 switch (level) {
15161 case REG_NONE: {
15162 break; }
15164 case REG_SZ: {
15166 uint32_t _flags_save_string = ndr->flags;
15167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15168 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
15169 ndr->flags = _flags_save_string;
15171 break; }
15173 case REG_BINARY: {
15175 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15176 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15177 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
15178 ndr->flags = _flags_save_DATA_BLOB;
15180 break; }
15182 case REG_DWORD: {
15183 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
15184 break; }
15186 case REG_MULTI_SZ: {
15188 uint32_t _flags_save_string_array = ndr->flags;
15189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15190 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
15191 ndr->flags = _flags_save_string_array;
15193 break; }
15195 default: {
15197 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15199 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
15200 ndr->flags = _flags_save_DATA_BLOB;
15202 break; }
15206 if (ndr_flags & NDR_BUFFERS) {
15207 int level = ndr_push_get_switch_value(ndr, r);
15208 switch (level) {
15209 case REG_NONE:
15210 break;
15212 case REG_SZ:
15213 break;
15215 case REG_BINARY:
15216 break;
15218 case REG_DWORD:
15219 break;
15221 case REG_MULTI_SZ:
15222 break;
15224 default:
15225 break;
15229 return NDR_ERR_SUCCESS;
15232 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
15234 int level;
15235 level = ndr_pull_get_switch_value(ndr, r);
15236 if (ndr_flags & NDR_SCALARS) {
15237 switch (level) {
15238 case REG_NONE: {
15239 break; }
15241 case REG_SZ: {
15243 uint32_t _flags_save_string = ndr->flags;
15244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15245 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
15246 ndr->flags = _flags_save_string;
15248 break; }
15250 case REG_BINARY: {
15252 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15254 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
15255 ndr->flags = _flags_save_DATA_BLOB;
15257 break; }
15259 case REG_DWORD: {
15260 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
15261 break; }
15263 case REG_MULTI_SZ: {
15265 uint32_t _flags_save_string_array = ndr->flags;
15266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15267 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
15268 ndr->flags = _flags_save_string_array;
15270 break; }
15272 default: {
15274 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15276 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
15277 ndr->flags = _flags_save_DATA_BLOB;
15279 break; }
15283 if (ndr_flags & NDR_BUFFERS) {
15284 switch (level) {
15285 case REG_NONE:
15286 break;
15288 case REG_SZ:
15289 break;
15291 case REG_BINARY:
15292 break;
15294 case REG_DWORD:
15295 break;
15297 case REG_MULTI_SZ:
15298 break;
15300 default:
15301 break;
15305 return NDR_ERR_SUCCESS;
15308 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
15310 int level;
15311 level = ndr_print_get_switch_value(ndr, r);
15312 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
15313 switch (level) {
15314 case REG_NONE:
15315 break;
15317 case REG_SZ:
15318 ndr_print_string(ndr, "string", r->string);
15319 break;
15321 case REG_BINARY:
15322 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
15323 break;
15325 case REG_DWORD:
15326 ndr_print_uint32(ndr, "value", r->value);
15327 break;
15329 case REG_MULTI_SZ:
15330 ndr_print_string_array(ndr, "string_array", r->string_array);
15331 break;
15333 default:
15334 ndr_print_DATA_BLOB(ndr, "data", r->data);
15335 break;
15340 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15342 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
15345 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
15347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15348 return NDR_ERR_SUCCESS;
15351 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
15353 uint32_t v;
15354 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15355 *r = v;
15356 return NDR_ERR_SUCCESS;
15359 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
15361 const char *val = NULL;
15363 switch (r) {
15364 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
15365 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
15366 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
15368 ndr_print_enum(ndr, name, "ENUM", val, r);
15371 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
15373 if (ndr_flags & NDR_SCALARS) {
15374 NDR_CHECK(ndr_push_align(ndr, 4));
15375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
15376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
15378 if (ndr_flags & NDR_BUFFERS) {
15380 return NDR_ERR_SUCCESS;
15383 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
15385 if (ndr_flags & NDR_SCALARS) {
15386 NDR_CHECK(ndr_pull_align(ndr, 4));
15387 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
15388 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
15390 if (ndr_flags & NDR_BUFFERS) {
15392 return NDR_ERR_SUCCESS;
15395 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
15397 ndr_print_struct(ndr, name, "spoolss_FormSize");
15398 ndr->depth++;
15399 ndr_print_uint32(ndr, "width", r->width);
15400 ndr_print_uint32(ndr, "height", r->height);
15401 ndr->depth--;
15404 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
15406 if (ndr_flags & NDR_SCALARS) {
15407 NDR_CHECK(ndr_push_align(ndr, 4));
15408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
15409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
15410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
15411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
15413 if (ndr_flags & NDR_BUFFERS) {
15415 return NDR_ERR_SUCCESS;
15418 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
15420 if (ndr_flags & NDR_SCALARS) {
15421 NDR_CHECK(ndr_pull_align(ndr, 4));
15422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
15423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
15424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
15425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
15427 if (ndr_flags & NDR_BUFFERS) {
15429 return NDR_ERR_SUCCESS;
15432 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
15434 ndr_print_struct(ndr, name, "spoolss_FormArea");
15435 ndr->depth++;
15436 ndr_print_uint32(ndr, "left", r->left);
15437 ndr_print_uint32(ndr, "top", r->top);
15438 ndr_print_uint32(ndr, "right", r->right);
15439 ndr_print_uint32(ndr, "bottom", r->bottom);
15440 ndr->depth--;
15443 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
15445 if (ndr_flags & NDR_SCALARS) {
15446 NDR_CHECK(ndr_push_align(ndr, 4));
15447 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15449 uint32_t _flags_save_string = ndr->flags;
15450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15451 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15452 ndr->flags = _flags_save_string;
15454 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15455 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15457 if (ndr_flags & NDR_BUFFERS) {
15459 uint32_t _flags_save_string = ndr->flags;
15460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15461 if (r->form_name) {
15462 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
15463 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15464 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
15466 ndr->flags = _flags_save_string;
15469 return NDR_ERR_SUCCESS;
15472 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
15474 uint32_t _ptr_form_name;
15475 TALLOC_CTX *_mem_save_form_name_0;
15476 if (ndr_flags & NDR_SCALARS) {
15477 NDR_CHECK(ndr_pull_align(ndr, 4));
15478 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15480 uint32_t _flags_save_string = ndr->flags;
15481 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15482 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15483 if (_ptr_form_name) {
15484 NDR_PULL_ALLOC(ndr, r->form_name);
15485 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15486 } else {
15487 r->form_name = NULL;
15489 ndr->flags = _flags_save_string;
15491 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15492 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15494 if (ndr_flags & NDR_BUFFERS) {
15496 uint32_t _flags_save_string = ndr->flags;
15497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15498 if (r->form_name) {
15499 uint32_t _relative_save_offset;
15500 _relative_save_offset = ndr->offset;
15501 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15502 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15503 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15504 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15505 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15506 ndr->offset = _relative_save_offset;
15508 ndr->flags = _flags_save_string;
15511 return NDR_ERR_SUCCESS;
15514 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
15516 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
15517 ndr->depth++;
15518 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15519 ndr_print_ptr(ndr, "form_name", r->form_name);
15520 ndr->depth++;
15521 if (r->form_name) {
15522 ndr_print_string(ndr, "form_name", r->form_name);
15524 ndr->depth--;
15525 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15526 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15527 ndr->depth--;
15530 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15532 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
15535 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15538 return NDR_ERR_SUCCESS;
15541 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15543 uint32_t v;
15544 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15545 *r = v;
15546 return NDR_ERR_SUCCESS;
15549 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
15551 ndr_print_uint32(ndr, name, r);
15552 ndr->depth++;
15553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
15554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
15555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
15556 ndr->depth--;
15559 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
15561 if (ndr_flags & NDR_SCALARS) {
15562 NDR_CHECK(ndr_push_align(ndr, 4));
15563 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15565 uint32_t _flags_save_string = ndr->flags;
15566 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15567 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15568 ndr->flags = _flags_save_string;
15570 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15571 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15573 uint32_t _flags_save_string = ndr->flags;
15574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15575 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
15576 ndr->flags = _flags_save_string;
15578 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15580 uint32_t _flags_save_string = ndr->flags;
15581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15582 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
15583 ndr->flags = _flags_save_string;
15585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15587 uint32_t _flags_save_string = ndr->flags;
15588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15589 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
15590 ndr->flags = _flags_save_string;
15592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15594 if (ndr_flags & NDR_BUFFERS) {
15596 uint32_t _flags_save_string = ndr->flags;
15597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15598 if (r->form_name) {
15599 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
15600 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15601 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
15603 ndr->flags = _flags_save_string;
15606 uint32_t _flags_save_string = ndr->flags;
15607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15608 if (r->keyword) {
15609 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->keyword));
15610 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
15611 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->keyword));
15613 ndr->flags = _flags_save_string;
15616 uint32_t _flags_save_string = ndr->flags;
15617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15618 if (r->mui_dll) {
15619 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->mui_dll));
15620 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
15621 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->mui_dll));
15623 ndr->flags = _flags_save_string;
15626 uint32_t _flags_save_string = ndr->flags;
15627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15628 if (r->display_name) {
15629 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->display_name));
15630 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
15631 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->display_name));
15633 ndr->flags = _flags_save_string;
15636 return NDR_ERR_SUCCESS;
15639 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
15641 uint32_t _ptr_form_name;
15642 TALLOC_CTX *_mem_save_form_name_0;
15643 uint32_t _ptr_keyword;
15644 TALLOC_CTX *_mem_save_keyword_0;
15645 uint32_t _ptr_mui_dll;
15646 TALLOC_CTX *_mem_save_mui_dll_0;
15647 uint32_t _ptr_display_name;
15648 TALLOC_CTX *_mem_save_display_name_0;
15649 if (ndr_flags & NDR_SCALARS) {
15650 NDR_CHECK(ndr_pull_align(ndr, 4));
15651 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15653 uint32_t _flags_save_string = ndr->flags;
15654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15656 if (_ptr_form_name) {
15657 NDR_PULL_ALLOC(ndr, r->form_name);
15658 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15659 } else {
15660 r->form_name = NULL;
15662 ndr->flags = _flags_save_string;
15664 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15665 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15667 uint32_t _flags_save_string = ndr->flags;
15668 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15670 if (_ptr_keyword) {
15671 NDR_PULL_ALLOC(ndr, r->keyword);
15672 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
15673 } else {
15674 r->keyword = NULL;
15676 ndr->flags = _flags_save_string;
15678 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15680 uint32_t _flags_save_string = ndr->flags;
15681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15682 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15683 if (_ptr_mui_dll) {
15684 NDR_PULL_ALLOC(ndr, r->mui_dll);
15685 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
15686 } else {
15687 r->mui_dll = NULL;
15689 ndr->flags = _flags_save_string;
15691 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15693 uint32_t _flags_save_string = ndr->flags;
15694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15696 if (_ptr_display_name) {
15697 NDR_PULL_ALLOC(ndr, r->display_name);
15698 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
15699 } else {
15700 r->display_name = NULL;
15702 ndr->flags = _flags_save_string;
15704 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15706 if (ndr_flags & NDR_BUFFERS) {
15708 uint32_t _flags_save_string = ndr->flags;
15709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15710 if (r->form_name) {
15711 uint32_t _relative_save_offset;
15712 _relative_save_offset = ndr->offset;
15713 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15714 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15715 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15716 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15718 ndr->offset = _relative_save_offset;
15720 ndr->flags = _flags_save_string;
15723 uint32_t _flags_save_string = ndr->flags;
15724 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15725 if (r->keyword) {
15726 uint32_t _relative_save_offset;
15727 _relative_save_offset = ndr->offset;
15728 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
15729 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15730 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15731 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
15732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15733 ndr->offset = _relative_save_offset;
15735 ndr->flags = _flags_save_string;
15738 uint32_t _flags_save_string = ndr->flags;
15739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15740 if (r->mui_dll) {
15741 uint32_t _relative_save_offset;
15742 _relative_save_offset = ndr->offset;
15743 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
15744 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15745 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15746 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
15747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15748 ndr->offset = _relative_save_offset;
15750 ndr->flags = _flags_save_string;
15753 uint32_t _flags_save_string = ndr->flags;
15754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15755 if (r->display_name) {
15756 uint32_t _relative_save_offset;
15757 _relative_save_offset = ndr->offset;
15758 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
15759 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15760 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15761 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
15762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15763 ndr->offset = _relative_save_offset;
15765 ndr->flags = _flags_save_string;
15768 return NDR_ERR_SUCCESS;
15771 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
15773 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
15774 ndr->depth++;
15775 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15776 ndr_print_ptr(ndr, "form_name", r->form_name);
15777 ndr->depth++;
15778 if (r->form_name) {
15779 ndr_print_string(ndr, "form_name", r->form_name);
15781 ndr->depth--;
15782 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15783 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15784 ndr_print_ptr(ndr, "keyword", r->keyword);
15785 ndr->depth++;
15786 if (r->keyword) {
15787 ndr_print_string(ndr, "keyword", r->keyword);
15789 ndr->depth--;
15790 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15791 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15792 ndr->depth++;
15793 if (r->mui_dll) {
15794 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15796 ndr->depth--;
15797 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15798 ndr_print_ptr(ndr, "display_name", r->display_name);
15799 ndr->depth++;
15800 if (r->display_name) {
15801 ndr_print_string(ndr, "display_name", r->display_name);
15803 ndr->depth--;
15804 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15805 ndr->depth--;
15808 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
15810 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
15813 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
15815 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15817 uint32_t _flags_save_UNION = ndr->flags;
15818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15819 if (ndr_flags & NDR_SCALARS) {
15820 int level = ndr_push_get_switch_value(ndr, r);
15821 switch (level) {
15822 case 1: {
15823 NDR_CHECK(ndr_push_align(ndr, 4));
15824 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15825 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15826 break; }
15828 case 2: {
15829 NDR_CHECK(ndr_push_align(ndr, 4));
15830 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15831 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15832 break; }
15834 default: {
15835 break; }
15839 if (ndr_flags & NDR_BUFFERS) {
15840 int level = ndr_push_get_switch_value(ndr, r);
15841 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15842 switch (level) {
15843 case 1:
15844 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15845 break;
15847 case 2:
15848 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15849 break;
15851 default:
15852 break;
15856 ndr->flags = _flags_save_UNION;
15858 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15859 return NDR_ERR_SUCCESS;
15862 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
15864 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15865 int level;
15867 uint32_t _flags_save_UNION = ndr->flags;
15868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15869 level = ndr_pull_get_switch_value(ndr, r);
15870 if (ndr_flags & NDR_SCALARS) {
15871 switch (level) {
15872 case 1: {
15873 NDR_CHECK(ndr_pull_align(ndr, 4));
15874 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15875 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15876 break; }
15878 case 2: {
15879 NDR_CHECK(ndr_pull_align(ndr, 4));
15880 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15881 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15882 break; }
15884 default: {
15885 break; }
15889 if (ndr_flags & NDR_BUFFERS) {
15890 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15891 switch (level) {
15892 case 1:
15893 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15894 break;
15896 case 2:
15897 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15898 break;
15900 default:
15901 break;
15905 ndr->flags = _flags_save_UNION;
15907 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15908 return NDR_ERR_SUCCESS;
15911 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
15913 int level;
15915 uint32_t _flags_save_UNION = ndr->flags;
15916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15917 level = ndr_print_get_switch_value(ndr, r);
15918 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
15919 switch (level) {
15920 case 1:
15921 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
15922 break;
15924 case 2:
15925 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
15926 break;
15928 default:
15929 break;
15932 ndr->flags = _flags_save_UNION;
15936 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15938 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
15939 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
15942 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
15944 if (ndr_flags & NDR_SCALARS) {
15945 NDR_CHECK(ndr_push_align(ndr, 4));
15946 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15947 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15948 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15949 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15951 if (ndr_flags & NDR_BUFFERS) {
15952 if (r->form_name) {
15953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15956 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15959 return NDR_ERR_SUCCESS;
15962 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
15964 uint32_t _ptr_form_name;
15965 uint32_t size_form_name_1 = 0;
15966 uint32_t length_form_name_1 = 0;
15967 TALLOC_CTX *_mem_save_form_name_0;
15968 if (ndr_flags & NDR_SCALARS) {
15969 NDR_CHECK(ndr_pull_align(ndr, 4));
15970 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15971 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15972 if (_ptr_form_name) {
15973 NDR_PULL_ALLOC(ndr, r->form_name);
15974 } else {
15975 r->form_name = NULL;
15977 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15978 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15980 if (ndr_flags & NDR_BUFFERS) {
15981 if (r->form_name) {
15982 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15983 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15984 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15985 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15986 size_form_name_1 = ndr_get_array_size(ndr, &r->form_name);
15987 length_form_name_1 = ndr_get_array_length(ndr, &r->form_name);
15988 if (length_form_name_1 > size_form_name_1) {
15989 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_form_name_1, length_form_name_1);
15991 NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_1, sizeof(uint16_t)));
15992 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, length_form_name_1, sizeof(uint16_t), CH_UTF16));
15993 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15996 return NDR_ERR_SUCCESS;
15999 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
16001 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
16002 ndr->depth++;
16003 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16004 ndr_print_ptr(ndr, "form_name", r->form_name);
16005 ndr->depth++;
16006 if (r->form_name) {
16007 ndr_print_string(ndr, "form_name", r->form_name);
16009 ndr->depth--;
16010 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16011 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16012 ndr->depth--;
16015 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
16017 if (ndr_flags & NDR_SCALARS) {
16018 NDR_CHECK(ndr_push_align(ndr, 4));
16019 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16020 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16021 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16022 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16023 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
16024 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16025 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
16026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16027 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
16028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
16030 if (ndr_flags & NDR_BUFFERS) {
16031 if (r->form_name) {
16032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16035 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16037 if (r->keyword) {
16038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16041 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
16043 if (r->mui_dll) {
16044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16047 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16049 if (r->display_name) {
16050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16053 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16056 return NDR_ERR_SUCCESS;
16059 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
16061 uint32_t _ptr_form_name;
16062 uint32_t size_form_name_1 = 0;
16063 uint32_t length_form_name_1 = 0;
16064 TALLOC_CTX *_mem_save_form_name_0;
16065 uint32_t _ptr_keyword;
16066 uint32_t size_keyword_1 = 0;
16067 uint32_t length_keyword_1 = 0;
16068 TALLOC_CTX *_mem_save_keyword_0;
16069 uint32_t _ptr_mui_dll;
16070 uint32_t size_mui_dll_1 = 0;
16071 uint32_t length_mui_dll_1 = 0;
16072 TALLOC_CTX *_mem_save_mui_dll_0;
16073 uint32_t _ptr_display_name;
16074 uint32_t size_display_name_1 = 0;
16075 uint32_t length_display_name_1 = 0;
16076 TALLOC_CTX *_mem_save_display_name_0;
16077 if (ndr_flags & NDR_SCALARS) {
16078 NDR_CHECK(ndr_pull_align(ndr, 4));
16079 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16080 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16081 if (_ptr_form_name) {
16082 NDR_PULL_ALLOC(ndr, r->form_name);
16083 } else {
16084 r->form_name = NULL;
16086 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16087 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16088 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16089 if (_ptr_keyword) {
16090 NDR_PULL_ALLOC(ndr, r->keyword);
16091 } else {
16092 r->keyword = NULL;
16094 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16095 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16096 if (_ptr_mui_dll) {
16097 NDR_PULL_ALLOC(ndr, r->mui_dll);
16098 } else {
16099 r->mui_dll = NULL;
16101 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16102 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16103 if (_ptr_display_name) {
16104 NDR_PULL_ALLOC(ndr, r->display_name);
16105 } else {
16106 r->display_name = NULL;
16108 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16110 if (ndr_flags & NDR_BUFFERS) {
16111 if (r->form_name) {
16112 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16113 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16114 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16115 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16116 size_form_name_1 = ndr_get_array_size(ndr, &r->form_name);
16117 length_form_name_1 = ndr_get_array_length(ndr, &r->form_name);
16118 if (length_form_name_1 > size_form_name_1) {
16119 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_form_name_1, length_form_name_1);
16121 NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_1, sizeof(uint16_t)));
16122 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, length_form_name_1, sizeof(uint16_t), CH_UTF16));
16123 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16125 if (r->keyword) {
16126 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16127 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16128 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
16129 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
16130 size_keyword_1 = ndr_get_array_size(ndr, &r->keyword);
16131 length_keyword_1 = ndr_get_array_length(ndr, &r->keyword);
16132 if (length_keyword_1 > size_keyword_1) {
16133 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_keyword_1, length_keyword_1);
16135 NDR_CHECK(ndr_check_string_terminator(ndr, length_keyword_1, sizeof(uint8_t)));
16136 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, length_keyword_1, sizeof(uint8_t), CH_DOS));
16137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16139 if (r->mui_dll) {
16140 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16141 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16142 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
16143 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
16144 size_mui_dll_1 = ndr_get_array_size(ndr, &r->mui_dll);
16145 length_mui_dll_1 = ndr_get_array_length(ndr, &r->mui_dll);
16146 if (length_mui_dll_1 > size_mui_dll_1) {
16147 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_mui_dll_1, length_mui_dll_1);
16149 NDR_CHECK(ndr_check_string_terminator(ndr, length_mui_dll_1, sizeof(uint16_t)));
16150 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, length_mui_dll_1, sizeof(uint16_t), CH_UTF16));
16151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16153 if (r->display_name) {
16154 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16155 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16156 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
16157 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
16158 size_display_name_1 = ndr_get_array_size(ndr, &r->display_name);
16159 length_display_name_1 = ndr_get_array_length(ndr, &r->display_name);
16160 if (length_display_name_1 > size_display_name_1) {
16161 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_display_name_1, length_display_name_1);
16163 NDR_CHECK(ndr_check_string_terminator(ndr, length_display_name_1, sizeof(uint16_t)));
16164 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, length_display_name_1, sizeof(uint16_t), CH_UTF16));
16165 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16168 return NDR_ERR_SUCCESS;
16171 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
16173 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
16174 ndr->depth++;
16175 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16176 ndr_print_ptr(ndr, "form_name", r->form_name);
16177 ndr->depth++;
16178 if (r->form_name) {
16179 ndr_print_string(ndr, "form_name", r->form_name);
16181 ndr->depth--;
16182 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16183 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16184 ndr_print_ptr(ndr, "keyword", r->keyword);
16185 ndr->depth++;
16186 if (r->keyword) {
16187 ndr_print_string(ndr, "keyword", r->keyword);
16189 ndr->depth--;
16190 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16191 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16192 ndr->depth++;
16193 if (r->mui_dll) {
16194 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16196 ndr->depth--;
16197 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16198 ndr_print_ptr(ndr, "display_name", r->display_name);
16199 ndr->depth++;
16200 if (r->display_name) {
16201 ndr_print_string(ndr, "display_name", r->display_name);
16203 ndr->depth--;
16204 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16205 ndr->depth--;
16208 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
16210 if (ndr_flags & NDR_SCALARS) {
16211 int level = ndr_push_get_switch_value(ndr, r);
16212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
16213 switch (level) {
16214 case 1: {
16215 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
16216 break; }
16218 case 2: {
16219 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
16220 break; }
16222 default:
16223 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
16226 if (ndr_flags & NDR_BUFFERS) {
16227 int level = ndr_push_get_switch_value(ndr, r);
16228 switch (level) {
16229 case 1:
16230 if (r->info1) {
16231 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16233 break;
16235 case 2:
16236 if (r->info2) {
16237 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16239 break;
16241 default:
16242 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
16245 return NDR_ERR_SUCCESS;
16248 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
16250 int level;
16251 uint32_t _level;
16252 TALLOC_CTX *_mem_save_info1_0;
16253 uint32_t _ptr_info1;
16254 TALLOC_CTX *_mem_save_info2_0;
16255 uint32_t _ptr_info2;
16256 level = ndr_pull_get_switch_value(ndr, r);
16257 if (ndr_flags & NDR_SCALARS) {
16258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16259 if (_level != level) {
16260 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
16262 switch (level) {
16263 case 1: {
16264 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16265 if (_ptr_info1) {
16266 NDR_PULL_ALLOC(ndr, r->info1);
16267 } else {
16268 r->info1 = NULL;
16270 break; }
16272 case 2: {
16273 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
16274 if (_ptr_info2) {
16275 NDR_PULL_ALLOC(ndr, r->info2);
16276 } else {
16277 r->info2 = NULL;
16279 break; }
16281 default:
16282 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
16285 if (ndr_flags & NDR_BUFFERS) {
16286 switch (level) {
16287 case 1:
16288 if (r->info1) {
16289 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
16290 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
16291 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
16294 break;
16296 case 2:
16297 if (r->info2) {
16298 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
16299 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
16300 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
16303 break;
16305 default:
16306 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
16309 return NDR_ERR_SUCCESS;
16312 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
16314 int level;
16315 level = ndr_print_get_switch_value(ndr, r);
16316 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
16317 switch (level) {
16318 case 1:
16319 ndr_print_ptr(ndr, "info1", r->info1);
16320 ndr->depth++;
16321 if (r->info1) {
16322 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
16324 ndr->depth--;
16325 break;
16327 case 2:
16328 ndr_print_ptr(ndr, "info2", r->info2);
16329 ndr->depth++;
16330 if (r->info2) {
16331 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
16333 ndr->depth--;
16334 break;
16336 default:
16337 ndr_print_bad_level(ndr, name, level);
16341 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
16343 if (ndr_flags & NDR_SCALARS) {
16344 NDR_CHECK(ndr_push_align(ndr, 4));
16346 uint32_t _flags_save_string = ndr->flags;
16347 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16348 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16349 ndr->flags = _flags_save_string;
16352 if (ndr_flags & NDR_BUFFERS) {
16354 uint32_t _flags_save_string = ndr->flags;
16355 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16356 if (r->port_name) {
16357 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
16358 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16359 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
16361 ndr->flags = _flags_save_string;
16364 return NDR_ERR_SUCCESS;
16367 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
16369 uint32_t _ptr_port_name;
16370 TALLOC_CTX *_mem_save_port_name_0;
16371 if (ndr_flags & NDR_SCALARS) {
16372 NDR_CHECK(ndr_pull_align(ndr, 4));
16374 uint32_t _flags_save_string = ndr->flags;
16375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16376 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16377 if (_ptr_port_name) {
16378 NDR_PULL_ALLOC(ndr, r->port_name);
16379 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16380 } else {
16381 r->port_name = NULL;
16383 ndr->flags = _flags_save_string;
16386 if (ndr_flags & NDR_BUFFERS) {
16388 uint32_t _flags_save_string = ndr->flags;
16389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16390 if (r->port_name) {
16391 uint32_t _relative_save_offset;
16392 _relative_save_offset = ndr->offset;
16393 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16394 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16395 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16396 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16398 ndr->offset = _relative_save_offset;
16400 ndr->flags = _flags_save_string;
16403 return NDR_ERR_SUCCESS;
16406 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
16408 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
16409 ndr->depth++;
16410 ndr_print_ptr(ndr, "port_name", r->port_name);
16411 ndr->depth++;
16412 if (r->port_name) {
16413 ndr_print_string(ndr, "port_name", r->port_name);
16415 ndr->depth--;
16416 ndr->depth--;
16419 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16421 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
16424 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16427 return NDR_ERR_SUCCESS;
16430 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16432 uint32_t v;
16433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16434 *r = v;
16435 return NDR_ERR_SUCCESS;
16438 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
16440 ndr_print_uint32(ndr, name, r);
16441 ndr->depth++;
16442 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
16443 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
16444 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
16445 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
16446 ndr->depth--;
16449 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
16451 if (ndr_flags & NDR_SCALARS) {
16452 NDR_CHECK(ndr_push_align(ndr, 4));
16454 uint32_t _flags_save_string = ndr->flags;
16455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16456 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16457 ndr->flags = _flags_save_string;
16460 uint32_t _flags_save_string = ndr->flags;
16461 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16462 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16463 ndr->flags = _flags_save_string;
16466 uint32_t _flags_save_string = ndr->flags;
16467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16468 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
16469 ndr->flags = _flags_save_string;
16471 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
16472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
16474 if (ndr_flags & NDR_BUFFERS) {
16476 uint32_t _flags_save_string = ndr->flags;
16477 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16478 if (r->port_name) {
16479 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
16480 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16481 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
16483 ndr->flags = _flags_save_string;
16486 uint32_t _flags_save_string = ndr->flags;
16487 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16488 if (r->monitor_name) {
16489 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
16490 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16491 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
16493 ndr->flags = _flags_save_string;
16496 uint32_t _flags_save_string = ndr->flags;
16497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16498 if (r->description) {
16499 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
16500 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
16501 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
16503 ndr->flags = _flags_save_string;
16506 return NDR_ERR_SUCCESS;
16509 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
16511 uint32_t _ptr_port_name;
16512 TALLOC_CTX *_mem_save_port_name_0;
16513 uint32_t _ptr_monitor_name;
16514 TALLOC_CTX *_mem_save_monitor_name_0;
16515 uint32_t _ptr_description;
16516 TALLOC_CTX *_mem_save_description_0;
16517 if (ndr_flags & NDR_SCALARS) {
16518 NDR_CHECK(ndr_pull_align(ndr, 4));
16520 uint32_t _flags_save_string = ndr->flags;
16521 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16522 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16523 if (_ptr_port_name) {
16524 NDR_PULL_ALLOC(ndr, r->port_name);
16525 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16526 } else {
16527 r->port_name = NULL;
16529 ndr->flags = _flags_save_string;
16532 uint32_t _flags_save_string = ndr->flags;
16533 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16535 if (_ptr_monitor_name) {
16536 NDR_PULL_ALLOC(ndr, r->monitor_name);
16537 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16538 } else {
16539 r->monitor_name = NULL;
16541 ndr->flags = _flags_save_string;
16544 uint32_t _flags_save_string = ndr->flags;
16545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16546 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
16547 if (_ptr_description) {
16548 NDR_PULL_ALLOC(ndr, r->description);
16549 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
16550 } else {
16551 r->description = NULL;
16553 ndr->flags = _flags_save_string;
16555 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
16556 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
16558 if (ndr_flags & NDR_BUFFERS) {
16560 uint32_t _flags_save_string = ndr->flags;
16561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16562 if (r->port_name) {
16563 uint32_t _relative_save_offset;
16564 _relative_save_offset = ndr->offset;
16565 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16566 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16567 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16568 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16570 ndr->offset = _relative_save_offset;
16572 ndr->flags = _flags_save_string;
16575 uint32_t _flags_save_string = ndr->flags;
16576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16577 if (r->monitor_name) {
16578 uint32_t _relative_save_offset;
16579 _relative_save_offset = ndr->offset;
16580 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16581 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16582 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16583 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16584 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16585 ndr->offset = _relative_save_offset;
16587 ndr->flags = _flags_save_string;
16590 uint32_t _flags_save_string = ndr->flags;
16591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16592 if (r->description) {
16593 uint32_t _relative_save_offset;
16594 _relative_save_offset = ndr->offset;
16595 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
16596 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
16597 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
16598 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
16599 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
16600 ndr->offset = _relative_save_offset;
16602 ndr->flags = _flags_save_string;
16605 return NDR_ERR_SUCCESS;
16608 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
16610 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
16611 ndr->depth++;
16612 ndr_print_ptr(ndr, "port_name", r->port_name);
16613 ndr->depth++;
16614 if (r->port_name) {
16615 ndr_print_string(ndr, "port_name", r->port_name);
16617 ndr->depth--;
16618 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16619 ndr->depth++;
16620 if (r->monitor_name) {
16621 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16623 ndr->depth--;
16624 ndr_print_ptr(ndr, "description", r->description);
16625 ndr->depth++;
16626 if (r->description) {
16627 ndr_print_string(ndr, "description", r->description);
16629 ndr->depth--;
16630 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
16631 ndr_print_uint32(ndr, "reserved", r->reserved);
16632 ndr->depth--;
16635 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16637 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
16640 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
16642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16643 return NDR_ERR_SUCCESS;
16646 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
16648 uint32_t v;
16649 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16650 *r = v;
16651 return NDR_ERR_SUCCESS;
16654 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
16656 const char *val = NULL;
16658 switch (r) {
16659 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
16660 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
16661 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
16662 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
16663 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16664 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
16665 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
16666 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
16667 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
16668 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
16669 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
16670 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
16671 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
16673 ndr_print_enum(ndr, name, "ENUM", val, r);
16676 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
16678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16679 return NDR_ERR_SUCCESS;
16682 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
16684 uint32_t v;
16685 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16686 *r = v;
16687 return NDR_ERR_SUCCESS;
16690 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
16692 const char *val = NULL;
16694 switch (r) {
16695 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
16696 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
16697 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
16699 ndr_print_enum(ndr, name, "ENUM", val, r);
16702 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
16704 if (ndr_flags & NDR_SCALARS) {
16705 NDR_CHECK(ndr_push_align(ndr, 4));
16706 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
16708 uint32_t _flags_save_string = ndr->flags;
16709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16710 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
16711 ndr->flags = _flags_save_string;
16713 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
16715 if (ndr_flags & NDR_BUFFERS) {
16717 uint32_t _flags_save_string = ndr->flags;
16718 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16719 if (r->status_string) {
16720 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->status_string));
16721 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
16722 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->status_string));
16724 ndr->flags = _flags_save_string;
16727 return NDR_ERR_SUCCESS;
16730 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
16732 uint32_t _ptr_status_string;
16733 TALLOC_CTX *_mem_save_status_string_0;
16734 if (ndr_flags & NDR_SCALARS) {
16735 NDR_CHECK(ndr_pull_align(ndr, 4));
16736 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
16738 uint32_t _flags_save_string = ndr->flags;
16739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16740 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
16741 if (_ptr_status_string) {
16742 NDR_PULL_ALLOC(ndr, r->status_string);
16743 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
16744 } else {
16745 r->status_string = NULL;
16747 ndr->flags = _flags_save_string;
16749 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
16751 if (ndr_flags & NDR_BUFFERS) {
16753 uint32_t _flags_save_string = ndr->flags;
16754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16755 if (r->status_string) {
16756 uint32_t _relative_save_offset;
16757 _relative_save_offset = ndr->offset;
16758 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
16759 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
16760 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
16761 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
16762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
16763 ndr->offset = _relative_save_offset;
16765 ndr->flags = _flags_save_string;
16768 return NDR_ERR_SUCCESS;
16771 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
16773 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
16774 ndr->depth++;
16775 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
16776 ndr_print_ptr(ndr, "status_string", r->status_string);
16777 ndr->depth++;
16778 if (r->status_string) {
16779 ndr_print_string(ndr, "status_string", r->status_string);
16781 ndr->depth--;
16782 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
16783 ndr->depth--;
16786 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
16788 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
16791 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
16793 if (ndr_flags & NDR_SCALARS) {
16794 NDR_CHECK(ndr_push_align(ndr, 4));
16796 uint32_t _flags_save_string = ndr->flags;
16797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16798 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16799 ndr->flags = _flags_save_string;
16801 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
16803 if (ndr_flags & NDR_BUFFERS) {
16805 uint32_t _flags_save_string = ndr->flags;
16806 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16807 if (r->port_name) {
16808 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
16809 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16810 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
16812 ndr->flags = _flags_save_string;
16815 return NDR_ERR_SUCCESS;
16818 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
16820 uint32_t _ptr_port_name;
16821 TALLOC_CTX *_mem_save_port_name_0;
16822 if (ndr_flags & NDR_SCALARS) {
16823 NDR_CHECK(ndr_pull_align(ndr, 4));
16825 uint32_t _flags_save_string = ndr->flags;
16826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16828 if (_ptr_port_name) {
16829 NDR_PULL_ALLOC(ndr, r->port_name);
16830 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16831 } else {
16832 r->port_name = NULL;
16834 ndr->flags = _flags_save_string;
16836 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
16838 if (ndr_flags & NDR_BUFFERS) {
16840 uint32_t _flags_save_string = ndr->flags;
16841 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16842 if (r->port_name) {
16843 uint32_t _relative_save_offset;
16844 _relative_save_offset = ndr->offset;
16845 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16846 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16847 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16848 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16850 ndr->offset = _relative_save_offset;
16852 ndr->flags = _flags_save_string;
16855 return NDR_ERR_SUCCESS;
16858 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
16860 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
16861 ndr->depth++;
16862 ndr_print_ptr(ndr, "port_name", r->port_name);
16863 ndr->depth++;
16864 if (r->port_name) {
16865 ndr_print_string(ndr, "port_name", r->port_name);
16867 ndr->depth--;
16868 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
16869 ndr->depth--;
16872 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
16874 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
16877 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
16879 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16881 uint32_t _flags_save_UNION = ndr->flags;
16882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16883 if (ndr_flags & NDR_SCALARS) {
16884 int level = ndr_push_get_switch_value(ndr, r);
16885 switch (level) {
16886 case 1: {
16887 NDR_CHECK(ndr_push_align(ndr, 4));
16888 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16889 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16890 break; }
16892 case 2: {
16893 NDR_CHECK(ndr_push_align(ndr, 4));
16894 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16895 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16896 break; }
16898 case 3: {
16899 NDR_CHECK(ndr_push_align(ndr, 4));
16900 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16901 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16902 break; }
16904 case 0xff: {
16905 NDR_CHECK(ndr_push_align(ndr, 4));
16906 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16907 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16908 break; }
16910 default: {
16911 break; }
16915 if (ndr_flags & NDR_BUFFERS) {
16916 int level = ndr_push_get_switch_value(ndr, r);
16917 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16918 switch (level) {
16919 case 1:
16920 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16921 break;
16923 case 2:
16924 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16925 break;
16927 case 3:
16928 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16929 break;
16931 case 0xff:
16932 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16933 break;
16935 default:
16936 break;
16940 ndr->flags = _flags_save_UNION;
16942 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16943 return NDR_ERR_SUCCESS;
16946 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
16948 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16949 int level;
16951 uint32_t _flags_save_UNION = ndr->flags;
16952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16953 level = ndr_pull_get_switch_value(ndr, r);
16954 if (ndr_flags & NDR_SCALARS) {
16955 switch (level) {
16956 case 1: {
16957 NDR_CHECK(ndr_pull_align(ndr, 4));
16958 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16959 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16960 break; }
16962 case 2: {
16963 NDR_CHECK(ndr_pull_align(ndr, 4));
16964 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16965 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16966 break; }
16968 case 3: {
16969 NDR_CHECK(ndr_pull_align(ndr, 4));
16970 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16971 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16972 break; }
16974 case 0xff: {
16975 NDR_CHECK(ndr_pull_align(ndr, 4));
16976 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16977 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16978 break; }
16980 default: {
16981 break; }
16985 if (ndr_flags & NDR_BUFFERS) {
16986 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16987 switch (level) {
16988 case 1:
16989 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16990 break;
16992 case 2:
16993 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16994 break;
16996 case 3:
16997 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16998 break;
17000 case 0xff:
17001 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17002 break;
17004 default:
17005 break;
17009 ndr->flags = _flags_save_UNION;
17011 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17012 return NDR_ERR_SUCCESS;
17015 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
17017 int level;
17019 uint32_t _flags_save_UNION = ndr->flags;
17020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17021 level = ndr_print_get_switch_value(ndr, r);
17022 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
17023 switch (level) {
17024 case 1:
17025 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
17026 break;
17028 case 2:
17029 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
17030 break;
17032 case 3:
17033 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
17034 break;
17036 case 0xff:
17037 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
17038 break;
17040 default:
17041 break;
17044 ndr->flags = _flags_save_UNION;
17048 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
17050 if (ndr_flags & NDR_SCALARS) {
17051 NDR_CHECK(ndr_push_align(ndr, 4));
17053 uint32_t _flags_save_string = ndr->flags;
17054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17055 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17056 ndr->flags = _flags_save_string;
17059 if (ndr_flags & NDR_BUFFERS) {
17061 uint32_t _flags_save_string = ndr->flags;
17062 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17063 if (r->monitor_name) {
17064 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
17065 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17066 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
17068 ndr->flags = _flags_save_string;
17071 return NDR_ERR_SUCCESS;
17074 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
17076 uint32_t _ptr_monitor_name;
17077 TALLOC_CTX *_mem_save_monitor_name_0;
17078 if (ndr_flags & NDR_SCALARS) {
17079 NDR_CHECK(ndr_pull_align(ndr, 4));
17081 uint32_t _flags_save_string = ndr->flags;
17082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17083 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17084 if (_ptr_monitor_name) {
17085 NDR_PULL_ALLOC(ndr, r->monitor_name);
17086 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17087 } else {
17088 r->monitor_name = NULL;
17090 ndr->flags = _flags_save_string;
17093 if (ndr_flags & NDR_BUFFERS) {
17095 uint32_t _flags_save_string = ndr->flags;
17096 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17097 if (r->monitor_name) {
17098 uint32_t _relative_save_offset;
17099 _relative_save_offset = ndr->offset;
17100 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17101 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17102 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17103 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17105 ndr->offset = _relative_save_offset;
17107 ndr->flags = _flags_save_string;
17110 return NDR_ERR_SUCCESS;
17113 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
17115 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
17116 ndr->depth++;
17117 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17118 ndr->depth++;
17119 if (r->monitor_name) {
17120 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17122 ndr->depth--;
17123 ndr->depth--;
17126 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17128 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
17131 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
17133 if (ndr_flags & NDR_SCALARS) {
17134 NDR_CHECK(ndr_push_align(ndr, 4));
17136 uint32_t _flags_save_string = ndr->flags;
17137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17138 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17139 ndr->flags = _flags_save_string;
17142 uint32_t _flags_save_string = ndr->flags;
17143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17144 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
17145 ndr->flags = _flags_save_string;
17148 uint32_t _flags_save_string = ndr->flags;
17149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17150 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
17151 ndr->flags = _flags_save_string;
17154 if (ndr_flags & NDR_BUFFERS) {
17156 uint32_t _flags_save_string = ndr->flags;
17157 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17158 if (r->monitor_name) {
17159 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
17160 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17161 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
17163 ndr->flags = _flags_save_string;
17166 uint32_t _flags_save_string = ndr->flags;
17167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17168 if (r->environment) {
17169 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->environment));
17170 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
17171 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->environment));
17173 ndr->flags = _flags_save_string;
17176 uint32_t _flags_save_string = ndr->flags;
17177 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17178 if (r->dll_name) {
17179 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dll_name));
17180 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
17181 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dll_name));
17183 ndr->flags = _flags_save_string;
17186 return NDR_ERR_SUCCESS;
17189 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
17191 uint32_t _ptr_monitor_name;
17192 TALLOC_CTX *_mem_save_monitor_name_0;
17193 uint32_t _ptr_environment;
17194 TALLOC_CTX *_mem_save_environment_0;
17195 uint32_t _ptr_dll_name;
17196 TALLOC_CTX *_mem_save_dll_name_0;
17197 if (ndr_flags & NDR_SCALARS) {
17198 NDR_CHECK(ndr_pull_align(ndr, 4));
17200 uint32_t _flags_save_string = ndr->flags;
17201 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17202 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17203 if (_ptr_monitor_name) {
17204 NDR_PULL_ALLOC(ndr, r->monitor_name);
17205 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17206 } else {
17207 r->monitor_name = NULL;
17209 ndr->flags = _flags_save_string;
17212 uint32_t _flags_save_string = ndr->flags;
17213 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17214 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17215 if (_ptr_environment) {
17216 NDR_PULL_ALLOC(ndr, r->environment);
17217 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
17218 } else {
17219 r->environment = NULL;
17221 ndr->flags = _flags_save_string;
17224 uint32_t _flags_save_string = ndr->flags;
17225 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17226 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
17227 if (_ptr_dll_name) {
17228 NDR_PULL_ALLOC(ndr, r->dll_name);
17229 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
17230 } else {
17231 r->dll_name = NULL;
17233 ndr->flags = _flags_save_string;
17236 if (ndr_flags & NDR_BUFFERS) {
17238 uint32_t _flags_save_string = ndr->flags;
17239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17240 if (r->monitor_name) {
17241 uint32_t _relative_save_offset;
17242 _relative_save_offset = ndr->offset;
17243 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17244 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17245 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17246 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17248 ndr->offset = _relative_save_offset;
17250 ndr->flags = _flags_save_string;
17253 uint32_t _flags_save_string = ndr->flags;
17254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17255 if (r->environment) {
17256 uint32_t _relative_save_offset;
17257 _relative_save_offset = ndr->offset;
17258 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
17259 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
17260 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
17261 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
17262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
17263 ndr->offset = _relative_save_offset;
17265 ndr->flags = _flags_save_string;
17268 uint32_t _flags_save_string = ndr->flags;
17269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17270 if (r->dll_name) {
17271 uint32_t _relative_save_offset;
17272 _relative_save_offset = ndr->offset;
17273 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
17274 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17275 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
17276 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
17277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
17278 ndr->offset = _relative_save_offset;
17280 ndr->flags = _flags_save_string;
17283 return NDR_ERR_SUCCESS;
17286 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
17288 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
17289 ndr->depth++;
17290 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17291 ndr->depth++;
17292 if (r->monitor_name) {
17293 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17295 ndr->depth--;
17296 ndr_print_ptr(ndr, "environment", r->environment);
17297 ndr->depth++;
17298 if (r->environment) {
17299 ndr_print_string(ndr, "environment", r->environment);
17301 ndr->depth--;
17302 ndr_print_ptr(ndr, "dll_name", r->dll_name);
17303 ndr->depth++;
17304 if (r->dll_name) {
17305 ndr_print_string(ndr, "dll_name", r->dll_name);
17307 ndr->depth--;
17308 ndr->depth--;
17311 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17313 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
17316 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
17318 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17320 uint32_t _flags_save_UNION = ndr->flags;
17321 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17322 if (ndr_flags & NDR_SCALARS) {
17323 int level = ndr_push_get_switch_value(ndr, r);
17324 switch (level) {
17325 case 1: {
17326 NDR_CHECK(ndr_push_align(ndr, 4));
17327 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17328 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17329 break; }
17331 case 2: {
17332 NDR_CHECK(ndr_push_align(ndr, 4));
17333 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17334 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17335 break; }
17337 default: {
17338 break; }
17342 if (ndr_flags & NDR_BUFFERS) {
17343 int level = ndr_push_get_switch_value(ndr, r);
17344 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17345 switch (level) {
17346 case 1:
17347 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17348 break;
17350 case 2:
17351 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17352 break;
17354 default:
17355 break;
17359 ndr->flags = _flags_save_UNION;
17361 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17362 return NDR_ERR_SUCCESS;
17365 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
17367 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17368 int level;
17370 uint32_t _flags_save_UNION = ndr->flags;
17371 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17372 level = ndr_pull_get_switch_value(ndr, r);
17373 if (ndr_flags & NDR_SCALARS) {
17374 switch (level) {
17375 case 1: {
17376 NDR_CHECK(ndr_pull_align(ndr, 4));
17377 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17378 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17379 break; }
17381 case 2: {
17382 NDR_CHECK(ndr_pull_align(ndr, 4));
17383 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17384 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17385 break; }
17387 default: {
17388 break; }
17392 if (ndr_flags & NDR_BUFFERS) {
17393 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17394 switch (level) {
17395 case 1:
17396 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17397 break;
17399 case 2:
17400 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17401 break;
17403 default:
17404 break;
17408 ndr->flags = _flags_save_UNION;
17410 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17411 return NDR_ERR_SUCCESS;
17414 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
17416 int level;
17418 uint32_t _flags_save_UNION = ndr->flags;
17419 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17420 level = ndr_print_get_switch_value(ndr, r);
17421 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
17422 switch (level) {
17423 case 1:
17424 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
17425 break;
17427 case 2:
17428 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
17429 break;
17431 default:
17432 break;
17435 ndr->flags = _flags_save_UNION;
17439 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
17441 if (ndr_flags & NDR_SCALARS) {
17442 NDR_CHECK(ndr_push_align(ndr, 4));
17444 uint32_t _flags_save_string = ndr->flags;
17445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17446 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
17447 ndr->flags = _flags_save_string;
17450 if (ndr_flags & NDR_BUFFERS) {
17452 uint32_t _flags_save_string = ndr->flags;
17453 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17454 if (r->name_array) {
17455 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name_array));
17456 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
17457 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name_array));
17459 ndr->flags = _flags_save_string;
17462 return NDR_ERR_SUCCESS;
17465 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
17467 uint32_t _ptr_name_array;
17468 TALLOC_CTX *_mem_save_name_array_0;
17469 if (ndr_flags & NDR_SCALARS) {
17470 NDR_CHECK(ndr_pull_align(ndr, 4));
17472 uint32_t _flags_save_string = ndr->flags;
17473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
17475 if (_ptr_name_array) {
17476 NDR_PULL_ALLOC(ndr, r->name_array);
17477 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
17478 } else {
17479 r->name_array = NULL;
17481 ndr->flags = _flags_save_string;
17484 if (ndr_flags & NDR_BUFFERS) {
17486 uint32_t _flags_save_string = ndr->flags;
17487 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17488 if (r->name_array) {
17489 uint32_t _relative_save_offset;
17490 _relative_save_offset = ndr->offset;
17491 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
17492 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
17493 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
17494 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
17495 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
17496 ndr->offset = _relative_save_offset;
17498 ndr->flags = _flags_save_string;
17501 return NDR_ERR_SUCCESS;
17504 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
17506 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
17507 ndr->depth++;
17508 ndr_print_ptr(ndr, "name_array", r->name_array);
17509 ndr->depth++;
17510 if (r->name_array) {
17511 ndr_print_string(ndr, "name_array", r->name_array);
17513 ndr->depth--;
17514 ndr->depth--;
17517 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17519 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
17522 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
17524 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17526 uint32_t _flags_save_UNION = ndr->flags;
17527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17528 if (ndr_flags & NDR_SCALARS) {
17529 int level = ndr_push_get_switch_value(ndr, r);
17530 switch (level) {
17531 case 1: {
17532 NDR_CHECK(ndr_push_align(ndr, 4));
17533 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17534 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17535 break; }
17537 default: {
17538 break; }
17542 if (ndr_flags & NDR_BUFFERS) {
17543 int level = ndr_push_get_switch_value(ndr, r);
17544 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17545 switch (level) {
17546 case 1:
17547 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17548 break;
17550 default:
17551 break;
17555 ndr->flags = _flags_save_UNION;
17557 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17558 return NDR_ERR_SUCCESS;
17561 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
17563 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17564 int level;
17566 uint32_t _flags_save_UNION = ndr->flags;
17567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17568 level = ndr_pull_get_switch_value(ndr, r);
17569 if (ndr_flags & NDR_SCALARS) {
17570 switch (level) {
17571 case 1: {
17572 NDR_CHECK(ndr_pull_align(ndr, 4));
17573 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17574 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17575 break; }
17577 default: {
17578 break; }
17582 if (ndr_flags & NDR_BUFFERS) {
17583 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17584 switch (level) {
17585 case 1:
17586 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17587 break;
17589 default:
17590 break;
17594 ndr->flags = _flags_save_UNION;
17596 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17597 return NDR_ERR_SUCCESS;
17600 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
17602 int level;
17604 uint32_t _flags_save_UNION = ndr->flags;
17605 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17606 level = ndr_print_get_switch_value(ndr, r);
17607 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
17608 switch (level) {
17609 case 1:
17610 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
17611 break;
17613 default:
17614 break;
17617 ndr->flags = _flags_save_UNION;
17621 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17624 return NDR_ERR_SUCCESS;
17627 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17629 uint32_t v;
17630 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17631 *r = v;
17632 return NDR_ERR_SUCCESS;
17635 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17637 ndr_print_uint32(ndr, name, r);
17638 ndr->depth++;
17639 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
17640 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
17641 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
17642 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
17643 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
17644 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
17645 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
17646 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
17647 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
17648 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
17649 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
17650 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
17651 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
17652 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
17653 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
17654 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
17655 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
17656 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
17657 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
17658 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
17659 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
17660 ndr->depth--;
17663 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
17665 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17666 return NDR_ERR_SUCCESS;
17669 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
17671 uint16_t v;
17672 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17673 *r = v;
17674 return NDR_ERR_SUCCESS;
17677 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
17679 const char *val = NULL;
17681 switch (r) {
17682 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
17683 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
17684 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
17685 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
17686 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
17687 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
17688 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17689 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
17690 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
17691 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
17692 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
17693 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
17694 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17695 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
17696 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
17697 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
17698 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
17699 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
17700 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
17701 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
17702 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
17703 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
17704 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
17705 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
17707 ndr_print_enum(ndr, name, "ENUM", val, r);
17710 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
17712 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17713 return NDR_ERR_SUCCESS;
17716 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
17718 uint16_t v;
17719 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17720 *r = v;
17721 return NDR_ERR_SUCCESS;
17724 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
17726 const char *val = NULL;
17728 switch (r) {
17729 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
17730 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
17731 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
17732 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
17733 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
17734 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
17735 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
17736 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
17737 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
17738 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17739 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
17740 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
17741 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17742 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
17743 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
17744 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
17745 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
17746 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
17747 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
17748 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
17749 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
17750 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
17751 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
17752 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
17753 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
17754 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
17755 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
17756 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
17758 ndr_print_enum(ndr, name, "ENUM", val, r);
17761 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
17763 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17764 return NDR_ERR_SUCCESS;
17767 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
17769 uint16_t v;
17770 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17771 *r = v;
17772 return NDR_ERR_SUCCESS;
17775 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
17777 const char *val = NULL;
17779 switch (r) {
17780 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
17781 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
17783 ndr_print_enum(ndr, name, "ENUM", val, r);
17786 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
17788 if (ndr_flags & NDR_SCALARS) {
17789 int level = ndr_push_get_switch_value(ndr, r);
17790 switch (level) {
17791 case PRINTER_NOTIFY_TYPE: {
17792 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17793 break; }
17795 case JOB_NOTIFY_TYPE: {
17796 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17797 break; }
17799 default: {
17800 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17801 break; }
17805 if (ndr_flags & NDR_BUFFERS) {
17806 int level = ndr_push_get_switch_value(ndr, r);
17807 switch (level) {
17808 case PRINTER_NOTIFY_TYPE:
17809 break;
17811 case JOB_NOTIFY_TYPE:
17812 break;
17814 default:
17815 break;
17819 return NDR_ERR_SUCCESS;
17822 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
17824 int level;
17825 level = ndr_pull_get_switch_value(ndr, r);
17826 if (ndr_flags & NDR_SCALARS) {
17827 switch (level) {
17828 case PRINTER_NOTIFY_TYPE: {
17829 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17830 break; }
17832 case JOB_NOTIFY_TYPE: {
17833 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17834 break; }
17836 default: {
17837 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17838 break; }
17842 if (ndr_flags & NDR_BUFFERS) {
17843 switch (level) {
17844 case PRINTER_NOTIFY_TYPE:
17845 break;
17847 case JOB_NOTIFY_TYPE:
17848 break;
17850 default:
17851 break;
17855 return NDR_ERR_SUCCESS;
17858 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
17860 uint32_t cntr_fields_1;
17861 if (ndr_flags & NDR_SCALARS) {
17862 NDR_CHECK(ndr_push_align(ndr, 4));
17863 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17864 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
17865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
17866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
17867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17868 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
17870 if (ndr_flags & NDR_BUFFERS) {
17871 if (r->fields) {
17872 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17873 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17874 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
17875 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17879 return NDR_ERR_SUCCESS;
17882 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
17884 uint32_t _ptr_fields;
17885 uint32_t size_fields_1 = 0;
17886 uint32_t cntr_fields_1;
17887 TALLOC_CTX *_mem_save_fields_0;
17888 TALLOC_CTX *_mem_save_fields_1;
17889 if (ndr_flags & NDR_SCALARS) {
17890 NDR_CHECK(ndr_pull_align(ndr, 4));
17891 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17892 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
17893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
17894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
17895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17896 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
17897 if (_ptr_fields) {
17898 NDR_PULL_ALLOC(ndr, r->fields);
17899 } else {
17900 r->fields = NULL;
17903 if (ndr_flags & NDR_BUFFERS) {
17904 if (r->fields) {
17905 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
17906 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17907 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
17908 size_fields_1 = ndr_get_array_size(ndr, &r->fields);
17909 NDR_PULL_ALLOC_N(ndr, r->fields, size_fields_1);
17910 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
17911 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17912 for (cntr_fields_1 = 0; cntr_fields_1 < size_fields_1; cntr_fields_1++) {
17913 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
17914 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
17917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
17919 if (r->fields) {
17920 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
17923 return NDR_ERR_SUCCESS;
17926 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
17928 uint32_t cntr_fields_1;
17929 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
17930 ndr->depth++;
17931 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17932 ndr_print_uint16(ndr, "u1", r->u1);
17933 ndr_print_uint32(ndr, "u2", r->u2);
17934 ndr_print_uint32(ndr, "u3", r->u3);
17935 ndr_print_uint32(ndr, "count", r->count);
17936 ndr_print_ptr(ndr, "fields", r->fields);
17937 ndr->depth++;
17938 if (r->fields) {
17939 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
17940 ndr->depth++;
17941 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
17942 char *idx_1=NULL;
17943 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
17944 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
17945 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
17946 free(idx_1);
17949 ndr->depth--;
17951 ndr->depth--;
17952 ndr->depth--;
17955 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17957 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17958 return NDR_ERR_SUCCESS;
17961 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17963 uint32_t v;
17964 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17965 *r = v;
17966 return NDR_ERR_SUCCESS;
17969 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17971 ndr_print_uint32(ndr, name, r);
17972 ndr->depth++;
17973 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
17974 ndr->depth--;
17977 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
17979 uint32_t cntr_types_1;
17980 if (ndr_flags & NDR_SCALARS) {
17981 NDR_CHECK(ndr_push_align(ndr, 4));
17982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17983 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
17984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17985 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
17987 if (ndr_flags & NDR_BUFFERS) {
17988 if (r->types) {
17989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17990 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17991 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17993 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17994 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17998 return NDR_ERR_SUCCESS;
18001 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
18003 uint32_t _ptr_types;
18004 uint32_t size_types_1 = 0;
18005 uint32_t cntr_types_1;
18006 TALLOC_CTX *_mem_save_types_0;
18007 TALLOC_CTX *_mem_save_types_1;
18008 if (ndr_flags & NDR_SCALARS) {
18009 NDR_CHECK(ndr_pull_align(ndr, 4));
18010 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18011 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
18012 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18013 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
18014 if (_ptr_types) {
18015 NDR_PULL_ALLOC(ndr, r->types);
18016 } else {
18017 r->types = NULL;
18020 if (ndr_flags & NDR_BUFFERS) {
18021 if (r->types) {
18022 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
18023 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18024 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
18025 size_types_1 = ndr_get_array_size(ndr, &r->types);
18026 NDR_PULL_ALLOC_N(ndr, r->types, size_types_1);
18027 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
18028 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18029 for (cntr_types_1 = 0; cntr_types_1 < size_types_1; cntr_types_1++) {
18030 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18032 for (cntr_types_1 = 0; cntr_types_1 < size_types_1; cntr_types_1++) {
18033 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
18036 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
18038 if (r->types) {
18039 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
18042 return NDR_ERR_SUCCESS;
18045 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
18047 uint32_t cntr_types_1;
18048 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
18049 ndr->depth++;
18050 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18051 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
18052 ndr_print_uint32(ndr, "count", r->count);
18053 ndr_print_ptr(ndr, "types", r->types);
18054 ndr->depth++;
18055 if (r->types) {
18056 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
18057 ndr->depth++;
18058 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
18059 char *idx_1=NULL;
18060 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
18061 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
18062 free(idx_1);
18065 ndr->depth--;
18067 ndr->depth--;
18068 ndr->depth--;
18071 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
18073 if (ndr_flags & NDR_SCALARS) {
18074 NDR_CHECK(ndr_push_align(ndr, 4));
18075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18076 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
18078 if (ndr_flags & NDR_BUFFERS) {
18079 if (r->string) {
18080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
18081 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
18084 return NDR_ERR_SUCCESS;
18087 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
18089 uint32_t _ptr_string;
18090 uint32_t size_string_1 = 0;
18091 TALLOC_CTX *_mem_save_string_0;
18092 if (ndr_flags & NDR_SCALARS) {
18093 NDR_CHECK(ndr_pull_align(ndr, 4));
18094 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18095 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
18096 if (_ptr_string) {
18097 NDR_PULL_ALLOC(ndr, r->string);
18098 } else {
18099 r->string = NULL;
18102 if (ndr_flags & NDR_BUFFERS) {
18103 if (r->string) {
18104 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
18105 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
18106 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
18107 size_string_1 = ndr_get_array_size(ndr, &r->string);
18108 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, size_string_1, sizeof(uint16_t), CH_UTF16));
18109 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
18111 if (r->string) {
18112 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
18115 return NDR_ERR_SUCCESS;
18118 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
18120 ndr_print_struct(ndr, name, "spoolss_NotifyString");
18121 ndr->depth++;
18122 ndr_print_uint32(ndr, "size", r->size);
18123 ndr_print_ptr(ndr, "string", r->string);
18124 ndr->depth++;
18125 if (r->string) {
18126 ndr_print_string(ndr, "string", r->string);
18128 ndr->depth--;
18129 ndr->depth--;
18132 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
18134 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18135 return NDR_ERR_SUCCESS;
18138 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
18140 uint32_t v;
18141 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18142 *r = v;
18143 return NDR_ERR_SUCCESS;
18146 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
18148 const char *val = NULL;
18150 switch (r) {
18151 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
18152 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
18153 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
18154 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
18155 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
18157 ndr_print_enum(ndr, name, "ENUM", val, r);
18160 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
18162 if (ndr_flags & NDR_SCALARS) {
18163 int level = ndr_push_get_switch_value(ndr, r);
18164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18165 switch (level) {
18166 case 1: {
18167 uint32_t cntr_integer_0;
18168 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
18171 break; }
18173 case 2: {
18174 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18175 break; }
18177 case 3: {
18178 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18179 break; }
18181 case 4: {
18182 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18183 break; }
18185 case 5: {
18186 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18187 break; }
18189 default:
18190 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18193 if (ndr_flags & NDR_BUFFERS) {
18194 int level = ndr_push_get_switch_value(ndr, r);
18195 switch (level) {
18196 case 1:
18197 break;
18199 case 2:
18200 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18201 break;
18203 case 3:
18204 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18205 break;
18207 case 4:
18208 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18209 break;
18211 case 5:
18212 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18213 break;
18215 default:
18216 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18219 return NDR_ERR_SUCCESS;
18222 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
18224 int level;
18225 uint32_t _level;
18226 uint32_t size_integer_0 = 0;
18227 uint32_t cntr_integer_0;
18228 level = ndr_pull_get_switch_value(ndr, r);
18229 if (ndr_flags & NDR_SCALARS) {
18230 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18231 if (_level != level) {
18232 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
18234 switch (level) {
18235 case 1: {
18236 size_integer_0 = 2;
18237 for (cntr_integer_0 = 0; cntr_integer_0 < size_integer_0; cntr_integer_0++) {
18238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
18240 break; }
18242 case 2: {
18243 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18244 break; }
18246 case 3: {
18247 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18248 break; }
18250 case 4: {
18251 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18252 break; }
18254 case 5: {
18255 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18256 break; }
18258 default:
18259 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18262 if (ndr_flags & NDR_BUFFERS) {
18263 switch (level) {
18264 case 1:
18265 break;
18267 case 2:
18268 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18269 break;
18271 case 3:
18272 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18273 break;
18275 case 4:
18276 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18277 break;
18279 case 5:
18280 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18281 break;
18283 default:
18284 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18287 return NDR_ERR_SUCCESS;
18290 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
18292 int level;
18293 uint32_t cntr_integer_0;
18294 level = ndr_print_get_switch_value(ndr, r);
18295 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
18296 switch (level) {
18297 case 1:
18298 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
18299 ndr->depth++;
18300 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
18301 char *idx_0=NULL;
18302 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
18303 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
18304 free(idx_0);
18307 ndr->depth--;
18308 break;
18310 case 2:
18311 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
18312 break;
18314 case 3:
18315 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
18316 break;
18318 case 4:
18319 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
18320 break;
18322 case 5:
18323 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
18324 break;
18326 default:
18327 ndr_print_bad_level(ndr, name, level);
18331 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
18333 if (ndr_flags & NDR_SCALARS) {
18334 NDR_CHECK(ndr_push_align(ndr, 4));
18335 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18336 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
18337 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18338 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
18339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
18340 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
18341 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18343 if (ndr_flags & NDR_BUFFERS) {
18344 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18346 return NDR_ERR_SUCCESS;
18349 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
18351 if (ndr_flags & NDR_SCALARS) {
18352 NDR_CHECK(ndr_pull_align(ndr, 4));
18353 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18354 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
18355 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18356 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
18357 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
18358 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
18359 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18361 if (ndr_flags & NDR_BUFFERS) {
18362 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18364 return NDR_ERR_SUCCESS;
18367 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
18369 ndr_print_struct(ndr, name, "spoolss_Notify");
18370 ndr->depth++;
18371 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18372 ndr_print_set_switch_value(ndr, &r->field, r->type);
18373 ndr_print_spoolss_Field(ndr, "field", &r->field);
18374 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
18375 ndr_print_uint32(ndr, "job_id", r->job_id);
18376 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
18377 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
18378 ndr->depth--;
18381 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
18383 uint32_t cntr_notifies_0;
18384 if (ndr_flags & NDR_SCALARS) {
18385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18386 NDR_CHECK(ndr_push_align(ndr, 4));
18387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18390 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18391 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18394 if (ndr_flags & NDR_BUFFERS) {
18395 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18396 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18399 return NDR_ERR_SUCCESS;
18402 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
18404 uint32_t size_notifies_0 = 0;
18405 uint32_t cntr_notifies_0;
18406 TALLOC_CTX *_mem_save_notifies_0;
18407 if (ndr_flags & NDR_SCALARS) {
18408 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
18409 NDR_CHECK(ndr_pull_align(ndr, 4));
18410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18413 size_notifies_0 = ndr_get_array_size(ndr, &r->notifies);
18414 NDR_PULL_ALLOC_N(ndr, r->notifies, size_notifies_0);
18415 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18416 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18417 for (cntr_notifies_0 = 0; cntr_notifies_0 < size_notifies_0; cntr_notifies_0++) {
18418 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18421 if (r->notifies) {
18422 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
18425 if (ndr_flags & NDR_BUFFERS) {
18426 size_notifies_0 = ndr_get_array_size(ndr, &r->notifies);
18427 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18428 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18429 for (cntr_notifies_0 = 0; cntr_notifies_0 < size_notifies_0; cntr_notifies_0++) {
18430 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18434 return NDR_ERR_SUCCESS;
18437 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
18439 uint32_t cntr_notifies_0;
18440 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
18441 ndr->depth++;
18442 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18443 ndr_print_uint32(ndr, "flags", r->flags);
18444 ndr_print_uint32(ndr, "count", r->count);
18445 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
18446 ndr->depth++;
18447 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
18448 char *idx_0=NULL;
18449 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
18450 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
18451 free(idx_0);
18454 ndr->depth--;
18455 ndr->depth--;
18458 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
18460 if (ndr_flags & NDR_SCALARS) {
18461 int level = ndr_push_get_switch_value(ndr, r);
18462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18463 switch (level) {
18464 case 0: {
18465 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
18466 break; }
18468 default:
18469 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18472 if (ndr_flags & NDR_BUFFERS) {
18473 int level = ndr_push_get_switch_value(ndr, r);
18474 switch (level) {
18475 case 0:
18476 if (r->info0) {
18477 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18479 break;
18481 default:
18482 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18485 return NDR_ERR_SUCCESS;
18488 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
18490 int level;
18491 uint32_t _level;
18492 TALLOC_CTX *_mem_save_info0_0;
18493 uint32_t _ptr_info0;
18494 level = ndr_pull_get_switch_value(ndr, r);
18495 if (ndr_flags & NDR_SCALARS) {
18496 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18497 if (_level != level) {
18498 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
18500 switch (level) {
18501 case 0: {
18502 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
18503 if (_ptr_info0) {
18504 NDR_PULL_ALLOC(ndr, r->info0);
18505 } else {
18506 r->info0 = NULL;
18508 break; }
18510 default:
18511 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18514 if (ndr_flags & NDR_BUFFERS) {
18515 switch (level) {
18516 case 0:
18517 if (r->info0) {
18518 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
18519 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
18520 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
18523 break;
18525 default:
18526 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18529 return NDR_ERR_SUCCESS;
18532 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
18534 int level;
18535 level = ndr_print_get_switch_value(ndr, r);
18536 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
18537 switch (level) {
18538 case 0:
18539 ndr_print_ptr(ndr, "info0", r->info0);
18540 ndr->depth++;
18541 if (r->info0) {
18542 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
18544 ndr->depth--;
18545 break;
18547 default:
18548 ndr_print_bad_level(ndr, name, level);
18552 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18555 return NDR_ERR_SUCCESS;
18558 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18560 uint32_t v;
18561 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18562 *r = v;
18563 return NDR_ERR_SUCCESS;
18566 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18568 ndr_print_uint32(ndr, name, r);
18569 ndr->depth++;
18570 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
18571 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
18572 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
18573 ndr->depth--;
18576 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
18578 if (ndr_flags & NDR_SCALARS) {
18579 NDR_CHECK(ndr_push_align(ndr, 4));
18580 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18581 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18582 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18583 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18584 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18585 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18586 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18588 if (ndr_flags & NDR_BUFFERS) {
18589 if (r->client) {
18590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18593 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18595 if (r->user) {
18596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18599 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18602 return NDR_ERR_SUCCESS;
18605 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
18607 uint32_t _ptr_client;
18608 uint32_t size_client_1 = 0;
18609 uint32_t length_client_1 = 0;
18610 TALLOC_CTX *_mem_save_client_0;
18611 uint32_t _ptr_user;
18612 uint32_t size_user_1 = 0;
18613 uint32_t length_user_1 = 0;
18614 TALLOC_CTX *_mem_save_user_0;
18615 if (ndr_flags & NDR_SCALARS) {
18616 NDR_CHECK(ndr_pull_align(ndr, 4));
18617 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18618 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18619 if (_ptr_client) {
18620 NDR_PULL_ALLOC(ndr, r->client);
18621 } else {
18622 r->client = NULL;
18624 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
18625 if (_ptr_user) {
18626 NDR_PULL_ALLOC(ndr, r->user);
18627 } else {
18628 r->user = NULL;
18630 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
18631 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
18632 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
18633 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
18635 if (ndr_flags & NDR_BUFFERS) {
18636 if (r->client) {
18637 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
18638 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18639 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18640 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18641 size_client_1 = ndr_get_array_size(ndr, &r->client);
18642 length_client_1 = ndr_get_array_length(ndr, &r->client);
18643 if (length_client_1 > size_client_1) {
18644 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_1, length_client_1);
18646 NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t)));
18647 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, length_client_1, sizeof(uint16_t), CH_UTF16));
18648 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18650 if (r->user) {
18651 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
18652 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18653 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18654 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18655 size_user_1 = ndr_get_array_size(ndr, &r->user);
18656 length_user_1 = ndr_get_array_length(ndr, &r->user);
18657 if (length_user_1 > size_user_1) {
18658 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1);
18660 NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t)));
18661 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16));
18662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18665 return NDR_ERR_SUCCESS;
18668 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
18670 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
18671 ndr->depth++;
18672 ndr_print_uint32(ndr, "size", r->size);
18673 ndr_print_ptr(ndr, "client", r->client);
18674 ndr->depth++;
18675 if (r->client) {
18676 ndr_print_string(ndr, "client", r->client);
18678 ndr->depth--;
18679 ndr_print_ptr(ndr, "user", r->user);
18680 ndr->depth++;
18681 if (r->user) {
18682 ndr_print_string(ndr, "user", r->user);
18684 ndr->depth--;
18685 ndr_print_uint32(ndr, "build", r->build);
18686 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
18687 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
18688 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
18689 ndr->depth--;
18692 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
18694 if (ndr_flags & NDR_SCALARS) {
18695 NDR_CHECK(ndr_push_align(ndr, 4));
18696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
18698 if (ndr_flags & NDR_BUFFERS) {
18700 return NDR_ERR_SUCCESS;
18703 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
18705 if (ndr_flags & NDR_SCALARS) {
18706 NDR_CHECK(ndr_pull_align(ndr, 4));
18707 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
18709 if (ndr_flags & NDR_BUFFERS) {
18711 return NDR_ERR_SUCCESS;
18714 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
18716 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
18717 ndr->depth++;
18718 ndr_print_uint32(ndr, "not_used", r->not_used);
18719 ndr->depth--;
18722 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
18724 if (ndr_flags & NDR_SCALARS) {
18725 NDR_CHECK(ndr_push_align(ndr, 4));
18726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
18729 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18730 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18732 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18733 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18734 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18735 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
18737 if (ndr_flags & NDR_BUFFERS) {
18738 if (r->client) {
18739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18742 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18744 if (r->user) {
18745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18748 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18751 return NDR_ERR_SUCCESS;
18754 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
18756 uint32_t _ptr_client;
18757 uint32_t size_client_1 = 0;
18758 uint32_t length_client_1 = 0;
18759 TALLOC_CTX *_mem_save_client_0;
18760 uint32_t _ptr_user;
18761 uint32_t size_user_1 = 0;
18762 uint32_t length_user_1 = 0;
18763 TALLOC_CTX *_mem_save_user_0;
18764 if (ndr_flags & NDR_SCALARS) {
18765 NDR_CHECK(ndr_pull_align(ndr, 4));
18766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18767 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18768 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
18769 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18770 if (_ptr_client) {
18771 NDR_PULL_ALLOC(ndr, r->client);
18772 } else {
18773 r->client = NULL;
18775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
18776 if (_ptr_user) {
18777 NDR_PULL_ALLOC(ndr, r->user);
18778 } else {
18779 r->user = NULL;
18781 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
18782 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
18783 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
18784 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
18785 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
18787 if (ndr_flags & NDR_BUFFERS) {
18788 if (r->client) {
18789 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
18790 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18791 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18792 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18793 size_client_1 = ndr_get_array_size(ndr, &r->client);
18794 length_client_1 = ndr_get_array_length(ndr, &r->client);
18795 if (length_client_1 > size_client_1) {
18796 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_1, length_client_1);
18798 NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t)));
18799 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, length_client_1, sizeof(uint16_t), CH_UTF16));
18800 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18802 if (r->user) {
18803 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
18804 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18805 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18806 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18807 size_user_1 = ndr_get_array_size(ndr, &r->user);
18808 length_user_1 = ndr_get_array_length(ndr, &r->user);
18809 if (length_user_1 > size_user_1) {
18810 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1);
18812 NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t)));
18813 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16));
18814 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18817 return NDR_ERR_SUCCESS;
18820 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
18822 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
18823 ndr->depth++;
18824 ndr_print_uint32(ndr, "size", r->size);
18825 ndr_print_uint32(ndr, "flags", r->flags);
18826 ndr_print_uint32(ndr, "size2", r->size2);
18827 ndr_print_ptr(ndr, "client", r->client);
18828 ndr->depth++;
18829 if (r->client) {
18830 ndr_print_string(ndr, "client", r->client);
18832 ndr->depth--;
18833 ndr_print_ptr(ndr, "user", r->user);
18834 ndr->depth++;
18835 if (r->user) {
18836 ndr_print_string(ndr, "user", r->user);
18838 ndr->depth--;
18839 ndr_print_uint32(ndr, "build", r->build);
18840 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
18841 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
18842 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
18843 ndr_print_udlong(ndr, "reserved", r->reserved);
18844 ndr->depth--;
18847 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
18849 if (ndr_flags & NDR_SCALARS) {
18850 int level = ndr_push_get_switch_value(ndr, r);
18851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18852 switch (level) {
18853 case 1: {
18854 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
18855 break; }
18857 case 2: {
18858 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
18859 break; }
18861 case 3: {
18862 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
18863 break; }
18865 default:
18866 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18869 if (ndr_flags & NDR_BUFFERS) {
18870 int level = ndr_push_get_switch_value(ndr, r);
18871 switch (level) {
18872 case 1:
18873 if (r->level1) {
18874 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18876 break;
18878 case 2:
18879 if (r->level2) {
18880 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18882 break;
18884 case 3:
18885 if (r->level3) {
18886 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18888 break;
18890 default:
18891 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18894 return NDR_ERR_SUCCESS;
18897 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
18899 int level;
18900 uint32_t _level;
18901 TALLOC_CTX *_mem_save_level1_0;
18902 uint32_t _ptr_level1;
18903 TALLOC_CTX *_mem_save_level2_0;
18904 uint32_t _ptr_level2;
18905 TALLOC_CTX *_mem_save_level3_0;
18906 uint32_t _ptr_level3;
18907 level = ndr_pull_get_switch_value(ndr, r);
18908 if (ndr_flags & NDR_SCALARS) {
18909 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18910 if (_level != level) {
18911 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
18913 switch (level) {
18914 case 1: {
18915 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
18916 if (_ptr_level1) {
18917 NDR_PULL_ALLOC(ndr, r->level1);
18918 } else {
18919 r->level1 = NULL;
18921 break; }
18923 case 2: {
18924 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
18925 if (_ptr_level2) {
18926 NDR_PULL_ALLOC(ndr, r->level2);
18927 } else {
18928 r->level2 = NULL;
18930 break; }
18932 case 3: {
18933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
18934 if (_ptr_level3) {
18935 NDR_PULL_ALLOC(ndr, r->level3);
18936 } else {
18937 r->level3 = NULL;
18939 break; }
18941 default:
18942 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18945 if (ndr_flags & NDR_BUFFERS) {
18946 switch (level) {
18947 case 1:
18948 if (r->level1) {
18949 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
18950 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
18951 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
18954 break;
18956 case 2:
18957 if (r->level2) {
18958 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
18959 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
18960 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
18963 break;
18965 case 3:
18966 if (r->level3) {
18967 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
18968 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
18969 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
18972 break;
18974 default:
18975 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18978 return NDR_ERR_SUCCESS;
18981 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
18983 int level;
18984 level = ndr_print_get_switch_value(ndr, r);
18985 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
18986 switch (level) {
18987 case 1:
18988 ndr_print_ptr(ndr, "level1", r->level1);
18989 ndr->depth++;
18990 if (r->level1) {
18991 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
18993 ndr->depth--;
18994 break;
18996 case 2:
18997 ndr_print_ptr(ndr, "level2", r->level2);
18998 ndr->depth++;
18999 if (r->level2) {
19000 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
19002 ndr->depth--;
19003 break;
19005 case 3:
19006 ndr_print_ptr(ndr, "level3", r->level3);
19007 ndr->depth++;
19008 if (r->level3) {
19009 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
19011 ndr->depth--;
19012 break;
19014 default:
19015 ndr_print_bad_level(ndr, name, level);
19019 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
19021 if (ndr_flags & NDR_SCALARS) {
19022 NDR_CHECK(ndr_push_align(ndr, 4));
19023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
19024 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
19025 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19027 if (ndr_flags & NDR_BUFFERS) {
19028 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19030 return NDR_ERR_SUCCESS;
19033 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
19035 if (ndr_flags & NDR_SCALARS) {
19036 NDR_CHECK(ndr_pull_align(ndr, 4));
19037 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
19038 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
19039 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19041 if (ndr_flags & NDR_BUFFERS) {
19042 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19044 return NDR_ERR_SUCCESS;
19047 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
19049 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
19050 ndr->depth++;
19051 ndr_print_uint32(ndr, "level", r->level);
19052 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
19053 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
19054 ndr->depth--;
19057 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19060 return NDR_ERR_SUCCESS;
19063 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19065 uint32_t v;
19066 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19067 *r = v;
19068 return NDR_ERR_SUCCESS;
19071 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
19073 ndr_print_uint32(ndr, name, r);
19074 ndr->depth++;
19075 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
19076 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
19077 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
19078 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
19079 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
19080 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
19081 ndr->depth--;
19084 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
19086 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
19087 if (ndr_flags & NDR_SCALARS) {
19088 NDR_CHECK(ndr_push_align(ndr, 4));
19089 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19091 uint32_t _flags_save_string = ndr->flags;
19092 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19093 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
19094 ndr->flags = _flags_save_string;
19096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
19097 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
19099 uint32_t _flags_save_DATA_BLOB = ndr->flags;
19100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
19101 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
19102 ndr->flags = _flags_save_DATA_BLOB;
19104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data->length));
19106 if (ndr_flags & NDR_BUFFERS) {
19107 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
19109 uint32_t _flags_save_string = ndr->flags;
19110 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19111 if (r->value_name) {
19112 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->value_name));
19113 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
19114 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->value_name));
19116 ndr->flags = _flags_save_string;
19119 uint32_t _flags_save_DATA_BLOB = ndr->flags;
19120 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
19121 if (r->data) {
19122 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data));
19124 struct ndr_push *_ndr_data;
19125 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data->length));
19126 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_data, NDR_SCALARS, *r->data));
19127 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data->length));
19129 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data));
19131 ndr->flags = _flags_save_DATA_BLOB;
19134 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
19135 return NDR_ERR_SUCCESS;
19138 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
19140 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
19141 uint32_t _ptr_value_name;
19142 TALLOC_CTX *_mem_save_value_name_0;
19143 uint32_t _ptr_data;
19144 TALLOC_CTX *_mem_save_data_0;
19145 if (ndr_flags & NDR_SCALARS) {
19146 NDR_CHECK(ndr_pull_align(ndr, 4));
19147 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19149 uint32_t _flags_save_string = ndr->flags;
19150 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
19152 if (_ptr_value_name) {
19153 NDR_PULL_ALLOC(ndr, r->value_name);
19154 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
19155 } else {
19156 r->value_name = NULL;
19158 ndr->flags = _flags_save_string;
19160 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
19161 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
19163 uint32_t _flags_save_DATA_BLOB = ndr->flags;
19164 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
19165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
19166 if (_ptr_data) {
19167 NDR_PULL_ALLOC(ndr, r->data);
19168 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
19169 } else {
19170 r->data = NULL;
19172 ndr->flags = _flags_save_DATA_BLOB;
19174 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
19176 if (ndr_flags & NDR_BUFFERS) {
19177 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19179 uint32_t _flags_save_string = ndr->flags;
19180 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19181 if (r->value_name) {
19182 uint32_t _relative_save_offset;
19183 _relative_save_offset = ndr->offset;
19184 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
19185 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19186 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
19187 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
19188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
19189 ndr->offset = _relative_save_offset;
19191 ndr->flags = _flags_save_string;
19194 uint32_t _flags_save_DATA_BLOB = ndr->flags;
19195 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
19196 if (r->data) {
19197 uint32_t _relative_save_offset;
19198 _relative_save_offset = ndr->offset;
19199 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
19200 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
19201 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
19203 struct ndr_pull *_ndr_data;
19204 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19205 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_data, NDR_SCALARS, r->data));
19206 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19208 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
19209 ndr->offset = _relative_save_offset;
19211 ndr->flags = _flags_save_DATA_BLOB;
19214 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
19215 return NDR_ERR_SUCCESS;
19218 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
19220 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
19221 ndr->depth++;
19222 ndr_print_ptr(ndr, "value_name", r->value_name);
19223 ndr->depth++;
19224 if (r->value_name) {
19225 ndr_print_string(ndr, "value_name", r->value_name);
19227 ndr->depth--;
19228 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
19229 ndr_print_winreg_Type(ndr, "type", r->type);
19230 ndr_print_ptr(ndr, "data", r->data);
19231 ndr->depth++;
19232 if (r->data) {
19233 ndr_print_DATA_BLOB(ndr, "data", *r->data);
19235 ndr->depth--;
19236 ndr_print_uint32(ndr, "data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->data->length:r->data_length);
19237 ndr->depth--;
19240 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
19242 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
19245 static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr_flags, const union spoolss_KeyNames *r)
19247 if (ndr_flags & NDR_SCALARS) {
19248 int level = ndr_push_get_switch_value(ndr, r);
19249 switch (level) {
19250 case 0: {
19251 break; }
19253 case 1: {
19254 break; }
19256 default: {
19258 uint32_t _flags_save_string_array = ndr->flags;
19259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19260 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
19261 ndr->flags = _flags_save_string_array;
19263 break; }
19267 if (ndr_flags & NDR_BUFFERS) {
19268 int level = ndr_push_get_switch_value(ndr, r);
19269 switch (level) {
19270 case 0:
19271 break;
19273 case 1:
19274 break;
19276 default:
19277 break;
19281 return NDR_ERR_SUCCESS;
19284 static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr_flags, union spoolss_KeyNames *r)
19286 int level;
19287 level = ndr_pull_get_switch_value(ndr, r);
19288 if (ndr_flags & NDR_SCALARS) {
19289 switch (level) {
19290 case 0: {
19291 break; }
19293 case 1: {
19294 break; }
19296 default: {
19298 uint32_t _flags_save_string_array = ndr->flags;
19299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19300 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
19301 ndr->flags = _flags_save_string_array;
19303 break; }
19307 if (ndr_flags & NDR_BUFFERS) {
19308 switch (level) {
19309 case 0:
19310 break;
19312 case 1:
19313 break;
19315 default:
19316 break;
19320 return NDR_ERR_SUCCESS;
19323 _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
19325 int level;
19326 level = ndr_print_get_switch_value(ndr, r);
19327 ndr_print_union(ndr, name, level, "spoolss_KeyNames");
19328 switch (level) {
19329 case 0:
19330 break;
19332 case 1:
19333 break;
19335 default:
19336 ndr_print_string_array(ndr, "string_array", r->string_array);
19337 break;
19342 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19345 return NDR_ERR_SUCCESS;
19348 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19350 uint32_t v;
19351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19352 *r = v;
19353 return NDR_ERR_SUCCESS;
19356 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19358 ndr_print_uint32(ndr, name, r);
19359 ndr->depth++;
19360 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
19361 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
19362 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
19363 ndr->depth--;
19366 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
19368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19369 return NDR_ERR_SUCCESS;
19372 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
19374 uint32_t v;
19375 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19376 *r = v;
19377 return NDR_ERR_SUCCESS;
19380 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
19382 const char *val = NULL;
19384 switch (r) {
19385 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
19386 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
19388 ndr_print_enum(ndr, name, "ENUM", val, r);
19391 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
19393 if (ndr_flags & NDR_SCALARS) {
19394 NDR_CHECK(ndr_push_align(ndr, 4));
19395 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
19397 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19400 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19401 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19403 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19404 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19405 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19406 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19411 if (ndr_flags & NDR_BUFFERS) {
19413 return NDR_ERR_SUCCESS;
19416 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
19418 uint32_t size_portname_0 = 0;
19419 uint32_t size_hostaddress_0 = 0;
19420 uint32_t size_snmpcommunity_0 = 0;
19421 uint32_t size_queue_0 = 0;
19422 uint32_t size_ip_address_0 = 0;
19423 uint32_t size_hardware_address_0 = 0;
19424 uint32_t size_device_type_0 = 0;
19425 if (ndr_flags & NDR_SCALARS) {
19426 NDR_CHECK(ndr_pull_align(ndr, 4));
19427 size_portname_0 = 64;
19428 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, size_portname_0, sizeof(uint16_t), CH_UTF16));
19429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19430 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19433 size_hostaddress_0 = 49;
19434 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, size_hostaddress_0, sizeof(uint16_t), CH_UTF16));
19435 size_snmpcommunity_0 = 33;
19436 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, size_snmpcommunity_0, sizeof(uint16_t), CH_UTF16));
19437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19438 size_queue_0 = 33;
19439 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, size_queue_0, sizeof(uint16_t), CH_UTF16));
19440 size_ip_address_0 = 16;
19441 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, size_ip_address_0, sizeof(uint16_t), CH_UTF16));
19442 size_hardware_address_0 = 13;
19443 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, size_hardware_address_0, sizeof(uint16_t), CH_UTF16));
19444 size_device_type_0 = 257;
19445 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, size_device_type_0, sizeof(uint16_t), CH_UTF16));
19446 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19447 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19448 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19450 if (ndr_flags & NDR_BUFFERS) {
19452 return NDR_ERR_SUCCESS;
19455 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
19457 ndr_print_struct(ndr, name, "spoolss_PortData1");
19458 ndr->depth++;
19459 ndr_print_string(ndr, "portname", r->portname);
19460 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
19461 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19462 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19463 ndr_print_uint32(ndr, "reserved", r->reserved);
19464 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19465 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19466 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19467 ndr_print_string(ndr, "queue", r->queue);
19468 ndr_print_string(ndr, "ip_address", r->ip_address);
19469 ndr_print_string(ndr, "hardware_address", r->hardware_address);
19470 ndr_print_string(ndr, "device_type", r->device_type);
19471 ndr_print_uint32(ndr, "port_number", r->port_number);
19472 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19473 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19474 ndr->depth--;
19477 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
19479 if (ndr_flags & NDR_SCALARS) {
19480 NDR_CHECK(ndr_push_align(ndr, 4));
19481 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
19483 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19486 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19487 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19489 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19490 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19494 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
19496 if (ndr_flags & NDR_BUFFERS) {
19498 return NDR_ERR_SUCCESS;
19501 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
19503 uint32_t size_portname_0 = 0;
19504 uint32_t size_hostaddress_0 = 0;
19505 uint32_t size_snmpcommunity_0 = 0;
19506 uint32_t size_queue_0 = 0;
19507 uint32_t size_device_type_0 = 0;
19508 if (ndr_flags & NDR_SCALARS) {
19509 NDR_CHECK(ndr_pull_align(ndr, 4));
19510 size_portname_0 = 64;
19511 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, size_portname_0, sizeof(uint16_t), CH_UTF16));
19512 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19513 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19514 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19515 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19516 size_hostaddress_0 = 128;
19517 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, size_hostaddress_0, sizeof(uint16_t), CH_UTF16));
19518 size_snmpcommunity_0 = 33;
19519 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, size_snmpcommunity_0, sizeof(uint16_t), CH_UTF16));
19520 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19521 size_queue_0 = 33;
19522 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, size_queue_0, sizeof(uint16_t), CH_UTF16));
19523 size_device_type_0 = 257;
19524 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, size_device_type_0, sizeof(uint16_t), CH_UTF16));
19525 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19526 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19527 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19528 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
19530 if (ndr_flags & NDR_BUFFERS) {
19532 return NDR_ERR_SUCCESS;
19535 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
19537 ndr_print_struct(ndr, name, "spoolss_PortData2");
19538 ndr->depth++;
19539 ndr_print_string(ndr, "portname", r->portname);
19540 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
19541 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19542 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19543 ndr_print_uint32(ndr, "reserved", r->reserved);
19544 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19545 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19546 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19547 ndr_print_string(ndr, "queue", r->queue);
19548 ndr_print_string(ndr, "device_type", r->device_type);
19549 ndr_print_uint32(ndr, "port_number", r->port_number);
19550 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19551 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19552 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
19553 ndr->depth--;
19556 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
19558 if (ndr_flags & NDR_SCALARS) {
19559 NDR_CHECK(ndr_push_align(ndr, 4));
19561 uint32_t _flags_save_string = ndr->flags;
19562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19563 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
19564 ndr->flags = _flags_save_string;
19567 if (ndr_flags & NDR_BUFFERS) {
19569 return NDR_ERR_SUCCESS;
19572 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
19574 if (ndr_flags & NDR_SCALARS) {
19575 NDR_CHECK(ndr_pull_align(ndr, 4));
19577 uint32_t _flags_save_string = ndr->flags;
19578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19579 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
19580 ndr->flags = _flags_save_string;
19583 if (ndr_flags & NDR_BUFFERS) {
19585 return NDR_ERR_SUCCESS;
19588 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
19590 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
19591 ndr->depth++;
19592 ndr_print_string(ndr, "dll_name", r->dll_name);
19593 ndr->depth--;
19596 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19599 return NDR_ERR_SUCCESS;
19602 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19604 uint32_t v;
19605 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19606 *r = v;
19607 return NDR_ERR_SUCCESS;
19610 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19612 ndr_print_uint32(ndr, name, r);
19613 ndr->depth++;
19614 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
19615 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
19616 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
19617 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
19618 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
19619 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
19620 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
19621 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
19622 ndr->depth--;
19625 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
19627 if (flags & NDR_IN) {
19628 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
19629 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19630 if (r->in.server) {
19631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19634 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19637 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19638 if (r->in.buffer) {
19639 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19641 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19643 if (flags & NDR_OUT) {
19644 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19645 if (r->out.info) {
19646 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19648 if (r->out.needed == NULL) {
19649 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19652 if (r->out.count == NULL) {
19653 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19656 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19658 return NDR_ERR_SUCCESS;
19661 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
19663 uint32_t _ptr_server;
19664 uint32_t size_server_1 = 0;
19665 uint32_t length_server_1 = 0;
19666 uint32_t _ptr_buffer;
19667 uint32_t _ptr_info;
19668 TALLOC_CTX *_mem_save_server_0;
19669 TALLOC_CTX *_mem_save_buffer_0;
19670 TALLOC_CTX *_mem_save_info_0;
19671 TALLOC_CTX *_mem_save_needed_0;
19672 TALLOC_CTX *_mem_save_count_0;
19673 if (flags & NDR_IN) {
19674 ZERO_STRUCT(r->out);
19676 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
19677 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19678 if (_ptr_server) {
19679 NDR_PULL_ALLOC(ndr, r->in.server);
19680 } else {
19681 r->in.server = NULL;
19683 if (r->in.server) {
19684 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19685 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19686 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19687 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19688 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
19689 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
19690 if (length_server_1 > size_server_1) {
19691 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
19693 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
19694 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
19695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19697 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19699 if (_ptr_buffer) {
19700 NDR_PULL_ALLOC(ndr, r->in.buffer);
19701 } else {
19702 r->in.buffer = NULL;
19704 if (r->in.buffer) {
19705 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19706 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19707 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19710 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19711 NDR_PULL_ALLOC(ndr, r->out.needed);
19712 ZERO_STRUCTP(r->out.needed);
19713 NDR_PULL_ALLOC(ndr, r->out.count);
19714 ZERO_STRUCTP(r->out.count);
19716 if (flags & NDR_OUT) {
19717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19718 if (_ptr_info) {
19719 NDR_PULL_ALLOC(ndr, r->out.info);
19720 } else {
19721 r->out.info = NULL;
19723 if (r->out.info) {
19724 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19725 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19726 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19729 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19730 NDR_PULL_ALLOC(ndr, r->out.needed);
19732 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19733 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19734 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19735 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19736 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19737 NDR_PULL_ALLOC(ndr, r->out.count);
19739 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19740 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19741 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19743 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19745 return NDR_ERR_SUCCESS;
19748 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
19750 uint32_t cntr_info_0;
19751 if (flags & NDR_IN) {
19752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19755 if (flags & NDR_OUT) {
19756 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19757 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19758 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19760 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19761 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19764 return NDR_ERR_SUCCESS;
19767 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
19769 uint32_t size_info_0 = 0;
19770 uint32_t cntr_info_0;
19771 TALLOC_CTX *_mem_save_info_0;
19772 if (flags & NDR_IN) {
19773 ZERO_STRUCT(r->out);
19775 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19776 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19778 if (flags & NDR_OUT) {
19779 size_info_0 = r->in.count;
19780 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
19781 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19782 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19783 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
19784 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19785 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19787 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
19788 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19792 return NDR_ERR_SUCCESS;
19795 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
19797 uint32_t cntr_info_2;
19798 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
19799 ndr->depth++;
19800 if (flags & NDR_SET_VALUES) {
19801 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19803 if (flags & NDR_IN) {
19804 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
19805 ndr->depth++;
19806 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
19807 ndr_print_ptr(ndr, "server", r->in.server);
19808 ndr->depth++;
19809 if (r->in.server) {
19810 ndr_print_string(ndr, "server", r->in.server);
19812 ndr->depth--;
19813 ndr_print_uint32(ndr, "level", r->in.level);
19814 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19815 ndr->depth++;
19816 if (r->in.buffer) {
19817 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19819 ndr->depth--;
19820 ndr_print_uint32(ndr, "offered", r->in.offered);
19821 ndr->depth--;
19823 if (flags & NDR_OUT) {
19824 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
19825 ndr->depth++;
19826 ndr_print_ptr(ndr, "count", r->out.count);
19827 ndr->depth++;
19828 ndr_print_uint32(ndr, "count", *r->out.count);
19829 ndr->depth--;
19830 ndr_print_ptr(ndr, "info", r->out.info);
19831 ndr->depth++;
19832 ndr_print_ptr(ndr, "info", *r->out.info);
19833 ndr->depth++;
19834 if (*r->out.info) {
19835 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19836 ndr->depth++;
19837 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19838 char *idx_2=NULL;
19839 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19840 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19841 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19842 free(idx_2);
19845 ndr->depth--;
19847 ndr->depth--;
19848 ndr->depth--;
19849 ndr_print_ptr(ndr, "needed", r->out.needed);
19850 ndr->depth++;
19851 ndr_print_uint32(ndr, "needed", *r->out.needed);
19852 ndr->depth--;
19853 ndr_print_WERROR(ndr, "result", r->out.result);
19854 ndr->depth--;
19856 ndr->depth--;
19859 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
19861 if (flags & NDR_IN) {
19862 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
19863 if (r->in.printername) {
19864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
19865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
19867 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19869 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
19870 if (r->in.datatype) {
19871 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
19872 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
19874 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19876 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
19877 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
19879 if (flags & NDR_OUT) {
19880 if (r->out.handle == NULL) {
19881 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19883 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19884 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19886 return NDR_ERR_SUCCESS;
19889 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
19891 uint32_t _ptr_printername;
19892 uint32_t size_printername_1 = 0;
19893 uint32_t length_printername_1 = 0;
19894 uint32_t _ptr_datatype;
19895 uint32_t size_datatype_1 = 0;
19896 uint32_t length_datatype_1 = 0;
19897 TALLOC_CTX *_mem_save_printername_0;
19898 TALLOC_CTX *_mem_save_datatype_0;
19899 TALLOC_CTX *_mem_save_handle_0;
19900 if (flags & NDR_IN) {
19901 ZERO_STRUCT(r->out);
19903 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
19904 if (_ptr_printername) {
19905 NDR_PULL_ALLOC(ndr, r->in.printername);
19906 } else {
19907 r->in.printername = NULL;
19909 if (r->in.printername) {
19910 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19911 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
19912 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
19913 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
19914 size_printername_1 = ndr_get_array_size(ndr, &r->in.printername);
19915 length_printername_1 = ndr_get_array_length(ndr, &r->in.printername);
19916 if (length_printername_1 > size_printername_1) {
19917 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
19919 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
19920 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
19921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
19923 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
19924 if (_ptr_datatype) {
19925 NDR_PULL_ALLOC(ndr, r->in.datatype);
19926 } else {
19927 r->in.datatype = NULL;
19929 if (r->in.datatype) {
19930 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
19931 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
19932 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
19933 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
19934 size_datatype_1 = ndr_get_array_size(ndr, &r->in.datatype);
19935 length_datatype_1 = ndr_get_array_length(ndr, &r->in.datatype);
19936 if (length_datatype_1 > size_datatype_1) {
19937 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_datatype_1, length_datatype_1);
19939 NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
19940 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
19941 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
19943 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
19944 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
19945 NDR_PULL_ALLOC(ndr, r->out.handle);
19946 ZERO_STRUCTP(r->out.handle);
19948 if (flags & NDR_OUT) {
19949 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19950 NDR_PULL_ALLOC(ndr, r->out.handle);
19952 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19953 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
19954 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19956 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19958 return NDR_ERR_SUCCESS;
19961 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
19963 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
19964 ndr->depth++;
19965 if (flags & NDR_SET_VALUES) {
19966 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19968 if (flags & NDR_IN) {
19969 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
19970 ndr->depth++;
19971 ndr_print_ptr(ndr, "printername", r->in.printername);
19972 ndr->depth++;
19973 if (r->in.printername) {
19974 ndr_print_string(ndr, "printername", r->in.printername);
19976 ndr->depth--;
19977 ndr_print_ptr(ndr, "datatype", r->in.datatype);
19978 ndr->depth++;
19979 if (r->in.datatype) {
19980 ndr_print_string(ndr, "datatype", r->in.datatype);
19982 ndr->depth--;
19983 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
19984 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
19985 ndr->depth--;
19987 if (flags & NDR_OUT) {
19988 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
19989 ndr->depth++;
19990 ndr_print_ptr(ndr, "handle", r->out.handle);
19991 ndr->depth++;
19992 ndr_print_policy_handle(ndr, "handle", r->out.handle);
19993 ndr->depth--;
19994 ndr_print_WERROR(ndr, "result", r->out.result);
19995 ndr->depth--;
19997 ndr->depth--;
20000 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
20002 if (flags & NDR_IN) {
20003 if (r->in.handle == NULL) {
20004 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20006 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20007 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20008 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
20009 if (r->in.ctr) {
20010 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20012 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
20014 if (flags & NDR_OUT) {
20015 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20017 return NDR_ERR_SUCCESS;
20020 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
20022 uint32_t _ptr_ctr;
20023 TALLOC_CTX *_mem_save_handle_0;
20024 TALLOC_CTX *_mem_save_ctr_0;
20025 if (flags & NDR_IN) {
20026 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20027 NDR_PULL_ALLOC(ndr, r->in.handle);
20029 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20030 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20031 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20033 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
20035 if (_ptr_ctr) {
20036 NDR_PULL_ALLOC(ndr, r->in.ctr);
20037 } else {
20038 r->in.ctr = NULL;
20040 if (r->in.ctr) {
20041 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20042 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
20043 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
20046 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
20048 if (flags & NDR_OUT) {
20049 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20051 return NDR_ERR_SUCCESS;
20054 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
20056 ndr_print_struct(ndr, name, "spoolss_SetJob");
20057 ndr->depth++;
20058 if (flags & NDR_SET_VALUES) {
20059 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20061 if (flags & NDR_IN) {
20062 ndr_print_struct(ndr, "in", "spoolss_SetJob");
20063 ndr->depth++;
20064 ndr_print_ptr(ndr, "handle", r->in.handle);
20065 ndr->depth++;
20066 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20067 ndr->depth--;
20068 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20069 ndr_print_ptr(ndr, "ctr", r->in.ctr);
20070 ndr->depth++;
20071 if (r->in.ctr) {
20072 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
20074 ndr->depth--;
20075 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
20076 ndr->depth--;
20078 if (flags & NDR_OUT) {
20079 ndr_print_struct(ndr, "out", "spoolss_SetJob");
20080 ndr->depth++;
20081 ndr_print_WERROR(ndr, "result", r->out.result);
20082 ndr->depth--;
20084 ndr->depth--;
20087 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
20089 if (flags & NDR_IN) {
20090 if (r->in.handle == NULL) {
20091 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20093 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20096 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20097 if (r->in.buffer) {
20098 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20102 if (flags & NDR_OUT) {
20103 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20104 if (r->out.info) {
20106 struct ndr_push *_ndr_info;
20107 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20108 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20109 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20110 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20113 if (r->out.needed == NULL) {
20114 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20117 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20119 return NDR_ERR_SUCCESS;
20122 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
20124 uint32_t _ptr_buffer;
20125 uint32_t _ptr_info;
20126 TALLOC_CTX *_mem_save_handle_0;
20127 TALLOC_CTX *_mem_save_buffer_0;
20128 TALLOC_CTX *_mem_save_info_0;
20129 TALLOC_CTX *_mem_save_needed_0;
20130 if (flags & NDR_IN) {
20131 ZERO_STRUCT(r->out);
20133 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20134 NDR_PULL_ALLOC(ndr, r->in.handle);
20136 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20137 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20138 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20139 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20140 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20141 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20142 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20143 if (_ptr_buffer) {
20144 NDR_PULL_ALLOC(ndr, r->in.buffer);
20145 } else {
20146 r->in.buffer = NULL;
20148 if (r->in.buffer) {
20149 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20150 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20151 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20154 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20155 NDR_PULL_ALLOC(ndr, r->out.needed);
20156 ZERO_STRUCTP(r->out.needed);
20158 if (flags & NDR_OUT) {
20159 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20160 if (_ptr_info) {
20161 NDR_PULL_ALLOC(ndr, r->out.info);
20162 } else {
20163 r->out.info = NULL;
20165 if (r->out.info) {
20166 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20167 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20169 struct ndr_pull *_ndr_info;
20170 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20171 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20172 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20173 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20175 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20177 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20178 NDR_PULL_ALLOC(ndr, r->out.needed);
20180 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20181 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20184 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20186 return NDR_ERR_SUCCESS;
20189 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
20191 ndr_print_struct(ndr, name, "spoolss_GetJob");
20192 ndr->depth++;
20193 if (flags & NDR_SET_VALUES) {
20194 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20196 if (flags & NDR_IN) {
20197 ndr_print_struct(ndr, "in", "spoolss_GetJob");
20198 ndr->depth++;
20199 ndr_print_ptr(ndr, "handle", r->in.handle);
20200 ndr->depth++;
20201 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20202 ndr->depth--;
20203 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20204 ndr_print_uint32(ndr, "level", r->in.level);
20205 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20206 ndr->depth++;
20207 if (r->in.buffer) {
20208 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20210 ndr->depth--;
20211 ndr_print_uint32(ndr, "offered", r->in.offered);
20212 ndr->depth--;
20214 if (flags & NDR_OUT) {
20215 ndr_print_struct(ndr, "out", "spoolss_GetJob");
20216 ndr->depth++;
20217 ndr_print_ptr(ndr, "info", r->out.info);
20218 ndr->depth++;
20219 if (r->out.info) {
20220 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20221 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
20223 ndr->depth--;
20224 ndr_print_ptr(ndr, "needed", r->out.needed);
20225 ndr->depth++;
20226 ndr_print_uint32(ndr, "needed", *r->out.needed);
20227 ndr->depth--;
20228 ndr_print_WERROR(ndr, "result", r->out.result);
20229 ndr->depth--;
20231 ndr->depth--;
20234 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
20236 if (flags & NDR_IN) {
20237 if (r->in.handle == NULL) {
20238 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20240 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20241 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
20242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
20243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20244 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20245 if (r->in.buffer) {
20246 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20250 if (flags & NDR_OUT) {
20251 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20252 if (r->out.info) {
20253 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20255 if (r->out.needed == NULL) {
20256 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20259 if (r->out.count == NULL) {
20260 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20263 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20265 return NDR_ERR_SUCCESS;
20268 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
20270 uint32_t _ptr_buffer;
20271 uint32_t _ptr_info;
20272 TALLOC_CTX *_mem_save_handle_0;
20273 TALLOC_CTX *_mem_save_buffer_0;
20274 TALLOC_CTX *_mem_save_info_0;
20275 TALLOC_CTX *_mem_save_needed_0;
20276 TALLOC_CTX *_mem_save_count_0;
20277 if (flags & NDR_IN) {
20278 ZERO_STRUCT(r->out);
20280 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20281 NDR_PULL_ALLOC(ndr, r->in.handle);
20283 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20284 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20285 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20287 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
20288 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
20289 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20290 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20291 if (_ptr_buffer) {
20292 NDR_PULL_ALLOC(ndr, r->in.buffer);
20293 } else {
20294 r->in.buffer = NULL;
20296 if (r->in.buffer) {
20297 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20298 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20299 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20303 NDR_PULL_ALLOC(ndr, r->out.needed);
20304 ZERO_STRUCTP(r->out.needed);
20305 NDR_PULL_ALLOC(ndr, r->out.count);
20306 ZERO_STRUCTP(r->out.count);
20308 if (flags & NDR_OUT) {
20309 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20310 if (_ptr_info) {
20311 NDR_PULL_ALLOC(ndr, r->out.info);
20312 } else {
20313 r->out.info = NULL;
20315 if (r->out.info) {
20316 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20317 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20318 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20321 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20322 NDR_PULL_ALLOC(ndr, r->out.needed);
20324 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20325 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20328 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20329 NDR_PULL_ALLOC(ndr, r->out.count);
20331 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20332 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20334 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20335 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20337 return NDR_ERR_SUCCESS;
20340 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
20342 uint32_t cntr_info_0;
20343 if (flags & NDR_IN) {
20344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20347 if (flags & NDR_OUT) {
20348 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20349 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20350 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20352 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20353 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20356 return NDR_ERR_SUCCESS;
20359 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
20361 uint32_t size_info_0 = 0;
20362 uint32_t cntr_info_0;
20363 TALLOC_CTX *_mem_save_info_0;
20364 if (flags & NDR_IN) {
20365 ZERO_STRUCT(r->out);
20367 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20368 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20370 if (flags & NDR_OUT) {
20371 size_info_0 = r->in.count;
20372 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
20373 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20374 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20375 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
20376 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20377 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20379 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
20380 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20384 return NDR_ERR_SUCCESS;
20387 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
20389 uint32_t cntr_info_2;
20390 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
20391 ndr->depth++;
20392 if (flags & NDR_SET_VALUES) {
20393 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20395 if (flags & NDR_IN) {
20396 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
20397 ndr->depth++;
20398 ndr_print_ptr(ndr, "handle", r->in.handle);
20399 ndr->depth++;
20400 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20401 ndr->depth--;
20402 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
20403 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
20404 ndr_print_uint32(ndr, "level", r->in.level);
20405 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20406 ndr->depth++;
20407 if (r->in.buffer) {
20408 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20410 ndr->depth--;
20411 ndr_print_uint32(ndr, "offered", r->in.offered);
20412 ndr->depth--;
20414 if (flags & NDR_OUT) {
20415 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
20416 ndr->depth++;
20417 ndr_print_ptr(ndr, "count", r->out.count);
20418 ndr->depth++;
20419 ndr_print_uint32(ndr, "count", *r->out.count);
20420 ndr->depth--;
20421 ndr_print_ptr(ndr, "info", r->out.info);
20422 ndr->depth++;
20423 ndr_print_ptr(ndr, "info", *r->out.info);
20424 ndr->depth++;
20425 if (*r->out.info) {
20426 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20427 ndr->depth++;
20428 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20429 char *idx_2=NULL;
20430 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20431 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20432 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20433 free(idx_2);
20436 ndr->depth--;
20438 ndr->depth--;
20439 ndr->depth--;
20440 ndr_print_ptr(ndr, "needed", r->out.needed);
20441 ndr->depth++;
20442 ndr_print_uint32(ndr, "needed", *r->out.needed);
20443 ndr->depth--;
20444 ndr_print_WERROR(ndr, "result", r->out.result);
20445 ndr->depth--;
20447 ndr->depth--;
20450 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
20452 if (flags & NDR_IN) {
20454 if (flags & NDR_OUT) {
20455 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20457 return NDR_ERR_SUCCESS;
20460 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
20462 if (flags & NDR_IN) {
20464 if (flags & NDR_OUT) {
20465 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20467 return NDR_ERR_SUCCESS;
20470 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
20472 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
20473 ndr->depth++;
20474 if (flags & NDR_SET_VALUES) {
20475 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20477 if (flags & NDR_IN) {
20478 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
20479 ndr->depth++;
20480 ndr->depth--;
20482 if (flags & NDR_OUT) {
20483 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
20484 ndr->depth++;
20485 ndr_print_WERROR(ndr, "result", r->out.result);
20486 ndr->depth--;
20488 ndr->depth--;
20491 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
20493 if (flags & NDR_IN) {
20494 if (r->in.handle == NULL) {
20495 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20497 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20499 if (flags & NDR_OUT) {
20500 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20502 return NDR_ERR_SUCCESS;
20505 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
20507 TALLOC_CTX *_mem_save_handle_0;
20508 if (flags & NDR_IN) {
20509 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20510 NDR_PULL_ALLOC(ndr, r->in.handle);
20512 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20513 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20514 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20515 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20517 if (flags & NDR_OUT) {
20518 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20520 return NDR_ERR_SUCCESS;
20523 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
20525 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
20526 ndr->depth++;
20527 if (flags & NDR_SET_VALUES) {
20528 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20530 if (flags & NDR_IN) {
20531 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
20532 ndr->depth++;
20533 ndr_print_ptr(ndr, "handle", r->in.handle);
20534 ndr->depth++;
20535 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20536 ndr->depth--;
20537 ndr->depth--;
20539 if (flags & NDR_OUT) {
20540 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
20541 ndr->depth++;
20542 ndr_print_WERROR(ndr, "result", r->out.result);
20543 ndr->depth--;
20545 ndr->depth--;
20548 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
20550 if (flags & NDR_IN) {
20551 if (r->in.handle == NULL) {
20552 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20554 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20555 if (r->in.info_ctr == NULL) {
20556 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20558 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20559 if (r->in.devmode_ctr == NULL) {
20560 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20562 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20563 if (r->in.secdesc_ctr == NULL) {
20564 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20566 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20567 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
20569 if (flags & NDR_OUT) {
20570 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20572 return NDR_ERR_SUCCESS;
20575 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
20577 TALLOC_CTX *_mem_save_handle_0;
20578 TALLOC_CTX *_mem_save_info_ctr_0;
20579 TALLOC_CTX *_mem_save_devmode_ctr_0;
20580 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20581 if (flags & NDR_IN) {
20582 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20583 NDR_PULL_ALLOC(ndr, r->in.handle);
20585 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20586 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20587 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20588 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20589 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20590 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20592 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20593 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20594 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20596 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20597 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20599 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20600 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20601 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20603 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20604 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20606 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20607 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20608 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20609 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20610 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
20612 if (flags & NDR_OUT) {
20613 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20615 return NDR_ERR_SUCCESS;
20618 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
20620 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
20621 ndr->depth++;
20622 if (flags & NDR_SET_VALUES) {
20623 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20625 if (flags & NDR_IN) {
20626 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
20627 ndr->depth++;
20628 ndr_print_ptr(ndr, "handle", r->in.handle);
20629 ndr->depth++;
20630 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20631 ndr->depth--;
20632 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20633 ndr->depth++;
20634 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20635 ndr->depth--;
20636 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20637 ndr->depth++;
20638 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20639 ndr->depth--;
20640 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20641 ndr->depth++;
20642 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20643 ndr->depth--;
20644 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
20645 ndr->depth--;
20647 if (flags & NDR_OUT) {
20648 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
20649 ndr->depth++;
20650 ndr_print_WERROR(ndr, "result", r->out.result);
20651 ndr->depth--;
20653 ndr->depth--;
20656 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
20658 if (flags & NDR_IN) {
20659 if (r->in.handle == NULL) {
20660 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20662 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20664 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20665 if (r->in.buffer) {
20666 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20670 if (flags & NDR_OUT) {
20671 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20672 if (r->out.info) {
20674 struct ndr_push *_ndr_info;
20675 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20676 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20677 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20678 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20681 if (r->out.needed == NULL) {
20682 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20685 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20687 return NDR_ERR_SUCCESS;
20690 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
20692 uint32_t _ptr_buffer;
20693 uint32_t _ptr_info;
20694 TALLOC_CTX *_mem_save_handle_0;
20695 TALLOC_CTX *_mem_save_buffer_0;
20696 TALLOC_CTX *_mem_save_info_0;
20697 TALLOC_CTX *_mem_save_needed_0;
20698 if (flags & NDR_IN) {
20699 ZERO_STRUCT(r->out);
20701 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20702 NDR_PULL_ALLOC(ndr, r->in.handle);
20704 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20705 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20706 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20707 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20708 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20709 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20710 if (_ptr_buffer) {
20711 NDR_PULL_ALLOC(ndr, r->in.buffer);
20712 } else {
20713 r->in.buffer = NULL;
20715 if (r->in.buffer) {
20716 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20717 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20718 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20721 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20722 NDR_PULL_ALLOC(ndr, r->out.needed);
20723 ZERO_STRUCTP(r->out.needed);
20725 if (flags & NDR_OUT) {
20726 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20727 if (_ptr_info) {
20728 NDR_PULL_ALLOC(ndr, r->out.info);
20729 } else {
20730 r->out.info = NULL;
20732 if (r->out.info) {
20733 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20734 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20736 struct ndr_pull *_ndr_info;
20737 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20738 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20739 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20740 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20744 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20745 NDR_PULL_ALLOC(ndr, r->out.needed);
20747 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20748 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20749 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20751 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20753 return NDR_ERR_SUCCESS;
20756 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
20758 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
20759 ndr->depth++;
20760 if (flags & NDR_SET_VALUES) {
20761 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20763 if (flags & NDR_IN) {
20764 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
20765 ndr->depth++;
20766 ndr_print_ptr(ndr, "handle", r->in.handle);
20767 ndr->depth++;
20768 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20769 ndr->depth--;
20770 ndr_print_uint32(ndr, "level", r->in.level);
20771 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20772 ndr->depth++;
20773 if (r->in.buffer) {
20774 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20776 ndr->depth--;
20777 ndr_print_uint32(ndr, "offered", r->in.offered);
20778 ndr->depth--;
20780 if (flags & NDR_OUT) {
20781 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
20782 ndr->depth++;
20783 ndr_print_ptr(ndr, "info", r->out.info);
20784 ndr->depth++;
20785 if (r->out.info) {
20786 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20787 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
20789 ndr->depth--;
20790 ndr_print_ptr(ndr, "needed", r->out.needed);
20791 ndr->depth++;
20792 ndr_print_uint32(ndr, "needed", *r->out.needed);
20793 ndr->depth--;
20794 ndr_print_WERROR(ndr, "result", r->out.result);
20795 ndr->depth--;
20797 ndr->depth--;
20800 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
20802 if (flags & NDR_IN) {
20803 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
20804 if (r->in.servername) {
20805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20808 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20810 if (r->in.info_ctr == NULL) {
20811 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20813 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20815 if (flags & NDR_OUT) {
20816 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20818 return NDR_ERR_SUCCESS;
20821 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
20823 uint32_t _ptr_servername;
20824 uint32_t size_servername_1 = 0;
20825 uint32_t length_servername_1 = 0;
20826 TALLOC_CTX *_mem_save_servername_0;
20827 TALLOC_CTX *_mem_save_info_ctr_0;
20828 if (flags & NDR_IN) {
20829 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
20830 if (_ptr_servername) {
20831 NDR_PULL_ALLOC(ndr, r->in.servername);
20832 } else {
20833 r->in.servername = NULL;
20835 if (r->in.servername) {
20836 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20837 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
20838 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20839 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20840 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
20841 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
20842 if (length_servername_1 > size_servername_1) {
20843 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
20845 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
20846 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
20847 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
20849 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20850 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20852 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20853 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20854 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20857 if (flags & NDR_OUT) {
20858 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20860 return NDR_ERR_SUCCESS;
20863 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
20865 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
20866 ndr->depth++;
20867 if (flags & NDR_SET_VALUES) {
20868 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20870 if (flags & NDR_IN) {
20871 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
20872 ndr->depth++;
20873 ndr_print_ptr(ndr, "servername", r->in.servername);
20874 ndr->depth++;
20875 if (r->in.servername) {
20876 ndr_print_string(ndr, "servername", r->in.servername);
20878 ndr->depth--;
20879 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20880 ndr->depth++;
20881 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20882 ndr->depth--;
20883 ndr->depth--;
20885 if (flags & NDR_OUT) {
20886 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
20887 ndr->depth++;
20888 ndr_print_WERROR(ndr, "result", r->out.result);
20889 ndr->depth--;
20891 ndr->depth--;
20894 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
20896 if (flags & NDR_IN) {
20897 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20898 if (r->in.server) {
20899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20902 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20904 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20905 if (r->in.environment) {
20906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20909 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20912 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20913 if (r->in.buffer) {
20914 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20918 if (flags & NDR_OUT) {
20919 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20920 if (r->out.info) {
20921 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20923 if (r->out.needed == NULL) {
20924 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20927 if (r->out.count == NULL) {
20928 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20930 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20931 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20933 return NDR_ERR_SUCCESS;
20936 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
20938 uint32_t _ptr_server;
20939 uint32_t size_server_1 = 0;
20940 uint32_t length_server_1 = 0;
20941 uint32_t _ptr_environment;
20942 uint32_t size_environment_1 = 0;
20943 uint32_t length_environment_1 = 0;
20944 uint32_t _ptr_buffer;
20945 uint32_t _ptr_info;
20946 TALLOC_CTX *_mem_save_server_0;
20947 TALLOC_CTX *_mem_save_environment_0;
20948 TALLOC_CTX *_mem_save_buffer_0;
20949 TALLOC_CTX *_mem_save_info_0;
20950 TALLOC_CTX *_mem_save_needed_0;
20951 TALLOC_CTX *_mem_save_count_0;
20952 if (flags & NDR_IN) {
20953 ZERO_STRUCT(r->out);
20955 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20956 if (_ptr_server) {
20957 NDR_PULL_ALLOC(ndr, r->in.server);
20958 } else {
20959 r->in.server = NULL;
20961 if (r->in.server) {
20962 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20963 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20964 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20965 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20966 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
20967 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
20968 if (length_server_1 > size_server_1) {
20969 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
20971 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
20972 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
20973 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20975 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20976 if (_ptr_environment) {
20977 NDR_PULL_ALLOC(ndr, r->in.environment);
20978 } else {
20979 r->in.environment = NULL;
20981 if (r->in.environment) {
20982 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20983 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20984 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20985 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20986 size_environment_1 = ndr_get_array_size(ndr, &r->in.environment);
20987 length_environment_1 = ndr_get_array_length(ndr, &r->in.environment);
20988 if (length_environment_1 > size_environment_1) {
20989 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_environment_1, length_environment_1);
20991 NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
20992 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
20993 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20995 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20996 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20997 if (_ptr_buffer) {
20998 NDR_PULL_ALLOC(ndr, r->in.buffer);
20999 } else {
21000 r->in.buffer = NULL;
21002 if (r->in.buffer) {
21003 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21004 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21005 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21008 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21009 NDR_PULL_ALLOC(ndr, r->out.needed);
21010 ZERO_STRUCTP(r->out.needed);
21011 NDR_PULL_ALLOC(ndr, r->out.count);
21012 ZERO_STRUCTP(r->out.count);
21014 if (flags & NDR_OUT) {
21015 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21016 if (_ptr_info) {
21017 NDR_PULL_ALLOC(ndr, r->out.info);
21018 } else {
21019 r->out.info = NULL;
21021 if (r->out.info) {
21022 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21023 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21024 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21027 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21028 NDR_PULL_ALLOC(ndr, r->out.needed);
21030 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21031 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21034 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21035 NDR_PULL_ALLOC(ndr, r->out.count);
21037 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21038 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21039 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21040 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21041 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21043 return NDR_ERR_SUCCESS;
21046 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
21048 uint32_t cntr_info_0;
21049 if (flags & NDR_IN) {
21050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21053 if (flags & NDR_OUT) {
21054 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21055 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21056 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21058 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21059 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21062 return NDR_ERR_SUCCESS;
21065 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
21067 uint32_t size_info_0 = 0;
21068 uint32_t cntr_info_0;
21069 TALLOC_CTX *_mem_save_info_0;
21070 if (flags & NDR_IN) {
21071 ZERO_STRUCT(r->out);
21073 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21074 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21076 if (flags & NDR_OUT) {
21077 size_info_0 = r->in.count;
21078 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
21079 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21080 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21081 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
21082 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21083 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21085 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
21086 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21090 return NDR_ERR_SUCCESS;
21093 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
21095 uint32_t cntr_info_2;
21096 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
21097 ndr->depth++;
21098 if (flags & NDR_SET_VALUES) {
21099 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21101 if (flags & NDR_IN) {
21102 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
21103 ndr->depth++;
21104 ndr_print_ptr(ndr, "server", r->in.server);
21105 ndr->depth++;
21106 if (r->in.server) {
21107 ndr_print_string(ndr, "server", r->in.server);
21109 ndr->depth--;
21110 ndr_print_ptr(ndr, "environment", r->in.environment);
21111 ndr->depth++;
21112 if (r->in.environment) {
21113 ndr_print_string(ndr, "environment", r->in.environment);
21115 ndr->depth--;
21116 ndr_print_uint32(ndr, "level", r->in.level);
21117 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21118 ndr->depth++;
21119 if (r->in.buffer) {
21120 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21122 ndr->depth--;
21123 ndr_print_uint32(ndr, "offered", r->in.offered);
21124 ndr->depth--;
21126 if (flags & NDR_OUT) {
21127 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
21128 ndr->depth++;
21129 ndr_print_ptr(ndr, "count", r->out.count);
21130 ndr->depth++;
21131 ndr_print_uint32(ndr, "count", *r->out.count);
21132 ndr->depth--;
21133 ndr_print_ptr(ndr, "info", r->out.info);
21134 ndr->depth++;
21135 ndr_print_ptr(ndr, "info", *r->out.info);
21136 ndr->depth++;
21137 if (*r->out.info) {
21138 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21139 ndr->depth++;
21140 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21141 char *idx_2=NULL;
21142 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21143 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21144 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21145 free(idx_2);
21148 ndr->depth--;
21150 ndr->depth--;
21151 ndr->depth--;
21152 ndr_print_ptr(ndr, "needed", r->out.needed);
21153 ndr->depth++;
21154 ndr_print_uint32(ndr, "needed", *r->out.needed);
21155 ndr->depth--;
21156 ndr_print_WERROR(ndr, "result", r->out.result);
21157 ndr->depth--;
21159 ndr->depth--;
21162 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
21164 if (flags & NDR_IN) {
21166 if (flags & NDR_OUT) {
21167 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21169 return NDR_ERR_SUCCESS;
21172 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
21174 if (flags & NDR_IN) {
21176 if (flags & NDR_OUT) {
21177 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21179 return NDR_ERR_SUCCESS;
21182 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
21184 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
21185 ndr->depth++;
21186 if (flags & NDR_SET_VALUES) {
21187 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21189 if (flags & NDR_IN) {
21190 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
21191 ndr->depth++;
21192 ndr->depth--;
21194 if (flags & NDR_OUT) {
21195 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
21196 ndr->depth++;
21197 ndr_print_WERROR(ndr, "result", r->out.result);
21198 ndr->depth--;
21200 ndr->depth--;
21203 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21205 if (flags & NDR_IN) {
21206 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21207 if (r->in.server) {
21208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21211 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21213 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21214 if (r->in.environment) {
21215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21216 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21218 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21221 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21222 if (r->in.buffer) {
21223 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21227 if (flags & NDR_OUT) {
21228 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21229 if (r->out.info) {
21231 struct ndr_push *_ndr_info;
21232 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21233 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21234 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21235 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21238 if (r->out.needed == NULL) {
21239 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21241 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21242 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21244 return NDR_ERR_SUCCESS;
21247 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
21249 uint32_t _ptr_server;
21250 uint32_t size_server_1 = 0;
21251 uint32_t length_server_1 = 0;
21252 uint32_t _ptr_environment;
21253 uint32_t size_environment_1 = 0;
21254 uint32_t length_environment_1 = 0;
21255 uint32_t _ptr_buffer;
21256 uint32_t _ptr_info;
21257 TALLOC_CTX *_mem_save_server_0;
21258 TALLOC_CTX *_mem_save_environment_0;
21259 TALLOC_CTX *_mem_save_buffer_0;
21260 TALLOC_CTX *_mem_save_info_0;
21261 TALLOC_CTX *_mem_save_needed_0;
21262 if (flags & NDR_IN) {
21263 ZERO_STRUCT(r->out);
21265 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21266 if (_ptr_server) {
21267 NDR_PULL_ALLOC(ndr, r->in.server);
21268 } else {
21269 r->in.server = NULL;
21271 if (r->in.server) {
21272 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21273 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21274 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21275 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21276 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
21277 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
21278 if (length_server_1 > size_server_1) {
21279 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
21281 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
21282 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
21283 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21285 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21286 if (_ptr_environment) {
21287 NDR_PULL_ALLOC(ndr, r->in.environment);
21288 } else {
21289 r->in.environment = NULL;
21291 if (r->in.environment) {
21292 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21293 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21294 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21295 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21296 size_environment_1 = ndr_get_array_size(ndr, &r->in.environment);
21297 length_environment_1 = ndr_get_array_length(ndr, &r->in.environment);
21298 if (length_environment_1 > size_environment_1) {
21299 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_environment_1, length_environment_1);
21301 NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
21302 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
21303 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21306 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21307 if (_ptr_buffer) {
21308 NDR_PULL_ALLOC(ndr, r->in.buffer);
21309 } else {
21310 r->in.buffer = NULL;
21312 if (r->in.buffer) {
21313 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21314 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21315 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21318 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21319 NDR_PULL_ALLOC(ndr, r->out.needed);
21320 ZERO_STRUCTP(r->out.needed);
21322 if (flags & NDR_OUT) {
21323 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21324 if (_ptr_info) {
21325 NDR_PULL_ALLOC(ndr, r->out.info);
21326 } else {
21327 r->out.info = NULL;
21329 if (r->out.info) {
21330 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21331 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21333 struct ndr_pull *_ndr_info;
21334 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21335 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21336 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21337 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21341 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21342 NDR_PULL_ALLOC(ndr, r->out.needed);
21344 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21345 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21346 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21347 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21348 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21350 return NDR_ERR_SUCCESS;
21353 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21355 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
21356 ndr->depth++;
21357 if (flags & NDR_SET_VALUES) {
21358 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21360 if (flags & NDR_IN) {
21361 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
21362 ndr->depth++;
21363 ndr_print_ptr(ndr, "server", r->in.server);
21364 ndr->depth++;
21365 if (r->in.server) {
21366 ndr_print_string(ndr, "server", r->in.server);
21368 ndr->depth--;
21369 ndr_print_ptr(ndr, "environment", r->in.environment);
21370 ndr->depth++;
21371 if (r->in.environment) {
21372 ndr_print_string(ndr, "environment", r->in.environment);
21374 ndr->depth--;
21375 ndr_print_uint32(ndr, "level", r->in.level);
21376 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21377 ndr->depth++;
21378 if (r->in.buffer) {
21379 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21381 ndr->depth--;
21382 ndr_print_uint32(ndr, "offered", r->in.offered);
21383 ndr->depth--;
21385 if (flags & NDR_OUT) {
21386 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
21387 ndr->depth++;
21388 ndr_print_ptr(ndr, "info", r->out.info);
21389 ndr->depth++;
21390 if (r->out.info) {
21391 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21392 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
21394 ndr->depth--;
21395 ndr_print_ptr(ndr, "needed", r->out.needed);
21396 ndr->depth++;
21397 ndr_print_uint32(ndr, "needed", *r->out.needed);
21398 ndr->depth--;
21399 ndr_print_WERROR(ndr, "result", r->out.result);
21400 ndr->depth--;
21402 ndr->depth--;
21405 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
21407 if (flags & NDR_IN) {
21408 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21409 if (r->in.server) {
21410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21413 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21417 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21418 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21422 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21424 if (flags & NDR_OUT) {
21425 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21427 return NDR_ERR_SUCCESS;
21430 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
21432 uint32_t _ptr_server;
21433 uint32_t size_server_1 = 0;
21434 uint32_t length_server_1 = 0;
21435 uint32_t size_architecture_0 = 0;
21436 uint32_t length_architecture_0 = 0;
21437 uint32_t size_driver_0 = 0;
21438 uint32_t length_driver_0 = 0;
21439 TALLOC_CTX *_mem_save_server_0;
21440 if (flags & NDR_IN) {
21441 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21442 if (_ptr_server) {
21443 NDR_PULL_ALLOC(ndr, r->in.server);
21444 } else {
21445 r->in.server = NULL;
21447 if (r->in.server) {
21448 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21449 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21450 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21451 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21452 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
21453 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
21454 if (length_server_1 > size_server_1) {
21455 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
21457 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
21458 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
21459 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21461 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21462 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21463 size_architecture_0 = ndr_get_array_size(ndr, &r->in.architecture);
21464 length_architecture_0 = ndr_get_array_length(ndr, &r->in.architecture);
21465 if (length_architecture_0 > size_architecture_0) {
21466 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_0, length_architecture_0);
21468 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_0, sizeof(uint16_t)));
21469 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_0, sizeof(uint16_t), CH_UTF16));
21470 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
21471 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
21472 size_driver_0 = ndr_get_array_size(ndr, &r->in.driver);
21473 length_driver_0 = ndr_get_array_length(ndr, &r->in.driver);
21474 if (length_driver_0 > size_driver_0) {
21475 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_0, length_driver_0);
21477 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_0, sizeof(uint16_t)));
21478 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, length_driver_0, sizeof(uint16_t), CH_UTF16));
21480 if (flags & NDR_OUT) {
21481 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21483 return NDR_ERR_SUCCESS;
21486 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
21488 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
21489 ndr->depth++;
21490 if (flags & NDR_SET_VALUES) {
21491 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21493 if (flags & NDR_IN) {
21494 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
21495 ndr->depth++;
21496 ndr_print_ptr(ndr, "server", r->in.server);
21497 ndr->depth++;
21498 if (r->in.server) {
21499 ndr_print_string(ndr, "server", r->in.server);
21501 ndr->depth--;
21502 ndr_print_string(ndr, "architecture", r->in.architecture);
21503 ndr_print_string(ndr, "driver", r->in.driver);
21504 ndr->depth--;
21506 if (flags & NDR_OUT) {
21507 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
21508 ndr->depth++;
21509 ndr_print_WERROR(ndr, "result", r->out.result);
21510 ndr->depth--;
21512 ndr->depth--;
21515 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
21517 if (flags & NDR_IN) {
21518 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21519 if (r->in.server) {
21520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21523 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21528 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
21530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
21532 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));
21533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
21534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
21536 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));
21538 if (flags & NDR_OUT) {
21539 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21541 return NDR_ERR_SUCCESS;
21544 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
21546 uint32_t _ptr_server;
21547 uint32_t size_server_1 = 0;
21548 uint32_t length_server_1 = 0;
21549 uint32_t size_architecture_0 = 0;
21550 uint32_t length_architecture_0 = 0;
21551 uint32_t size_path_name_0 = 0;
21552 uint32_t length_path_name_0 = 0;
21553 uint32_t size_print_processor_name_0 = 0;
21554 uint32_t length_print_processor_name_0 = 0;
21555 TALLOC_CTX *_mem_save_server_0;
21556 if (flags & NDR_IN) {
21557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21558 if (_ptr_server) {
21559 NDR_PULL_ALLOC(ndr, r->in.server);
21560 } else {
21561 r->in.server = NULL;
21563 if (r->in.server) {
21564 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21565 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21566 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21567 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21568 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
21569 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
21570 if (length_server_1 > size_server_1) {
21571 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
21573 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
21574 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
21575 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21577 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21578 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21579 size_architecture_0 = ndr_get_array_size(ndr, &r->in.architecture);
21580 length_architecture_0 = ndr_get_array_length(ndr, &r->in.architecture);
21581 if (length_architecture_0 > size_architecture_0) {
21582 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_0, length_architecture_0);
21584 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_0, sizeof(uint16_t)));
21585 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_0, sizeof(uint16_t), CH_UTF16));
21586 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
21587 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
21588 size_path_name_0 = ndr_get_array_size(ndr, &r->in.path_name);
21589 length_path_name_0 = ndr_get_array_length(ndr, &r->in.path_name);
21590 if (length_path_name_0 > size_path_name_0) {
21591 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_name_0, length_path_name_0);
21593 NDR_CHECK(ndr_check_string_terminator(ndr, length_path_name_0, sizeof(uint16_t)));
21594 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path_name, length_path_name_0, sizeof(uint16_t), CH_UTF16));
21595 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
21596 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
21597 size_print_processor_name_0 = ndr_get_array_size(ndr, &r->in.print_processor_name);
21598 length_print_processor_name_0 = ndr_get_array_length(ndr, &r->in.print_processor_name);
21599 if (length_print_processor_name_0 > size_print_processor_name_0) {
21600 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_name_0, length_print_processor_name_0);
21602 NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_name_0, sizeof(uint16_t)));
21603 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, length_print_processor_name_0, sizeof(uint16_t), CH_UTF16));
21605 if (flags & NDR_OUT) {
21606 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21608 return NDR_ERR_SUCCESS;
21611 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
21613 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
21614 ndr->depth++;
21615 if (flags & NDR_SET_VALUES) {
21616 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21618 if (flags & NDR_IN) {
21619 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
21620 ndr->depth++;
21621 ndr_print_ptr(ndr, "server", r->in.server);
21622 ndr->depth++;
21623 if (r->in.server) {
21624 ndr_print_string(ndr, "server", r->in.server);
21626 ndr->depth--;
21627 ndr_print_string(ndr, "architecture", r->in.architecture);
21628 ndr_print_string(ndr, "path_name", r->in.path_name);
21629 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
21630 ndr->depth--;
21632 if (flags & NDR_OUT) {
21633 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
21634 ndr->depth++;
21635 ndr_print_WERROR(ndr, "result", r->out.result);
21636 ndr->depth--;
21638 ndr->depth--;
21641 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
21643 if (flags & NDR_IN) {
21644 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21645 if (r->in.servername) {
21646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21649 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21651 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21652 if (r->in.environment) {
21653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21656 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21659 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21660 if (r->in.buffer) {
21661 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21665 if (flags & NDR_OUT) {
21666 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21667 if (r->out.info) {
21668 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21670 if (r->out.needed == NULL) {
21671 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21674 if (r->out.count == NULL) {
21675 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21678 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21680 return NDR_ERR_SUCCESS;
21683 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
21685 uint32_t _ptr_servername;
21686 uint32_t size_servername_1 = 0;
21687 uint32_t length_servername_1 = 0;
21688 uint32_t _ptr_environment;
21689 uint32_t size_environment_1 = 0;
21690 uint32_t length_environment_1 = 0;
21691 uint32_t _ptr_buffer;
21692 uint32_t _ptr_info;
21693 TALLOC_CTX *_mem_save_servername_0;
21694 TALLOC_CTX *_mem_save_environment_0;
21695 TALLOC_CTX *_mem_save_buffer_0;
21696 TALLOC_CTX *_mem_save_info_0;
21697 TALLOC_CTX *_mem_save_needed_0;
21698 TALLOC_CTX *_mem_save_count_0;
21699 if (flags & NDR_IN) {
21700 ZERO_STRUCT(r->out);
21702 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
21703 if (_ptr_servername) {
21704 NDR_PULL_ALLOC(ndr, r->in.servername);
21705 } else {
21706 r->in.servername = NULL;
21708 if (r->in.servername) {
21709 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21710 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21711 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21712 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21713 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
21714 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
21715 if (length_servername_1 > size_servername_1) {
21716 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
21718 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
21719 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
21720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21722 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21723 if (_ptr_environment) {
21724 NDR_PULL_ALLOC(ndr, r->in.environment);
21725 } else {
21726 r->in.environment = NULL;
21728 if (r->in.environment) {
21729 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21730 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21731 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21732 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21733 size_environment_1 = ndr_get_array_size(ndr, &r->in.environment);
21734 length_environment_1 = ndr_get_array_length(ndr, &r->in.environment);
21735 if (length_environment_1 > size_environment_1) {
21736 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_environment_1, length_environment_1);
21738 NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
21739 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
21740 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21742 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21743 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21744 if (_ptr_buffer) {
21745 NDR_PULL_ALLOC(ndr, r->in.buffer);
21746 } else {
21747 r->in.buffer = NULL;
21749 if (r->in.buffer) {
21750 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21751 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21752 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21756 NDR_PULL_ALLOC(ndr, r->out.needed);
21757 ZERO_STRUCTP(r->out.needed);
21758 NDR_PULL_ALLOC(ndr, r->out.count);
21759 ZERO_STRUCTP(r->out.count);
21761 if (flags & NDR_OUT) {
21762 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21763 if (_ptr_info) {
21764 NDR_PULL_ALLOC(ndr, r->out.info);
21765 } else {
21766 r->out.info = NULL;
21768 if (r->out.info) {
21769 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21770 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21771 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21772 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21774 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21775 NDR_PULL_ALLOC(ndr, r->out.needed);
21777 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21778 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21779 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21781 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21782 NDR_PULL_ALLOC(ndr, r->out.count);
21784 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21785 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21786 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21787 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21788 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21790 return NDR_ERR_SUCCESS;
21793 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
21795 uint32_t cntr_info_0;
21796 if (flags & NDR_IN) {
21797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21800 if (flags & NDR_OUT) {
21801 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21802 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21803 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21805 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21806 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21809 return NDR_ERR_SUCCESS;
21812 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
21814 uint32_t size_info_0 = 0;
21815 uint32_t cntr_info_0;
21816 TALLOC_CTX *_mem_save_info_0;
21817 if (flags & NDR_IN) {
21818 ZERO_STRUCT(r->out);
21820 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21821 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21823 if (flags & NDR_OUT) {
21824 size_info_0 = r->in.count;
21825 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
21826 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21827 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21828 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
21829 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21830 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21832 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
21833 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21837 return NDR_ERR_SUCCESS;
21840 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
21842 uint32_t cntr_info_2;
21843 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
21844 ndr->depth++;
21845 if (flags & NDR_SET_VALUES) {
21846 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21848 if (flags & NDR_IN) {
21849 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
21850 ndr->depth++;
21851 ndr_print_ptr(ndr, "servername", r->in.servername);
21852 ndr->depth++;
21853 if (r->in.servername) {
21854 ndr_print_string(ndr, "servername", r->in.servername);
21856 ndr->depth--;
21857 ndr_print_ptr(ndr, "environment", r->in.environment);
21858 ndr->depth++;
21859 if (r->in.environment) {
21860 ndr_print_string(ndr, "environment", r->in.environment);
21862 ndr->depth--;
21863 ndr_print_uint32(ndr, "level", r->in.level);
21864 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21865 ndr->depth++;
21866 if (r->in.buffer) {
21867 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21869 ndr->depth--;
21870 ndr_print_uint32(ndr, "offered", r->in.offered);
21871 ndr->depth--;
21873 if (flags & NDR_OUT) {
21874 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
21875 ndr->depth++;
21876 ndr_print_ptr(ndr, "count", r->out.count);
21877 ndr->depth++;
21878 ndr_print_uint32(ndr, "count", *r->out.count);
21879 ndr->depth--;
21880 ndr_print_ptr(ndr, "info", r->out.info);
21881 ndr->depth++;
21882 ndr_print_ptr(ndr, "info", *r->out.info);
21883 ndr->depth++;
21884 if (*r->out.info) {
21885 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21886 ndr->depth++;
21887 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21888 char *idx_2=NULL;
21889 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21890 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21891 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21892 free(idx_2);
21895 ndr->depth--;
21897 ndr->depth--;
21898 ndr->depth--;
21899 ndr_print_ptr(ndr, "needed", r->out.needed);
21900 ndr->depth++;
21901 ndr_print_uint32(ndr, "needed", *r->out.needed);
21902 ndr->depth--;
21903 ndr_print_WERROR(ndr, "result", r->out.result);
21904 ndr->depth--;
21906 ndr->depth--;
21909 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
21911 if (flags & NDR_IN) {
21912 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21913 if (r->in.server) {
21914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21917 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21919 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21920 if (r->in.environment) {
21921 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21922 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21924 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21927 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21928 if (r->in.buffer) {
21929 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21931 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21933 if (flags & NDR_OUT) {
21934 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21935 if (r->out.info) {
21937 struct ndr_push *_ndr_info;
21938 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21939 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21940 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21941 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21944 if (r->out.needed == NULL) {
21945 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21947 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21948 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21950 return NDR_ERR_SUCCESS;
21953 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
21955 uint32_t _ptr_server;
21956 uint32_t size_server_1 = 0;
21957 uint32_t length_server_1 = 0;
21958 uint32_t _ptr_environment;
21959 uint32_t size_environment_1 = 0;
21960 uint32_t length_environment_1 = 0;
21961 uint32_t _ptr_buffer;
21962 uint32_t _ptr_info;
21963 TALLOC_CTX *_mem_save_server_0;
21964 TALLOC_CTX *_mem_save_environment_0;
21965 TALLOC_CTX *_mem_save_buffer_0;
21966 TALLOC_CTX *_mem_save_info_0;
21967 TALLOC_CTX *_mem_save_needed_0;
21968 if (flags & NDR_IN) {
21969 ZERO_STRUCT(r->out);
21971 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21972 if (_ptr_server) {
21973 NDR_PULL_ALLOC(ndr, r->in.server);
21974 } else {
21975 r->in.server = NULL;
21977 if (r->in.server) {
21978 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21979 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21980 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21981 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21982 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
21983 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
21984 if (length_server_1 > size_server_1) {
21985 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
21987 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
21988 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
21989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21991 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21992 if (_ptr_environment) {
21993 NDR_PULL_ALLOC(ndr, r->in.environment);
21994 } else {
21995 r->in.environment = NULL;
21997 if (r->in.environment) {
21998 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21999 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22000 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22001 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22002 size_environment_1 = ndr_get_array_size(ndr, &r->in.environment);
22003 length_environment_1 = ndr_get_array_length(ndr, &r->in.environment);
22004 if (length_environment_1 > size_environment_1) {
22005 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_environment_1, length_environment_1);
22007 NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
22008 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
22009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22011 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22012 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22013 if (_ptr_buffer) {
22014 NDR_PULL_ALLOC(ndr, r->in.buffer);
22015 } else {
22016 r->in.buffer = NULL;
22018 if (r->in.buffer) {
22019 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22020 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22021 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22022 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22024 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22025 NDR_PULL_ALLOC(ndr, r->out.needed);
22026 ZERO_STRUCTP(r->out.needed);
22028 if (flags & NDR_OUT) {
22029 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22030 if (_ptr_info) {
22031 NDR_PULL_ALLOC(ndr, r->out.info);
22032 } else {
22033 r->out.info = NULL;
22035 if (r->out.info) {
22036 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22037 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22039 struct ndr_pull *_ndr_info;
22040 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22041 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22042 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22043 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22045 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22047 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22048 NDR_PULL_ALLOC(ndr, r->out.needed);
22050 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22051 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22052 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22053 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22054 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22056 return NDR_ERR_SUCCESS;
22059 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22061 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
22062 ndr->depth++;
22063 if (flags & NDR_SET_VALUES) {
22064 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22066 if (flags & NDR_IN) {
22067 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
22068 ndr->depth++;
22069 ndr_print_ptr(ndr, "server", r->in.server);
22070 ndr->depth++;
22071 if (r->in.server) {
22072 ndr_print_string(ndr, "server", r->in.server);
22074 ndr->depth--;
22075 ndr_print_ptr(ndr, "environment", r->in.environment);
22076 ndr->depth++;
22077 if (r->in.environment) {
22078 ndr_print_string(ndr, "environment", r->in.environment);
22080 ndr->depth--;
22081 ndr_print_uint32(ndr, "level", r->in.level);
22082 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22083 ndr->depth++;
22084 if (r->in.buffer) {
22085 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22087 ndr->depth--;
22088 ndr_print_uint32(ndr, "offered", r->in.offered);
22089 ndr->depth--;
22091 if (flags & NDR_OUT) {
22092 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
22093 ndr->depth++;
22094 ndr_print_ptr(ndr, "info", r->out.info);
22095 ndr->depth++;
22096 if (r->out.info) {
22097 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22098 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
22100 ndr->depth--;
22101 ndr_print_ptr(ndr, "needed", r->out.needed);
22102 ndr->depth++;
22103 ndr_print_uint32(ndr, "needed", *r->out.needed);
22104 ndr->depth--;
22105 ndr_print_WERROR(ndr, "result", r->out.result);
22106 ndr->depth--;
22108 ndr->depth--;
22111 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
22113 if (flags & NDR_IN) {
22114 if (r->in.handle == NULL) {
22115 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22117 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22119 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22120 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22122 if (flags & NDR_OUT) {
22123 if (r->out.job_id == NULL) {
22124 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
22127 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22129 return NDR_ERR_SUCCESS;
22132 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
22134 TALLOC_CTX *_mem_save_handle_0;
22135 TALLOC_CTX *_mem_save_job_id_0;
22136 if (flags & NDR_IN) {
22137 ZERO_STRUCT(r->out);
22139 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22140 NDR_PULL_ALLOC(ndr, r->in.handle);
22142 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22143 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22144 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22145 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22146 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22147 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22148 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22149 NDR_PULL_ALLOC(ndr, r->out.job_id);
22150 ZERO_STRUCTP(r->out.job_id);
22152 if (flags & NDR_OUT) {
22153 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22154 NDR_PULL_ALLOC(ndr, r->out.job_id);
22156 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
22157 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
22158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
22159 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
22160 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22162 return NDR_ERR_SUCCESS;
22165 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
22167 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
22168 ndr->depth++;
22169 if (flags & NDR_SET_VALUES) {
22170 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22172 if (flags & NDR_IN) {
22173 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
22174 ndr->depth++;
22175 ndr_print_ptr(ndr, "handle", r->in.handle);
22176 ndr->depth++;
22177 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22178 ndr->depth--;
22179 ndr_print_uint32(ndr, "level", r->in.level);
22180 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22181 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
22182 ndr->depth--;
22184 if (flags & NDR_OUT) {
22185 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
22186 ndr->depth++;
22187 ndr_print_ptr(ndr, "job_id", r->out.job_id);
22188 ndr->depth++;
22189 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
22190 ndr->depth--;
22191 ndr_print_WERROR(ndr, "result", r->out.result);
22192 ndr->depth--;
22194 ndr->depth--;
22197 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
22199 if (flags & NDR_IN) {
22200 if (r->in.handle == NULL) {
22201 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22203 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22205 if (flags & NDR_OUT) {
22206 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22208 return NDR_ERR_SUCCESS;
22211 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
22213 TALLOC_CTX *_mem_save_handle_0;
22214 if (flags & NDR_IN) {
22215 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22216 NDR_PULL_ALLOC(ndr, r->in.handle);
22218 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22219 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22220 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22223 if (flags & NDR_OUT) {
22224 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22226 return NDR_ERR_SUCCESS;
22229 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
22231 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
22232 ndr->depth++;
22233 if (flags & NDR_SET_VALUES) {
22234 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22236 if (flags & NDR_IN) {
22237 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
22238 ndr->depth++;
22239 ndr_print_ptr(ndr, "handle", r->in.handle);
22240 ndr->depth++;
22241 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22242 ndr->depth--;
22243 ndr->depth--;
22245 if (flags & NDR_OUT) {
22246 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
22247 ndr->depth++;
22248 ndr_print_WERROR(ndr, "result", r->out.result);
22249 ndr->depth--;
22251 ndr->depth--;
22254 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
22256 if (flags & NDR_IN) {
22257 if (r->in.handle == NULL) {
22258 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22260 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22261 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
22262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
22264 if (flags & NDR_OUT) {
22265 if (r->out.num_written == NULL) {
22266 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
22269 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22271 return NDR_ERR_SUCCESS;
22274 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
22276 TALLOC_CTX *_mem_save_handle_0;
22277 TALLOC_CTX *_mem_save_num_written_0;
22278 if (flags & NDR_IN) {
22279 ZERO_STRUCT(r->out);
22281 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22282 NDR_PULL_ALLOC(ndr, r->in.handle);
22284 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22285 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22286 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22288 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
22289 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
22290 NDR_PULL_ALLOC(ndr, r->out.num_written);
22291 ZERO_STRUCTP(r->out.num_written);
22293 if (flags & NDR_OUT) {
22294 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22295 NDR_PULL_ALLOC(ndr, r->out.num_written);
22297 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
22298 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
22299 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
22300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
22301 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22303 return NDR_ERR_SUCCESS;
22306 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
22308 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
22309 ndr->depth++;
22310 if (flags & NDR_SET_VALUES) {
22311 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22313 if (flags & NDR_IN) {
22314 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
22315 ndr->depth++;
22316 ndr_print_ptr(ndr, "handle", r->in.handle);
22317 ndr->depth++;
22318 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22319 ndr->depth--;
22320 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
22321 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
22322 ndr->depth--;
22324 if (flags & NDR_OUT) {
22325 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
22326 ndr->depth++;
22327 ndr_print_ptr(ndr, "num_written", r->out.num_written);
22328 ndr->depth++;
22329 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
22330 ndr->depth--;
22331 ndr_print_WERROR(ndr, "result", r->out.result);
22332 ndr->depth--;
22334 ndr->depth--;
22337 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
22339 if (flags & NDR_IN) {
22340 if (r->in.handle == NULL) {
22341 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22343 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22345 if (flags & NDR_OUT) {
22346 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22348 return NDR_ERR_SUCCESS;
22351 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
22353 TALLOC_CTX *_mem_save_handle_0;
22354 if (flags & NDR_IN) {
22355 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22356 NDR_PULL_ALLOC(ndr, r->in.handle);
22358 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22359 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22360 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22363 if (flags & NDR_OUT) {
22364 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22366 return NDR_ERR_SUCCESS;
22369 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
22371 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
22372 ndr->depth++;
22373 if (flags & NDR_SET_VALUES) {
22374 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22376 if (flags & NDR_IN) {
22377 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
22378 ndr->depth++;
22379 ndr_print_ptr(ndr, "handle", r->in.handle);
22380 ndr->depth++;
22381 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22382 ndr->depth--;
22383 ndr->depth--;
22385 if (flags & NDR_OUT) {
22386 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
22387 ndr->depth++;
22388 ndr_print_WERROR(ndr, "result", r->out.result);
22389 ndr->depth--;
22391 ndr->depth--;
22394 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
22396 if (flags & NDR_IN) {
22397 if (r->in.handle == NULL) {
22398 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22400 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22402 if (flags & NDR_OUT) {
22403 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22405 return NDR_ERR_SUCCESS;
22408 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
22410 TALLOC_CTX *_mem_save_handle_0;
22411 if (flags & NDR_IN) {
22412 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22413 NDR_PULL_ALLOC(ndr, r->in.handle);
22415 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22416 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22417 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22420 if (flags & NDR_OUT) {
22421 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22423 return NDR_ERR_SUCCESS;
22426 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
22428 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
22429 ndr->depth++;
22430 if (flags & NDR_SET_VALUES) {
22431 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22433 if (flags & NDR_IN) {
22434 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
22435 ndr->depth++;
22436 ndr_print_ptr(ndr, "handle", r->in.handle);
22437 ndr->depth++;
22438 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22439 ndr->depth--;
22440 ndr->depth--;
22442 if (flags & NDR_OUT) {
22443 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
22444 ndr->depth++;
22445 ndr_print_WERROR(ndr, "result", r->out.result);
22446 ndr->depth--;
22448 ndr->depth--;
22451 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
22453 if (flags & NDR_IN) {
22454 if (r->in.handle == NULL) {
22455 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22457 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
22460 if (flags & NDR_OUT) {
22461 if (r->out.data == NULL) {
22462 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
22465 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
22466 if (r->out._data_size == NULL) {
22467 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
22470 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22472 return NDR_ERR_SUCCESS;
22475 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
22477 uint32_t size_data_1 = 0;
22478 TALLOC_CTX *_mem_save_handle_0;
22479 TALLOC_CTX *_mem_save__data_size_0;
22480 if (flags & NDR_IN) {
22481 ZERO_STRUCT(r->out);
22483 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22484 NDR_PULL_ALLOC(ndr, r->in.handle);
22486 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22487 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22488 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
22491 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
22492 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
22493 NDR_PULL_ALLOC(ndr, r->out._data_size);
22494 ZERO_STRUCTP(r->out._data_size);
22496 if (flags & NDR_OUT) {
22497 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
22498 size_data_1 = ndr_get_array_size(ndr, &r->out.data);
22499 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22500 NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
22502 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
22503 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22504 NDR_PULL_ALLOC(ndr, r->out._data_size);
22506 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
22507 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
22508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
22509 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
22510 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22511 if (r->out.data) {
22512 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
22515 return NDR_ERR_SUCCESS;
22518 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
22520 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
22521 ndr->depth++;
22522 if (flags & NDR_SET_VALUES) {
22523 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22525 if (flags & NDR_IN) {
22526 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
22527 ndr->depth++;
22528 ndr_print_ptr(ndr, "handle", r->in.handle);
22529 ndr->depth++;
22530 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22531 ndr->depth--;
22532 ndr_print_uint32(ndr, "data_size", r->in.data_size);
22533 ndr->depth--;
22535 if (flags & NDR_OUT) {
22536 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
22537 ndr->depth++;
22538 ndr_print_ptr(ndr, "data", r->out.data);
22539 ndr->depth++;
22540 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
22541 ndr->depth--;
22542 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
22543 ndr->depth++;
22544 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
22545 ndr->depth--;
22546 ndr_print_WERROR(ndr, "result", r->out.result);
22547 ndr->depth--;
22549 ndr->depth--;
22552 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
22554 if (flags & NDR_IN) {
22555 if (r->in.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->in.handle));
22560 if (flags & NDR_OUT) {
22561 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22563 return NDR_ERR_SUCCESS;
22566 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
22568 TALLOC_CTX *_mem_save_handle_0;
22569 if (flags & NDR_IN) {
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);
22578 if (flags & NDR_OUT) {
22579 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22581 return NDR_ERR_SUCCESS;
22584 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
22586 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
22587 ndr->depth++;
22588 if (flags & NDR_SET_VALUES) {
22589 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22591 if (flags & NDR_IN) {
22592 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
22593 ndr->depth++;
22594 ndr_print_ptr(ndr, "handle", r->in.handle);
22595 ndr->depth++;
22596 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22597 ndr->depth--;
22598 ndr->depth--;
22600 if (flags & NDR_OUT) {
22601 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
22602 ndr->depth++;
22603 ndr_print_WERROR(ndr, "result", r->out.result);
22604 ndr->depth--;
22606 ndr->depth--;
22609 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
22611 if (flags & NDR_IN) {
22612 if (r->in.handle == NULL) {
22613 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22615 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22617 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22618 if (r->in.buffer) {
22619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22620 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
22622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22624 if (flags & NDR_OUT) {
22625 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
22626 if (r->out.buffer) {
22627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22628 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
22630 if (r->out.needed == NULL) {
22631 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
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_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
22641 uint32_t _ptr_buffer;
22642 uint32_t size_buffer_1 = 0;
22643 TALLOC_CTX *_mem_save_handle_0;
22644 TALLOC_CTX *_mem_save_buffer_0;
22645 TALLOC_CTX *_mem_save_needed_0;
22646 if (flags & NDR_IN) {
22647 ZERO_STRUCT(r->out);
22649 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22650 NDR_PULL_ALLOC(ndr, r->in.handle);
22652 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22653 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22654 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22655 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22657 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22658 if (_ptr_buffer) {
22659 NDR_PULL_ALLOC(ndr, r->in.buffer);
22660 } else {
22661 r->in.buffer = NULL;
22663 if (r->in.buffer) {
22664 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22665 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22666 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
22667 size_buffer_1 = ndr_get_array_size(ndr, &r->in.buffer);
22668 NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
22669 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
22670 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22672 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22673 NDR_PULL_ALLOC(ndr, r->out.needed);
22674 ZERO_STRUCTP(r->out.needed);
22675 if (r->in.buffer) {
22676 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
22679 if (flags & NDR_OUT) {
22680 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22681 if (_ptr_buffer) {
22682 NDR_PULL_ALLOC(ndr, r->out.buffer);
22683 } else {
22684 r->out.buffer = NULL;
22686 if (r->out.buffer) {
22687 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22688 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
22689 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
22690 size_buffer_1 = ndr_get_array_size(ndr, &r->out.buffer);
22691 NDR_PULL_ALLOC_N(ndr, r->out.buffer, size_buffer_1);
22692 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, size_buffer_1));
22693 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22695 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22696 NDR_PULL_ALLOC(ndr, r->out.needed);
22698 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22699 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22700 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22702 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22703 if (r->out.buffer) {
22704 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
22707 return NDR_ERR_SUCCESS;
22710 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
22712 ndr_print_struct(ndr, name, "spoolss_AddJob");
22713 ndr->depth++;
22714 if (flags & NDR_SET_VALUES) {
22715 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22717 if (flags & NDR_IN) {
22718 ndr_print_struct(ndr, "in", "spoolss_AddJob");
22719 ndr->depth++;
22720 ndr_print_ptr(ndr, "handle", r->in.handle);
22721 ndr->depth++;
22722 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22723 ndr->depth--;
22724 ndr_print_uint32(ndr, "level", r->in.level);
22725 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22726 ndr->depth++;
22727 if (r->in.buffer) {
22728 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
22730 ndr->depth--;
22731 ndr_print_uint32(ndr, "offered", r->in.offered);
22732 ndr->depth--;
22734 if (flags & NDR_OUT) {
22735 ndr_print_struct(ndr, "out", "spoolss_AddJob");
22736 ndr->depth++;
22737 ndr_print_ptr(ndr, "buffer", r->out.buffer);
22738 ndr->depth++;
22739 if (r->out.buffer) {
22740 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
22742 ndr->depth--;
22743 ndr_print_ptr(ndr, "needed", r->out.needed);
22744 ndr->depth++;
22745 ndr_print_uint32(ndr, "needed", *r->out.needed);
22746 ndr->depth--;
22747 ndr_print_WERROR(ndr, "result", r->out.result);
22748 ndr->depth--;
22750 ndr->depth--;
22753 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
22755 if (flags & NDR_IN) {
22756 if (r->in.handle == NULL) {
22757 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22759 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
22762 if (flags & NDR_OUT) {
22763 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22765 return NDR_ERR_SUCCESS;
22768 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
22770 TALLOC_CTX *_mem_save_handle_0;
22771 if (flags & NDR_IN) {
22772 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22773 NDR_PULL_ALLOC(ndr, r->in.handle);
22775 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22776 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22777 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22778 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22779 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
22781 if (flags & NDR_OUT) {
22782 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22784 return NDR_ERR_SUCCESS;
22787 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
22789 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
22790 ndr->depth++;
22791 if (flags & NDR_SET_VALUES) {
22792 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22794 if (flags & NDR_IN) {
22795 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
22796 ndr->depth++;
22797 ndr_print_ptr(ndr, "handle", r->in.handle);
22798 ndr->depth++;
22799 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22800 ndr->depth--;
22801 ndr_print_uint32(ndr, "jobid", r->in.jobid);
22802 ndr->depth--;
22804 if (flags & NDR_OUT) {
22805 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
22806 ndr->depth++;
22807 ndr_print_WERROR(ndr, "result", r->out.result);
22808 ndr->depth--;
22810 ndr->depth--;
22813 static enum ndr_err_code ndr_push_spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterData *r)
22815 if (flags & NDR_IN) {
22816 if (r->in.handle == NULL) {
22817 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22819 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22823 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));
22824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22826 if (flags & NDR_OUT) {
22827 if (r->out.type == NULL) {
22828 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22830 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
22831 if (r->out.data == NULL) {
22832 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22835 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.offered));
22836 if (r->out.needed == NULL) {
22837 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22840 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22842 return NDR_ERR_SUCCESS;
22845 static enum ndr_err_code ndr_pull_spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterData *r)
22847 uint32_t size_value_name_0 = 0;
22848 uint32_t length_value_name_0 = 0;
22849 uint32_t size_data_1 = 0;
22850 TALLOC_CTX *_mem_save_handle_0;
22851 TALLOC_CTX *_mem_save_type_0;
22852 TALLOC_CTX *_mem_save_needed_0;
22853 if (flags & NDR_IN) {
22854 ZERO_STRUCT(r->out);
22856 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22857 NDR_PULL_ALLOC(ndr, r->in.handle);
22859 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22860 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22861 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22863 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22864 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22865 size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
22866 length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
22867 if (length_value_name_0 > size_value_name_0) {
22868 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
22870 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
22871 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
22872 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22873 NDR_PULL_ALLOC(ndr, r->out.type);
22874 ZERO_STRUCTP(r->out.type);
22875 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.offered);
22876 memset(r->out.data, 0, (r->in.offered) * sizeof(*r->out.data));
22877 NDR_PULL_ALLOC(ndr, r->out.needed);
22878 ZERO_STRUCTP(r->out.needed);
22880 if (flags & NDR_OUT) {
22881 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22882 NDR_PULL_ALLOC(ndr, r->out.type);
22884 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
22885 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
22886 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
22887 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
22888 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
22889 size_data_1 = ndr_get_array_size(ndr, &r->out.data);
22890 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22891 NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
22893 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
22894 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22895 NDR_PULL_ALLOC(ndr, r->out.needed);
22897 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22898 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22901 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22902 if (r->out.data) {
22903 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.offered));
22906 return NDR_ERR_SUCCESS;
22909 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
22911 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
22912 ndr->depth++;
22913 if (flags & NDR_SET_VALUES) {
22914 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22916 if (flags & NDR_IN) {
22917 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
22918 ndr->depth++;
22919 ndr_print_ptr(ndr, "handle", r->in.handle);
22920 ndr->depth++;
22921 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22922 ndr->depth--;
22923 ndr_print_string(ndr, "value_name", r->in.value_name);
22924 ndr_print_uint32(ndr, "offered", r->in.offered);
22925 ndr->depth--;
22927 if (flags & NDR_OUT) {
22928 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
22929 ndr->depth++;
22930 ndr_print_ptr(ndr, "type", r->out.type);
22931 ndr->depth++;
22932 ndr_print_winreg_Type(ndr, "type", *r->out.type);
22933 ndr->depth--;
22934 ndr_print_ptr(ndr, "data", r->out.data);
22935 ndr->depth++;
22936 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.offered);
22937 ndr->depth--;
22938 ndr_print_ptr(ndr, "needed", r->out.needed);
22939 ndr->depth++;
22940 ndr_print_uint32(ndr, "needed", *r->out.needed);
22941 ndr->depth--;
22942 ndr_print_WERROR(ndr, "result", r->out.result);
22943 ndr->depth--;
22945 ndr->depth--;
22948 static enum ndr_err_code ndr_push_spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterData *r)
22950 if (flags & NDR_IN) {
22951 if (r->in.handle == NULL) {
22952 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22954 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22956 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22957 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22958 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));
22959 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
22960 if (r->in.data == NULL) {
22961 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22964 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.offered));
22965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22967 if (flags & NDR_OUT) {
22968 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22970 return NDR_ERR_SUCCESS;
22973 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
22975 uint32_t size_value_name_0 = 0;
22976 uint32_t length_value_name_0 = 0;
22977 uint32_t size_data_1 = 0;
22978 TALLOC_CTX *_mem_save_handle_0;
22979 if (flags & NDR_IN) {
22980 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22981 NDR_PULL_ALLOC(ndr, r->in.handle);
22983 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22984 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22985 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22986 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22987 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22988 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22989 size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
22990 length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
22991 if (length_value_name_0 > size_value_name_0) {
22992 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
22994 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
22995 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
22996 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
22997 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
22998 size_data_1 = ndr_get_array_size(ndr, &r->in.data);
22999 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23000 NDR_PULL_ALLOC_N(ndr, r->in.data, size_data_1);
23002 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, size_data_1));
23003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23004 if (r->in.data) {
23005 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.offered));
23008 if (flags & NDR_OUT) {
23009 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23011 return NDR_ERR_SUCCESS;
23014 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
23016 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
23017 ndr->depth++;
23018 if (flags & NDR_SET_VALUES) {
23019 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23021 if (flags & NDR_IN) {
23022 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
23023 ndr->depth++;
23024 ndr_print_ptr(ndr, "handle", r->in.handle);
23025 ndr->depth++;
23026 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23027 ndr->depth--;
23028 ndr_print_string(ndr, "value_name", r->in.value_name);
23029 ndr_print_winreg_Type(ndr, "type", r->in.type);
23030 ndr_print_ptr(ndr, "data", r->in.data);
23031 ndr->depth++;
23032 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.offered);
23033 ndr->depth--;
23034 ndr_print_uint32(ndr, "offered", r->in.offered);
23035 ndr->depth--;
23037 if (flags & NDR_OUT) {
23038 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
23039 ndr->depth++;
23040 ndr_print_WERROR(ndr, "result", r->out.result);
23041 ndr->depth--;
23043 ndr->depth--;
23046 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
23048 if (flags & NDR_IN) {
23050 if (flags & NDR_OUT) {
23051 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23053 return NDR_ERR_SUCCESS;
23056 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
23058 if (flags & NDR_IN) {
23060 if (flags & NDR_OUT) {
23061 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23063 return NDR_ERR_SUCCESS;
23066 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
23068 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
23069 ndr->depth++;
23070 if (flags & NDR_SET_VALUES) {
23071 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23073 if (flags & NDR_IN) {
23074 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
23075 ndr->depth++;
23076 ndr->depth--;
23078 if (flags & NDR_OUT) {
23079 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
23080 ndr->depth++;
23081 ndr_print_WERROR(ndr, "result", r->out.result);
23082 ndr->depth--;
23084 ndr->depth--;
23087 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
23089 if (flags & NDR_IN) {
23090 if (r->in.handle == NULL) {
23091 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23093 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23095 if (flags & NDR_OUT) {
23096 if (r->out.handle == NULL) {
23097 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23099 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23100 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23102 return NDR_ERR_SUCCESS;
23105 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
23107 TALLOC_CTX *_mem_save_handle_0;
23108 if (flags & NDR_IN) {
23109 ZERO_STRUCT(r->out);
23111 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23112 NDR_PULL_ALLOC(ndr, r->in.handle);
23114 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23115 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23116 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23118 NDR_PULL_ALLOC(ndr, r->out.handle);
23119 *r->out.handle = *r->in.handle;
23121 if (flags & NDR_OUT) {
23122 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23123 NDR_PULL_ALLOC(ndr, r->out.handle);
23125 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23126 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
23127 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23128 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23129 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23131 return NDR_ERR_SUCCESS;
23134 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
23136 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
23137 ndr->depth++;
23138 if (flags & NDR_SET_VALUES) {
23139 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23141 if (flags & NDR_IN) {
23142 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
23143 ndr->depth++;
23144 ndr_print_ptr(ndr, "handle", r->in.handle);
23145 ndr->depth++;
23146 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23147 ndr->depth--;
23148 ndr->depth--;
23150 if (flags & NDR_OUT) {
23151 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
23152 ndr->depth++;
23153 ndr_print_ptr(ndr, "handle", r->out.handle);
23154 ndr->depth++;
23155 ndr_print_policy_handle(ndr, "handle", r->out.handle);
23156 ndr->depth--;
23157 ndr_print_WERROR(ndr, "result", r->out.result);
23158 ndr->depth--;
23160 ndr->depth--;
23163 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
23165 if (flags & NDR_IN) {
23166 if (r->in.handle == NULL) {
23167 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23169 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23171 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23172 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23174 if (flags & NDR_OUT) {
23175 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23177 return NDR_ERR_SUCCESS;
23180 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
23182 TALLOC_CTX *_mem_save_handle_0;
23183 if (flags & NDR_IN) {
23184 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23185 NDR_PULL_ALLOC(ndr, r->in.handle);
23187 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23188 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23189 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23190 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23191 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23192 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23193 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23195 if (flags & NDR_OUT) {
23196 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23198 return NDR_ERR_SUCCESS;
23201 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
23203 ndr_print_struct(ndr, name, "spoolss_AddForm");
23204 ndr->depth++;
23205 if (flags & NDR_SET_VALUES) {
23206 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23208 if (flags & NDR_IN) {
23209 ndr_print_struct(ndr, "in", "spoolss_AddForm");
23210 ndr->depth++;
23211 ndr_print_ptr(ndr, "handle", r->in.handle);
23212 ndr->depth++;
23213 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23214 ndr->depth--;
23215 ndr_print_uint32(ndr, "level", r->in.level);
23216 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23217 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23218 ndr->depth--;
23220 if (flags & NDR_OUT) {
23221 ndr_print_struct(ndr, "out", "spoolss_AddForm");
23222 ndr->depth++;
23223 ndr_print_WERROR(ndr, "result", r->out.result);
23224 ndr->depth--;
23226 ndr->depth--;
23229 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
23231 if (flags & NDR_IN) {
23232 if (r->in.handle == NULL) {
23233 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23235 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23239 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));
23241 if (flags & NDR_OUT) {
23242 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23244 return NDR_ERR_SUCCESS;
23247 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
23249 uint32_t size_form_name_0 = 0;
23250 uint32_t length_form_name_0 = 0;
23251 TALLOC_CTX *_mem_save_handle_0;
23252 if (flags & NDR_IN) {
23253 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23254 NDR_PULL_ALLOC(ndr, r->in.handle);
23256 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23257 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23258 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23259 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23260 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23261 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23262 size_form_name_0 = ndr_get_array_size(ndr, &r->in.form_name);
23263 length_form_name_0 = ndr_get_array_length(ndr, &r->in.form_name);
23264 if (length_form_name_0 > size_form_name_0) {
23265 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_form_name_0, length_form_name_0);
23267 NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_0, sizeof(uint16_t)));
23268 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, length_form_name_0, sizeof(uint16_t), CH_UTF16));
23270 if (flags & NDR_OUT) {
23271 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23273 return NDR_ERR_SUCCESS;
23276 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
23278 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
23279 ndr->depth++;
23280 if (flags & NDR_SET_VALUES) {
23281 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23283 if (flags & NDR_IN) {
23284 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
23285 ndr->depth++;
23286 ndr_print_ptr(ndr, "handle", r->in.handle);
23287 ndr->depth++;
23288 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23289 ndr->depth--;
23290 ndr_print_string(ndr, "form_name", r->in.form_name);
23291 ndr->depth--;
23293 if (flags & NDR_OUT) {
23294 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
23295 ndr->depth++;
23296 ndr_print_WERROR(ndr, "result", r->out.result);
23297 ndr->depth--;
23299 ndr->depth--;
23302 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
23304 if (flags & NDR_IN) {
23305 if (r->in.handle == NULL) {
23306 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23308 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23312 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));
23313 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23314 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23315 if (r->in.buffer) {
23316 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23318 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23320 if (flags & NDR_OUT) {
23321 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23322 if (r->out.info) {
23324 struct ndr_push *_ndr_info;
23325 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23326 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23327 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23328 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23331 if (r->out.needed == NULL) {
23332 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23335 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23337 return NDR_ERR_SUCCESS;
23340 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
23342 uint32_t size_form_name_0 = 0;
23343 uint32_t length_form_name_0 = 0;
23344 uint32_t _ptr_buffer;
23345 uint32_t _ptr_info;
23346 TALLOC_CTX *_mem_save_handle_0;
23347 TALLOC_CTX *_mem_save_buffer_0;
23348 TALLOC_CTX *_mem_save_info_0;
23349 TALLOC_CTX *_mem_save_needed_0;
23350 if (flags & NDR_IN) {
23351 ZERO_STRUCT(r->out);
23353 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23354 NDR_PULL_ALLOC(ndr, r->in.handle);
23356 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23357 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23358 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23359 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23360 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23361 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23362 size_form_name_0 = ndr_get_array_size(ndr, &r->in.form_name);
23363 length_form_name_0 = ndr_get_array_length(ndr, &r->in.form_name);
23364 if (length_form_name_0 > size_form_name_0) {
23365 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_form_name_0, length_form_name_0);
23367 NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_0, sizeof(uint16_t)));
23368 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, length_form_name_0, sizeof(uint16_t), CH_UTF16));
23369 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23370 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23371 if (_ptr_buffer) {
23372 NDR_PULL_ALLOC(ndr, r->in.buffer);
23373 } else {
23374 r->in.buffer = NULL;
23376 if (r->in.buffer) {
23377 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23378 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23379 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23382 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23383 NDR_PULL_ALLOC(ndr, r->out.needed);
23384 ZERO_STRUCTP(r->out.needed);
23386 if (flags & NDR_OUT) {
23387 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23388 if (_ptr_info) {
23389 NDR_PULL_ALLOC(ndr, r->out.info);
23390 } else {
23391 r->out.info = NULL;
23393 if (r->out.info) {
23394 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23395 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23397 struct ndr_pull *_ndr_info;
23398 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23399 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23400 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23401 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23405 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23406 NDR_PULL_ALLOC(ndr, r->out.needed);
23408 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23409 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23412 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23414 return NDR_ERR_SUCCESS;
23417 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
23419 ndr_print_struct(ndr, name, "spoolss_GetForm");
23420 ndr->depth++;
23421 if (flags & NDR_SET_VALUES) {
23422 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23424 if (flags & NDR_IN) {
23425 ndr_print_struct(ndr, "in", "spoolss_GetForm");
23426 ndr->depth++;
23427 ndr_print_ptr(ndr, "handle", r->in.handle);
23428 ndr->depth++;
23429 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23430 ndr->depth--;
23431 ndr_print_string(ndr, "form_name", r->in.form_name);
23432 ndr_print_uint32(ndr, "level", r->in.level);
23433 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23434 ndr->depth++;
23435 if (r->in.buffer) {
23436 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23438 ndr->depth--;
23439 ndr_print_uint32(ndr, "offered", r->in.offered);
23440 ndr->depth--;
23442 if (flags & NDR_OUT) {
23443 ndr_print_struct(ndr, "out", "spoolss_GetForm");
23444 ndr->depth++;
23445 ndr_print_ptr(ndr, "info", r->out.info);
23446 ndr->depth++;
23447 if (r->out.info) {
23448 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23449 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
23451 ndr->depth--;
23452 ndr_print_ptr(ndr, "needed", r->out.needed);
23453 ndr->depth++;
23454 ndr_print_uint32(ndr, "needed", *r->out.needed);
23455 ndr->depth--;
23456 ndr_print_WERROR(ndr, "result", r->out.result);
23457 ndr->depth--;
23459 ndr->depth--;
23462 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
23464 if (flags & NDR_IN) {
23465 if (r->in.handle == NULL) {
23466 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23468 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23472 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));
23473 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23474 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23475 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23477 if (flags & NDR_OUT) {
23478 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23480 return NDR_ERR_SUCCESS;
23483 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
23485 uint32_t size_form_name_0 = 0;
23486 uint32_t length_form_name_0 = 0;
23487 TALLOC_CTX *_mem_save_handle_0;
23488 if (flags & NDR_IN) {
23489 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23490 NDR_PULL_ALLOC(ndr, r->in.handle);
23492 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23493 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23494 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23495 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23496 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23497 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23498 size_form_name_0 = ndr_get_array_size(ndr, &r->in.form_name);
23499 length_form_name_0 = ndr_get_array_length(ndr, &r->in.form_name);
23500 if (length_form_name_0 > size_form_name_0) {
23501 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_form_name_0, length_form_name_0);
23503 NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_0, sizeof(uint16_t)));
23504 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, length_form_name_0, sizeof(uint16_t), CH_UTF16));
23505 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23506 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23507 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23509 if (flags & NDR_OUT) {
23510 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23512 return NDR_ERR_SUCCESS;
23515 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
23517 ndr_print_struct(ndr, name, "spoolss_SetForm");
23518 ndr->depth++;
23519 if (flags & NDR_SET_VALUES) {
23520 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23522 if (flags & NDR_IN) {
23523 ndr_print_struct(ndr, "in", "spoolss_SetForm");
23524 ndr->depth++;
23525 ndr_print_ptr(ndr, "handle", r->in.handle);
23526 ndr->depth++;
23527 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23528 ndr->depth--;
23529 ndr_print_string(ndr, "form_name", r->in.form_name);
23530 ndr_print_uint32(ndr, "level", r->in.level);
23531 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23532 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23533 ndr->depth--;
23535 if (flags & NDR_OUT) {
23536 ndr_print_struct(ndr, "out", "spoolss_SetForm");
23537 ndr->depth++;
23538 ndr_print_WERROR(ndr, "result", r->out.result);
23539 ndr->depth--;
23541 ndr->depth--;
23544 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
23546 if (flags & NDR_IN) {
23547 if (r->in.handle == NULL) {
23548 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23550 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23552 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23553 if (r->in.buffer) {
23554 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23558 if (flags & NDR_OUT) {
23559 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23560 if (r->out.info) {
23561 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23563 if (r->out.needed == NULL) {
23564 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23567 if (r->out.count == NULL) {
23568 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23571 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23573 return NDR_ERR_SUCCESS;
23576 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
23578 uint32_t _ptr_buffer;
23579 uint32_t _ptr_info;
23580 TALLOC_CTX *_mem_save_handle_0;
23581 TALLOC_CTX *_mem_save_buffer_0;
23582 TALLOC_CTX *_mem_save_info_0;
23583 TALLOC_CTX *_mem_save_needed_0;
23584 TALLOC_CTX *_mem_save_count_0;
23585 if (flags & NDR_IN) {
23586 ZERO_STRUCT(r->out);
23588 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23589 NDR_PULL_ALLOC(ndr, r->in.handle);
23591 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23592 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23593 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23594 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23595 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23596 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23597 if (_ptr_buffer) {
23598 NDR_PULL_ALLOC(ndr, r->in.buffer);
23599 } else {
23600 r->in.buffer = NULL;
23602 if (r->in.buffer) {
23603 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23604 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23605 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23606 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23609 NDR_PULL_ALLOC(ndr, r->out.needed);
23610 ZERO_STRUCTP(r->out.needed);
23611 NDR_PULL_ALLOC(ndr, r->out.count);
23612 ZERO_STRUCTP(r->out.count);
23614 if (flags & NDR_OUT) {
23615 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23616 if (_ptr_info) {
23617 NDR_PULL_ALLOC(ndr, r->out.info);
23618 } else {
23619 r->out.info = NULL;
23621 if (r->out.info) {
23622 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23623 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23624 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23627 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23628 NDR_PULL_ALLOC(ndr, r->out.needed);
23630 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23631 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23632 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23633 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23634 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23635 NDR_PULL_ALLOC(ndr, r->out.count);
23637 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23638 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23639 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23641 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23643 return NDR_ERR_SUCCESS;
23646 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
23648 uint32_t cntr_info_0;
23649 if (flags & NDR_IN) {
23650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23653 if (flags & NDR_OUT) {
23654 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23655 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23656 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23658 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23659 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23662 return NDR_ERR_SUCCESS;
23665 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
23667 uint32_t size_info_0 = 0;
23668 uint32_t cntr_info_0;
23669 TALLOC_CTX *_mem_save_info_0;
23670 if (flags & NDR_IN) {
23671 ZERO_STRUCT(r->out);
23673 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23674 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23676 if (flags & NDR_OUT) {
23677 size_info_0 = r->in.count;
23678 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
23679 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23680 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23681 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
23682 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23683 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23685 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
23686 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23690 return NDR_ERR_SUCCESS;
23693 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
23695 uint32_t cntr_info_2;
23696 ndr_print_struct(ndr, name, "spoolss_EnumForms");
23697 ndr->depth++;
23698 if (flags & NDR_SET_VALUES) {
23699 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23701 if (flags & NDR_IN) {
23702 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
23703 ndr->depth++;
23704 ndr_print_ptr(ndr, "handle", r->in.handle);
23705 ndr->depth++;
23706 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23707 ndr->depth--;
23708 ndr_print_uint32(ndr, "level", r->in.level);
23709 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23710 ndr->depth++;
23711 if (r->in.buffer) {
23712 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23714 ndr->depth--;
23715 ndr_print_uint32(ndr, "offered", r->in.offered);
23716 ndr->depth--;
23718 if (flags & NDR_OUT) {
23719 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
23720 ndr->depth++;
23721 ndr_print_ptr(ndr, "count", r->out.count);
23722 ndr->depth++;
23723 ndr_print_uint32(ndr, "count", *r->out.count);
23724 ndr->depth--;
23725 ndr_print_ptr(ndr, "info", r->out.info);
23726 ndr->depth++;
23727 ndr_print_ptr(ndr, "info", *r->out.info);
23728 ndr->depth++;
23729 if (*r->out.info) {
23730 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23731 ndr->depth++;
23732 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23733 char *idx_2=NULL;
23734 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23735 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23736 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23737 free(idx_2);
23740 ndr->depth--;
23742 ndr->depth--;
23743 ndr->depth--;
23744 ndr_print_ptr(ndr, "needed", r->out.needed);
23745 ndr->depth++;
23746 ndr_print_uint32(ndr, "needed", *r->out.needed);
23747 ndr->depth--;
23748 ndr_print_WERROR(ndr, "result", r->out.result);
23749 ndr->depth--;
23751 ndr->depth--;
23754 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
23756 if (flags & NDR_IN) {
23757 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23758 if (r->in.servername) {
23759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23762 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23765 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23766 if (r->in.buffer) {
23767 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23771 if (flags & NDR_OUT) {
23772 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23773 if (r->out.info) {
23774 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23776 if (r->out.needed == NULL) {
23777 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23780 if (r->out.count == NULL) {
23781 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23784 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23786 return NDR_ERR_SUCCESS;
23789 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
23791 uint32_t _ptr_servername;
23792 uint32_t size_servername_1 = 0;
23793 uint32_t length_servername_1 = 0;
23794 uint32_t _ptr_buffer;
23795 uint32_t _ptr_info;
23796 TALLOC_CTX *_mem_save_servername_0;
23797 TALLOC_CTX *_mem_save_buffer_0;
23798 TALLOC_CTX *_mem_save_info_0;
23799 TALLOC_CTX *_mem_save_needed_0;
23800 TALLOC_CTX *_mem_save_count_0;
23801 if (flags & NDR_IN) {
23802 ZERO_STRUCT(r->out);
23804 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23805 if (_ptr_servername) {
23806 NDR_PULL_ALLOC(ndr, r->in.servername);
23807 } else {
23808 r->in.servername = NULL;
23810 if (r->in.servername) {
23811 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23812 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23813 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23814 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23815 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
23816 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
23817 if (length_servername_1 > size_servername_1) {
23818 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
23820 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
23821 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
23822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23825 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23826 if (_ptr_buffer) {
23827 NDR_PULL_ALLOC(ndr, r->in.buffer);
23828 } else {
23829 r->in.buffer = NULL;
23831 if (r->in.buffer) {
23832 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23833 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23834 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23837 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23838 NDR_PULL_ALLOC(ndr, r->out.needed);
23839 ZERO_STRUCTP(r->out.needed);
23840 NDR_PULL_ALLOC(ndr, r->out.count);
23841 ZERO_STRUCTP(r->out.count);
23843 if (flags & NDR_OUT) {
23844 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23845 if (_ptr_info) {
23846 NDR_PULL_ALLOC(ndr, r->out.info);
23847 } else {
23848 r->out.info = NULL;
23850 if (r->out.info) {
23851 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23852 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23853 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23854 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23856 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23857 NDR_PULL_ALLOC(ndr, r->out.needed);
23859 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23860 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23861 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23863 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23864 NDR_PULL_ALLOC(ndr, r->out.count);
23866 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23867 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23868 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23869 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23870 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23872 return NDR_ERR_SUCCESS;
23875 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
23877 uint32_t cntr_info_0;
23878 if (flags & NDR_IN) {
23879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23882 if (flags & NDR_OUT) {
23883 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23884 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23885 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23887 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23888 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23891 return NDR_ERR_SUCCESS;
23894 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
23896 uint32_t size_info_0 = 0;
23897 uint32_t cntr_info_0;
23898 TALLOC_CTX *_mem_save_info_0;
23899 if (flags & NDR_IN) {
23900 ZERO_STRUCT(r->out);
23902 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23903 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23905 if (flags & NDR_OUT) {
23906 size_info_0 = r->in.count;
23907 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
23908 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23909 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23910 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
23911 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23912 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23914 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
23915 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23919 return NDR_ERR_SUCCESS;
23922 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
23924 uint32_t cntr_info_2;
23925 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
23926 ndr->depth++;
23927 if (flags & NDR_SET_VALUES) {
23928 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23930 if (flags & NDR_IN) {
23931 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
23932 ndr->depth++;
23933 ndr_print_ptr(ndr, "servername", r->in.servername);
23934 ndr->depth++;
23935 if (r->in.servername) {
23936 ndr_print_string(ndr, "servername", r->in.servername);
23938 ndr->depth--;
23939 ndr_print_uint32(ndr, "level", r->in.level);
23940 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23941 ndr->depth++;
23942 if (r->in.buffer) {
23943 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23945 ndr->depth--;
23946 ndr_print_uint32(ndr, "offered", r->in.offered);
23947 ndr->depth--;
23949 if (flags & NDR_OUT) {
23950 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
23951 ndr->depth++;
23952 ndr_print_ptr(ndr, "count", r->out.count);
23953 ndr->depth++;
23954 ndr_print_uint32(ndr, "count", *r->out.count);
23955 ndr->depth--;
23956 ndr_print_ptr(ndr, "info", r->out.info);
23957 ndr->depth++;
23958 ndr_print_ptr(ndr, "info", *r->out.info);
23959 ndr->depth++;
23960 if (*r->out.info) {
23961 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23962 ndr->depth++;
23963 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23964 char *idx_2=NULL;
23965 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23966 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23967 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23968 free(idx_2);
23971 ndr->depth--;
23973 ndr->depth--;
23974 ndr->depth--;
23975 ndr_print_ptr(ndr, "needed", r->out.needed);
23976 ndr->depth++;
23977 ndr_print_uint32(ndr, "needed", *r->out.needed);
23978 ndr->depth--;
23979 ndr_print_WERROR(ndr, "result", r->out.result);
23980 ndr->depth--;
23982 ndr->depth--;
23985 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
23987 if (flags & NDR_IN) {
23988 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23989 if (r->in.servername) {
23990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23991 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23993 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23996 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23997 if (r->in.buffer) {
23998 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24002 if (flags & NDR_OUT) {
24003 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24004 if (r->out.info) {
24005 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24007 if (r->out.needed == NULL) {
24008 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24010 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24011 if (r->out.count == NULL) {
24012 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24015 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24017 return NDR_ERR_SUCCESS;
24020 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
24022 uint32_t _ptr_servername;
24023 uint32_t size_servername_1 = 0;
24024 uint32_t length_servername_1 = 0;
24025 uint32_t _ptr_buffer;
24026 uint32_t _ptr_info;
24027 TALLOC_CTX *_mem_save_servername_0;
24028 TALLOC_CTX *_mem_save_buffer_0;
24029 TALLOC_CTX *_mem_save_info_0;
24030 TALLOC_CTX *_mem_save_needed_0;
24031 TALLOC_CTX *_mem_save_count_0;
24032 if (flags & NDR_IN) {
24033 ZERO_STRUCT(r->out);
24035 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24036 if (_ptr_servername) {
24037 NDR_PULL_ALLOC(ndr, r->in.servername);
24038 } else {
24039 r->in.servername = NULL;
24041 if (r->in.servername) {
24042 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24043 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24044 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24045 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24046 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
24047 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
24048 if (length_servername_1 > size_servername_1) {
24049 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
24051 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
24052 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
24053 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24055 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24056 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24057 if (_ptr_buffer) {
24058 NDR_PULL_ALLOC(ndr, r->in.buffer);
24059 } else {
24060 r->in.buffer = NULL;
24062 if (r->in.buffer) {
24063 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24064 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24065 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24068 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24069 NDR_PULL_ALLOC(ndr, r->out.needed);
24070 ZERO_STRUCTP(r->out.needed);
24071 NDR_PULL_ALLOC(ndr, r->out.count);
24072 ZERO_STRUCTP(r->out.count);
24074 if (flags & NDR_OUT) {
24075 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24076 if (_ptr_info) {
24077 NDR_PULL_ALLOC(ndr, r->out.info);
24078 } else {
24079 r->out.info = NULL;
24081 if (r->out.info) {
24082 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24083 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24084 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24087 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24088 NDR_PULL_ALLOC(ndr, r->out.needed);
24090 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24091 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24092 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24094 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24095 NDR_PULL_ALLOC(ndr, r->out.count);
24097 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24098 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24099 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24100 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24101 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24103 return NDR_ERR_SUCCESS;
24106 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
24108 uint32_t cntr_info_0;
24109 if (flags & NDR_IN) {
24110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24113 if (flags & NDR_OUT) {
24114 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24115 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24116 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24118 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24119 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24122 return NDR_ERR_SUCCESS;
24125 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
24127 uint32_t size_info_0 = 0;
24128 uint32_t cntr_info_0;
24129 TALLOC_CTX *_mem_save_info_0;
24130 if (flags & NDR_IN) {
24131 ZERO_STRUCT(r->out);
24133 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24134 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24136 if (flags & NDR_OUT) {
24137 size_info_0 = r->in.count;
24138 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
24139 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24140 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24141 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
24142 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24143 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24145 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
24146 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24148 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24150 return NDR_ERR_SUCCESS;
24153 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
24155 uint32_t cntr_info_2;
24156 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
24157 ndr->depth++;
24158 if (flags & NDR_SET_VALUES) {
24159 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24161 if (flags & NDR_IN) {
24162 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
24163 ndr->depth++;
24164 ndr_print_ptr(ndr, "servername", r->in.servername);
24165 ndr->depth++;
24166 if (r->in.servername) {
24167 ndr_print_string(ndr, "servername", r->in.servername);
24169 ndr->depth--;
24170 ndr_print_uint32(ndr, "level", r->in.level);
24171 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24172 ndr->depth++;
24173 if (r->in.buffer) {
24174 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24176 ndr->depth--;
24177 ndr_print_uint32(ndr, "offered", r->in.offered);
24178 ndr->depth--;
24180 if (flags & NDR_OUT) {
24181 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
24182 ndr->depth++;
24183 ndr_print_ptr(ndr, "count", r->out.count);
24184 ndr->depth++;
24185 ndr_print_uint32(ndr, "count", *r->out.count);
24186 ndr->depth--;
24187 ndr_print_ptr(ndr, "info", r->out.info);
24188 ndr->depth++;
24189 ndr_print_ptr(ndr, "info", *r->out.info);
24190 ndr->depth++;
24191 if (*r->out.info) {
24192 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24193 ndr->depth++;
24194 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24195 char *idx_2=NULL;
24196 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24197 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24198 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24199 free(idx_2);
24202 ndr->depth--;
24204 ndr->depth--;
24205 ndr->depth--;
24206 ndr_print_ptr(ndr, "needed", r->out.needed);
24207 ndr->depth++;
24208 ndr_print_uint32(ndr, "needed", *r->out.needed);
24209 ndr->depth--;
24210 ndr_print_WERROR(ndr, "result", r->out.result);
24211 ndr->depth--;
24213 ndr->depth--;
24216 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
24218 if (flags & NDR_IN) {
24219 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
24220 if (r->in.server_name) {
24221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24224 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));
24226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
24227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24228 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
24230 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));
24232 if (flags & NDR_OUT) {
24233 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24235 return NDR_ERR_SUCCESS;
24238 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
24240 uint32_t _ptr_server_name;
24241 uint32_t size_server_name_1 = 0;
24242 uint32_t length_server_name_1 = 0;
24243 uint32_t size_monitor_name_0 = 0;
24244 uint32_t length_monitor_name_0 = 0;
24245 TALLOC_CTX *_mem_save_server_name_0;
24246 if (flags & NDR_IN) {
24247 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
24248 if (_ptr_server_name) {
24249 NDR_PULL_ALLOC(ndr, r->in.server_name);
24250 } else {
24251 r->in.server_name = NULL;
24253 if (r->in.server_name) {
24254 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
24255 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
24256 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24257 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24258 size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name);
24259 length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name);
24260 if (length_server_name_1 > size_server_name_1) {
24261 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1);
24263 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
24264 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
24265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
24267 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
24268 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
24269 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
24270 size_monitor_name_0 = ndr_get_array_size(ndr, &r->in.monitor_name);
24271 length_monitor_name_0 = ndr_get_array_length(ndr, &r->in.monitor_name);
24272 if (length_monitor_name_0 > size_monitor_name_0) {
24273 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_0, length_monitor_name_0);
24275 NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_0, sizeof(uint16_t)));
24276 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.monitor_name, length_monitor_name_0, sizeof(uint16_t), CH_UTF16));
24278 if (flags & NDR_OUT) {
24279 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24281 return NDR_ERR_SUCCESS;
24284 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
24286 ndr_print_struct(ndr, name, "spoolss_AddPort");
24287 ndr->depth++;
24288 if (flags & NDR_SET_VALUES) {
24289 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24291 if (flags & NDR_IN) {
24292 ndr_print_struct(ndr, "in", "spoolss_AddPort");
24293 ndr->depth++;
24294 ndr_print_ptr(ndr, "server_name", r->in.server_name);
24295 ndr->depth++;
24296 if (r->in.server_name) {
24297 ndr_print_string(ndr, "server_name", r->in.server_name);
24299 ndr->depth--;
24300 ndr_print_uint32(ndr, "unknown", r->in.unknown);
24301 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
24302 ndr->depth--;
24304 if (flags & NDR_OUT) {
24305 ndr_print_struct(ndr, "out", "spoolss_AddPort");
24306 ndr->depth++;
24307 ndr_print_WERROR(ndr, "result", r->out.result);
24308 ndr->depth--;
24310 ndr->depth--;
24313 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
24315 if (flags & NDR_IN) {
24317 if (flags & NDR_OUT) {
24318 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24320 return NDR_ERR_SUCCESS;
24323 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
24325 if (flags & NDR_IN) {
24327 if (flags & NDR_OUT) {
24328 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24330 return NDR_ERR_SUCCESS;
24333 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
24335 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
24336 ndr->depth++;
24337 if (flags & NDR_SET_VALUES) {
24338 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24340 if (flags & NDR_IN) {
24341 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
24342 ndr->depth++;
24343 ndr->depth--;
24345 if (flags & NDR_OUT) {
24346 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
24347 ndr->depth++;
24348 ndr_print_WERROR(ndr, "result", r->out.result);
24349 ndr->depth--;
24351 ndr->depth--;
24354 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
24356 if (flags & NDR_IN) {
24358 if (flags & NDR_OUT) {
24359 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24361 return NDR_ERR_SUCCESS;
24364 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
24366 if (flags & NDR_IN) {
24368 if (flags & NDR_OUT) {
24369 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24371 return NDR_ERR_SUCCESS;
24374 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
24376 ndr_print_struct(ndr, name, "spoolss_DeletePort");
24377 ndr->depth++;
24378 if (flags & NDR_SET_VALUES) {
24379 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24381 if (flags & NDR_IN) {
24382 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
24383 ndr->depth++;
24384 ndr->depth--;
24386 if (flags & NDR_OUT) {
24387 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
24388 ndr->depth++;
24389 ndr_print_WERROR(ndr, "result", r->out.result);
24390 ndr->depth--;
24392 ndr->depth--;
24395 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
24397 if (flags & NDR_IN) {
24399 if (flags & NDR_OUT) {
24400 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24402 return NDR_ERR_SUCCESS;
24405 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
24407 if (flags & NDR_IN) {
24409 if (flags & NDR_OUT) {
24410 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24412 return NDR_ERR_SUCCESS;
24415 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
24417 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
24418 ndr->depth++;
24419 if (flags & NDR_SET_VALUES) {
24420 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24422 if (flags & NDR_IN) {
24423 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
24424 ndr->depth++;
24425 ndr->depth--;
24427 if (flags & NDR_OUT) {
24428 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
24429 ndr->depth++;
24430 ndr_print_WERROR(ndr, "result", r->out.result);
24431 ndr->depth--;
24433 ndr->depth--;
24436 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24438 if (flags & NDR_IN) {
24440 if (flags & NDR_OUT) {
24441 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24443 return NDR_ERR_SUCCESS;
24446 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
24448 if (flags & NDR_IN) {
24450 if (flags & NDR_OUT) {
24451 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24453 return NDR_ERR_SUCCESS;
24456 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24458 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
24459 ndr->depth++;
24460 if (flags & NDR_SET_VALUES) {
24461 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24463 if (flags & NDR_IN) {
24464 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
24465 ndr->depth++;
24466 ndr->depth--;
24468 if (flags & NDR_OUT) {
24469 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
24470 ndr->depth++;
24471 ndr_print_WERROR(ndr, "result", r->out.result);
24472 ndr->depth--;
24474 ndr->depth--;
24477 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
24479 if (flags & NDR_IN) {
24481 if (flags & NDR_OUT) {
24482 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24484 return NDR_ERR_SUCCESS;
24487 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
24489 if (flags & NDR_IN) {
24491 if (flags & NDR_OUT) {
24492 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24494 return NDR_ERR_SUCCESS;
24497 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
24499 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
24500 ndr->depth++;
24501 if (flags & NDR_SET_VALUES) {
24502 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24504 if (flags & NDR_IN) {
24505 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
24506 ndr->depth++;
24507 ndr->depth--;
24509 if (flags & NDR_OUT) {
24510 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
24511 ndr->depth++;
24512 ndr_print_WERROR(ndr, "result", r->out.result);
24513 ndr->depth--;
24515 ndr->depth--;
24518 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
24520 if (flags & NDR_IN) {
24522 if (flags & NDR_OUT) {
24523 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24525 return NDR_ERR_SUCCESS;
24528 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
24530 if (flags & NDR_IN) {
24532 if (flags & NDR_OUT) {
24533 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24535 return NDR_ERR_SUCCESS;
24538 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
24540 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
24541 ndr->depth++;
24542 if (flags & NDR_SET_VALUES) {
24543 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24545 if (flags & NDR_IN) {
24546 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
24547 ndr->depth++;
24548 ndr->depth--;
24550 if (flags & NDR_OUT) {
24551 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
24552 ndr->depth++;
24553 ndr_print_WERROR(ndr, "result", r->out.result);
24554 ndr->depth--;
24556 ndr->depth--;
24559 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
24561 if (flags & NDR_IN) {
24563 if (flags & NDR_OUT) {
24564 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24566 return NDR_ERR_SUCCESS;
24569 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
24571 if (flags & NDR_IN) {
24573 if (flags & NDR_OUT) {
24574 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24576 return NDR_ERR_SUCCESS;
24579 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
24581 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
24582 ndr->depth++;
24583 if (flags & NDR_SET_VALUES) {
24584 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24586 if (flags & NDR_IN) {
24587 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
24588 ndr->depth++;
24589 ndr->depth--;
24591 if (flags & NDR_OUT) {
24592 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
24593 ndr->depth++;
24594 ndr_print_WERROR(ndr, "result", r->out.result);
24595 ndr->depth--;
24597 ndr->depth--;
24600 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
24602 if (flags & NDR_IN) {
24604 if (flags & NDR_OUT) {
24605 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24607 return NDR_ERR_SUCCESS;
24610 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
24612 if (flags & NDR_IN) {
24614 if (flags & NDR_OUT) {
24615 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24617 return NDR_ERR_SUCCESS;
24620 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
24622 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
24623 ndr->depth++;
24624 if (flags & NDR_SET_VALUES) {
24625 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24627 if (flags & NDR_IN) {
24628 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
24629 ndr->depth++;
24630 ndr->depth--;
24632 if (flags & NDR_OUT) {
24633 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
24634 ndr->depth++;
24635 ndr_print_WERROR(ndr, "result", r->out.result);
24636 ndr->depth--;
24638 ndr->depth--;
24641 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
24643 if (flags & NDR_IN) {
24645 if (flags & NDR_OUT) {
24646 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24648 return NDR_ERR_SUCCESS;
24651 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
24653 if (flags & NDR_IN) {
24655 if (flags & NDR_OUT) {
24656 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24658 return NDR_ERR_SUCCESS;
24661 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
24663 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
24664 ndr->depth++;
24665 if (flags & NDR_SET_VALUES) {
24666 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24668 if (flags & NDR_IN) {
24669 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
24670 ndr->depth++;
24671 ndr->depth--;
24673 if (flags & NDR_OUT) {
24674 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
24675 ndr->depth++;
24676 ndr_print_WERROR(ndr, "result", r->out.result);
24677 ndr->depth--;
24679 ndr->depth--;
24682 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
24684 if (flags & NDR_IN) {
24686 if (flags & NDR_OUT) {
24687 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24689 return NDR_ERR_SUCCESS;
24692 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
24694 if (flags & NDR_IN) {
24696 if (flags & NDR_OUT) {
24697 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24699 return NDR_ERR_SUCCESS;
24702 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
24704 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
24705 ndr->depth++;
24706 if (flags & NDR_SET_VALUES) {
24707 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24709 if (flags & NDR_IN) {
24710 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
24711 ndr->depth++;
24712 ndr->depth--;
24714 if (flags & NDR_OUT) {
24715 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
24716 ndr->depth++;
24717 ndr_print_WERROR(ndr, "result", r->out.result);
24718 ndr->depth--;
24720 ndr->depth--;
24723 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
24725 if (flags & NDR_IN) {
24727 if (flags & NDR_OUT) {
24728 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24730 return NDR_ERR_SUCCESS;
24733 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
24735 if (flags & NDR_IN) {
24737 if (flags & NDR_OUT) {
24738 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24740 return NDR_ERR_SUCCESS;
24743 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
24745 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
24746 ndr->depth++;
24747 if (flags & NDR_SET_VALUES) {
24748 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24750 if (flags & NDR_IN) {
24751 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
24752 ndr->depth++;
24753 ndr->depth--;
24755 if (flags & NDR_OUT) {
24756 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
24757 ndr->depth++;
24758 ndr_print_WERROR(ndr, "result", r->out.result);
24759 ndr->depth--;
24761 ndr->depth--;
24764 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
24766 if (flags & NDR_IN) {
24768 if (flags & NDR_OUT) {
24769 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24771 return NDR_ERR_SUCCESS;
24774 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
24776 if (flags & NDR_IN) {
24778 if (flags & NDR_OUT) {
24779 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24781 return NDR_ERR_SUCCESS;
24784 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
24786 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
24787 ndr->depth++;
24788 if (flags & NDR_SET_VALUES) {
24789 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24791 if (flags & NDR_IN) {
24792 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
24793 ndr->depth++;
24794 ndr->depth--;
24796 if (flags & NDR_OUT) {
24797 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
24798 ndr->depth++;
24799 ndr_print_WERROR(ndr, "result", r->out.result);
24800 ndr->depth--;
24802 ndr->depth--;
24805 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
24807 if (flags & NDR_IN) {
24809 if (flags & NDR_OUT) {
24810 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24812 return NDR_ERR_SUCCESS;
24815 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
24817 if (flags & NDR_IN) {
24819 if (flags & NDR_OUT) {
24820 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24822 return NDR_ERR_SUCCESS;
24825 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
24827 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
24828 ndr->depth++;
24829 if (flags & NDR_SET_VALUES) {
24830 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24832 if (flags & NDR_IN) {
24833 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
24834 ndr->depth++;
24835 ndr->depth--;
24837 if (flags & NDR_OUT) {
24838 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
24839 ndr->depth++;
24840 ndr_print_WERROR(ndr, "result", r->out.result);
24841 ndr->depth--;
24843 ndr->depth--;
24846 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
24848 if (flags & NDR_IN) {
24849 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24850 if (r->in.servername) {
24851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24854 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24856 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
24857 if (r->in.print_processor_name) {
24858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
24859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
24861 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));
24863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24864 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24865 if (r->in.buffer) {
24866 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24870 if (flags & NDR_OUT) {
24871 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24872 if (r->out.info) {
24873 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24875 if (r->out.needed == NULL) {
24876 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24879 if (r->out.count == NULL) {
24880 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24883 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24885 return NDR_ERR_SUCCESS;
24888 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
24890 uint32_t _ptr_servername;
24891 uint32_t size_servername_1 = 0;
24892 uint32_t length_servername_1 = 0;
24893 uint32_t _ptr_print_processor_name;
24894 uint32_t size_print_processor_name_1 = 0;
24895 uint32_t length_print_processor_name_1 = 0;
24896 uint32_t _ptr_buffer;
24897 uint32_t _ptr_info;
24898 TALLOC_CTX *_mem_save_servername_0;
24899 TALLOC_CTX *_mem_save_print_processor_name_0;
24900 TALLOC_CTX *_mem_save_buffer_0;
24901 TALLOC_CTX *_mem_save_info_0;
24902 TALLOC_CTX *_mem_save_needed_0;
24903 TALLOC_CTX *_mem_save_count_0;
24904 if (flags & NDR_IN) {
24905 ZERO_STRUCT(r->out);
24907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24908 if (_ptr_servername) {
24909 NDR_PULL_ALLOC(ndr, r->in.servername);
24910 } else {
24911 r->in.servername = NULL;
24913 if (r->in.servername) {
24914 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24915 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24916 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24917 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24918 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
24919 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
24920 if (length_servername_1 > size_servername_1) {
24921 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
24923 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
24924 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
24925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24927 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
24928 if (_ptr_print_processor_name) {
24929 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
24930 } else {
24931 r->in.print_processor_name = NULL;
24933 if (r->in.print_processor_name) {
24934 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
24935 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
24936 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
24937 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
24938 size_print_processor_name_1 = ndr_get_array_size(ndr, &r->in.print_processor_name);
24939 length_print_processor_name_1 = ndr_get_array_length(ndr, &r->in.print_processor_name);
24940 if (length_print_processor_name_1 > size_print_processor_name_1) {
24941 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_name_1, length_print_processor_name_1);
24943 NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_name_1, sizeof(uint16_t)));
24944 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, length_print_processor_name_1, sizeof(uint16_t), CH_UTF16));
24945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
24947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24948 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24949 if (_ptr_buffer) {
24950 NDR_PULL_ALLOC(ndr, r->in.buffer);
24951 } else {
24952 r->in.buffer = NULL;
24954 if (r->in.buffer) {
24955 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24956 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24957 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24960 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24961 NDR_PULL_ALLOC(ndr, r->out.needed);
24962 ZERO_STRUCTP(r->out.needed);
24963 NDR_PULL_ALLOC(ndr, r->out.count);
24964 ZERO_STRUCTP(r->out.count);
24966 if (flags & NDR_OUT) {
24967 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24968 if (_ptr_info) {
24969 NDR_PULL_ALLOC(ndr, r->out.info);
24970 } else {
24971 r->out.info = NULL;
24973 if (r->out.info) {
24974 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24975 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24976 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24979 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24980 NDR_PULL_ALLOC(ndr, r->out.needed);
24982 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24983 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24984 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24986 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24987 NDR_PULL_ALLOC(ndr, r->out.count);
24989 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24990 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24991 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24993 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24995 return NDR_ERR_SUCCESS;
24998 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
25000 uint32_t cntr_info_0;
25001 if (flags & NDR_IN) {
25002 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25005 if (flags & NDR_OUT) {
25006 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25007 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25008 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25010 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25011 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25014 return NDR_ERR_SUCCESS;
25017 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
25019 uint32_t size_info_0 = 0;
25020 uint32_t cntr_info_0;
25021 TALLOC_CTX *_mem_save_info_0;
25022 if (flags & NDR_IN) {
25023 ZERO_STRUCT(r->out);
25025 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25026 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25028 if (flags & NDR_OUT) {
25029 size_info_0 = r->in.count;
25030 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
25031 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25032 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25033 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
25034 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25035 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25037 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
25038 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25040 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25042 return NDR_ERR_SUCCESS;
25045 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
25047 uint32_t cntr_info_2;
25048 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
25049 ndr->depth++;
25050 if (flags & NDR_SET_VALUES) {
25051 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25053 if (flags & NDR_IN) {
25054 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
25055 ndr->depth++;
25056 ndr_print_ptr(ndr, "servername", r->in.servername);
25057 ndr->depth++;
25058 if (r->in.servername) {
25059 ndr_print_string(ndr, "servername", r->in.servername);
25061 ndr->depth--;
25062 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
25063 ndr->depth++;
25064 if (r->in.print_processor_name) {
25065 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
25067 ndr->depth--;
25068 ndr_print_uint32(ndr, "level", r->in.level);
25069 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25070 ndr->depth++;
25071 if (r->in.buffer) {
25072 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25074 ndr->depth--;
25075 ndr_print_uint32(ndr, "offered", r->in.offered);
25076 ndr->depth--;
25078 if (flags & NDR_OUT) {
25079 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
25080 ndr->depth++;
25081 ndr_print_ptr(ndr, "count", r->out.count);
25082 ndr->depth++;
25083 ndr_print_uint32(ndr, "count", *r->out.count);
25084 ndr->depth--;
25085 ndr_print_ptr(ndr, "info", r->out.info);
25086 ndr->depth++;
25087 ndr_print_ptr(ndr, "info", *r->out.info);
25088 ndr->depth++;
25089 if (*r->out.info) {
25090 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25091 ndr->depth++;
25092 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25093 char *idx_2=NULL;
25094 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25095 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25096 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25097 free(idx_2);
25100 ndr->depth--;
25102 ndr->depth--;
25103 ndr->depth--;
25104 ndr_print_ptr(ndr, "needed", r->out.needed);
25105 ndr->depth++;
25106 ndr_print_uint32(ndr, "needed", *r->out.needed);
25107 ndr->depth--;
25108 ndr_print_WERROR(ndr, "result", r->out.result);
25109 ndr->depth--;
25111 ndr->depth--;
25114 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
25116 if (flags & NDR_IN) {
25117 if (r->in.handle == NULL) {
25118 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25120 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25121 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
25122 if (r->in.data_type) {
25123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
25126 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));
25128 if (r->in.devmode_ctr == NULL) {
25129 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25131 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25133 if (flags & NDR_OUT) {
25134 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25136 return NDR_ERR_SUCCESS;
25139 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
25141 uint32_t _ptr_data_type;
25142 uint32_t size_data_type_1 = 0;
25143 uint32_t length_data_type_1 = 0;
25144 TALLOC_CTX *_mem_save_handle_0;
25145 TALLOC_CTX *_mem_save_data_type_0;
25146 TALLOC_CTX *_mem_save_devmode_ctr_0;
25147 if (flags & NDR_IN) {
25148 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25149 NDR_PULL_ALLOC(ndr, r->in.handle);
25151 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25152 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25153 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25154 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25155 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
25156 if (_ptr_data_type) {
25157 NDR_PULL_ALLOC(ndr, r->in.data_type);
25158 } else {
25159 r->in.data_type = NULL;
25161 if (r->in.data_type) {
25162 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25163 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
25164 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
25165 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
25166 size_data_type_1 = ndr_get_array_size(ndr, &r->in.data_type);
25167 length_data_type_1 = ndr_get_array_length(ndr, &r->in.data_type);
25168 if (length_data_type_1 > size_data_type_1) {
25169 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_type_1, length_data_type_1);
25171 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
25172 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
25173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
25175 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25176 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25178 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25179 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25180 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25181 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25183 if (flags & NDR_OUT) {
25184 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25186 return NDR_ERR_SUCCESS;
25189 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
25191 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
25192 ndr->depth++;
25193 if (flags & NDR_SET_VALUES) {
25194 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25196 if (flags & NDR_IN) {
25197 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
25198 ndr->depth++;
25199 ndr_print_ptr(ndr, "handle", r->in.handle);
25200 ndr->depth++;
25201 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25202 ndr->depth--;
25203 ndr_print_ptr(ndr, "data_type", r->in.data_type);
25204 ndr->depth++;
25205 if (r->in.data_type) {
25206 ndr_print_string(ndr, "data_type", r->in.data_type);
25208 ndr->depth--;
25209 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25210 ndr->depth++;
25211 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25212 ndr->depth--;
25213 ndr->depth--;
25215 if (flags & NDR_OUT) {
25216 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
25217 ndr->depth++;
25218 ndr_print_WERROR(ndr, "result", r->out.result);
25219 ndr->depth--;
25221 ndr->depth--;
25224 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
25226 if (flags & NDR_IN) {
25227 if (r->in.handle == NULL) {
25228 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25230 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25231 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
25232 if (r->in.architecture) {
25233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25234 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
25236 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25239 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25240 if (r->in.buffer) {
25241 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
25245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
25247 if (flags & NDR_OUT) {
25248 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25249 if (r->out.info) {
25251 struct ndr_push *_ndr_info;
25252 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25253 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
25254 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25255 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25258 if (r->out.needed == NULL) {
25259 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25261 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25262 if (r->out.server_major_version == NULL) {
25263 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25265 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
25266 if (r->out.server_minor_version == NULL) {
25267 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
25270 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25272 return NDR_ERR_SUCCESS;
25275 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
25277 uint32_t _ptr_architecture;
25278 uint32_t size_architecture_1 = 0;
25279 uint32_t length_architecture_1 = 0;
25280 uint32_t _ptr_buffer;
25281 uint32_t _ptr_info;
25282 TALLOC_CTX *_mem_save_handle_0;
25283 TALLOC_CTX *_mem_save_architecture_0;
25284 TALLOC_CTX *_mem_save_buffer_0;
25285 TALLOC_CTX *_mem_save_info_0;
25286 TALLOC_CTX *_mem_save_needed_0;
25287 TALLOC_CTX *_mem_save_server_major_version_0;
25288 TALLOC_CTX *_mem_save_server_minor_version_0;
25289 if (flags & NDR_IN) {
25290 ZERO_STRUCT(r->out);
25292 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25293 NDR_PULL_ALLOC(ndr, r->in.handle);
25295 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25296 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25297 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25298 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25299 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
25300 if (_ptr_architecture) {
25301 NDR_PULL_ALLOC(ndr, r->in.architecture);
25302 } else {
25303 r->in.architecture = NULL;
25305 if (r->in.architecture) {
25306 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
25307 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
25308 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
25309 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
25310 size_architecture_1 = ndr_get_array_size(ndr, &r->in.architecture);
25311 length_architecture_1 = ndr_get_array_length(ndr, &r->in.architecture);
25312 if (length_architecture_1 > size_architecture_1) {
25313 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
25315 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
25316 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
25317 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
25319 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25321 if (_ptr_buffer) {
25322 NDR_PULL_ALLOC(ndr, r->in.buffer);
25323 } else {
25324 r->in.buffer = NULL;
25326 if (r->in.buffer) {
25327 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25328 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25329 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
25334 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
25335 NDR_PULL_ALLOC(ndr, r->out.needed);
25336 ZERO_STRUCTP(r->out.needed);
25337 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25338 ZERO_STRUCTP(r->out.server_major_version);
25339 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25340 ZERO_STRUCTP(r->out.server_minor_version);
25342 if (flags & NDR_OUT) {
25343 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25344 if (_ptr_info) {
25345 NDR_PULL_ALLOC(ndr, r->out.info);
25346 } else {
25347 r->out.info = NULL;
25349 if (r->out.info) {
25350 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25351 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25353 struct ndr_pull *_ndr_info;
25354 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25355 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
25356 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25357 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25359 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25361 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25362 NDR_PULL_ALLOC(ndr, r->out.needed);
25364 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25365 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25366 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25368 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25369 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25371 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25372 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
25373 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
25374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
25375 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25376 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25378 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25379 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
25380 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
25381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
25382 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25384 return NDR_ERR_SUCCESS;
25387 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
25389 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
25390 ndr->depth++;
25391 if (flags & NDR_SET_VALUES) {
25392 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25394 if (flags & NDR_IN) {
25395 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
25396 ndr->depth++;
25397 ndr_print_ptr(ndr, "handle", r->in.handle);
25398 ndr->depth++;
25399 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25400 ndr->depth--;
25401 ndr_print_ptr(ndr, "architecture", r->in.architecture);
25402 ndr->depth++;
25403 if (r->in.architecture) {
25404 ndr_print_string(ndr, "architecture", r->in.architecture);
25406 ndr->depth--;
25407 ndr_print_uint32(ndr, "level", r->in.level);
25408 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25409 ndr->depth++;
25410 if (r->in.buffer) {
25411 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25413 ndr->depth--;
25414 ndr_print_uint32(ndr, "offered", r->in.offered);
25415 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
25416 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
25417 ndr->depth--;
25419 if (flags & NDR_OUT) {
25420 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
25421 ndr->depth++;
25422 ndr_print_ptr(ndr, "info", r->out.info);
25423 ndr->depth++;
25424 if (r->out.info) {
25425 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
25426 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
25428 ndr->depth--;
25429 ndr_print_ptr(ndr, "needed", r->out.needed);
25430 ndr->depth++;
25431 ndr_print_uint32(ndr, "needed", *r->out.needed);
25432 ndr->depth--;
25433 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
25434 ndr->depth++;
25435 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
25436 ndr->depth--;
25437 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
25438 ndr->depth++;
25439 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
25440 ndr->depth--;
25441 ndr_print_WERROR(ndr, "result", r->out.result);
25442 ndr->depth--;
25444 ndr->depth--;
25447 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25449 if (flags & NDR_IN) {
25451 if (flags & NDR_OUT) {
25452 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25454 return NDR_ERR_SUCCESS;
25457 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
25459 if (flags & NDR_IN) {
25461 if (flags & NDR_OUT) {
25462 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25464 return NDR_ERR_SUCCESS;
25467 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25469 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
25470 ndr->depth++;
25471 if (flags & NDR_SET_VALUES) {
25472 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25474 if (flags & NDR_IN) {
25475 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
25476 ndr->depth++;
25477 ndr->depth--;
25479 if (flags & NDR_OUT) {
25480 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
25481 ndr->depth++;
25482 ndr_print_WERROR(ndr, "result", r->out.result);
25483 ndr->depth--;
25485 ndr->depth--;
25488 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
25490 if (flags & NDR_IN) {
25492 if (flags & NDR_OUT) {
25493 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25495 return NDR_ERR_SUCCESS;
25498 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
25500 if (flags & NDR_IN) {
25502 if (flags & NDR_OUT) {
25503 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25505 return NDR_ERR_SUCCESS;
25508 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
25510 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
25511 ndr->depth++;
25512 if (flags & NDR_SET_VALUES) {
25513 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25515 if (flags & NDR_IN) {
25516 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
25517 ndr->depth++;
25518 ndr->depth--;
25520 if (flags & NDR_OUT) {
25521 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
25522 ndr->depth++;
25523 ndr_print_WERROR(ndr, "result", r->out.result);
25524 ndr->depth--;
25526 ndr->depth--;
25529 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
25531 if (flags & NDR_IN) {
25532 if (r->in.handle == NULL) {
25533 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25535 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25537 if (flags & NDR_OUT) {
25538 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25540 return NDR_ERR_SUCCESS;
25543 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
25545 TALLOC_CTX *_mem_save_handle_0;
25546 if (flags & NDR_IN) {
25547 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25548 NDR_PULL_ALLOC(ndr, r->in.handle);
25550 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25551 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25552 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25555 if (flags & NDR_OUT) {
25556 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25558 return NDR_ERR_SUCCESS;
25561 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
25563 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
25564 ndr->depth++;
25565 if (flags & NDR_SET_VALUES) {
25566 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25568 if (flags & NDR_IN) {
25569 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
25570 ndr->depth++;
25571 ndr_print_ptr(ndr, "handle", r->in.handle);
25572 ndr->depth++;
25573 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25574 ndr->depth--;
25575 ndr->depth--;
25577 if (flags & NDR_OUT) {
25578 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
25579 ndr->depth++;
25580 ndr_print_WERROR(ndr, "result", r->out.result);
25581 ndr->depth--;
25583 ndr->depth--;
25586 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25588 if (flags & NDR_IN) {
25590 if (flags & NDR_OUT) {
25591 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25593 return NDR_ERR_SUCCESS;
25596 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25598 if (flags & NDR_IN) {
25600 if (flags & NDR_OUT) {
25601 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25603 return NDR_ERR_SUCCESS;
25606 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25608 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25609 ndr->depth++;
25610 if (flags & NDR_SET_VALUES) {
25611 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25613 if (flags & NDR_IN) {
25614 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25615 ndr->depth++;
25616 ndr->depth--;
25618 if (flags & NDR_OUT) {
25619 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25620 ndr->depth++;
25621 ndr_print_WERROR(ndr, "result", r->out.result);
25622 ndr->depth--;
25624 ndr->depth--;
25627 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
25629 if (flags & NDR_IN) {
25630 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25633 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));
25634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
25635 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
25636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25637 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25638 if (r->in.buffer) {
25639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25640 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
25643 if (flags & NDR_OUT) {
25644 if (r->out.handle == NULL) {
25645 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25647 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25648 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25650 return NDR_ERR_SUCCESS;
25653 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
25655 uint32_t size_server_name_0 = 0;
25656 uint32_t length_server_name_0 = 0;
25657 uint32_t _ptr_buffer;
25658 uint32_t size_buffer_1 = 0;
25659 TALLOC_CTX *_mem_save_buffer_0;
25660 TALLOC_CTX *_mem_save_handle_0;
25661 if (flags & NDR_IN) {
25662 ZERO_STRUCT(r->out);
25664 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
25665 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
25666 size_server_name_0 = ndr_get_array_size(ndr, &r->in.server_name);
25667 length_server_name_0 = ndr_get_array_length(ndr, &r->in.server_name);
25668 if (length_server_name_0 > size_server_name_0) {
25669 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_0, length_server_name_0);
25671 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_0, sizeof(uint16_t)));
25672 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_0, sizeof(uint16_t), CH_UTF16));
25673 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
25674 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
25675 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
25676 if (r->in.bufsize > 512) {
25677 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
25679 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25680 if (_ptr_buffer) {
25681 NDR_PULL_ALLOC(ndr, r->in.buffer);
25682 } else {
25683 r->in.buffer = NULL;
25685 if (r->in.buffer) {
25686 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25687 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25688 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25689 size_buffer_1 = ndr_get_array_size(ndr, &r->in.buffer);
25690 NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
25691 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
25692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25694 NDR_PULL_ALLOC(ndr, r->out.handle);
25695 ZERO_STRUCTP(r->out.handle);
25696 if (r->in.buffer) {
25697 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
25700 if (flags & NDR_OUT) {
25701 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25702 NDR_PULL_ALLOC(ndr, r->out.handle);
25704 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25705 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25706 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25707 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25708 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25710 return NDR_ERR_SUCCESS;
25713 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
25715 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
25716 ndr->depth++;
25717 if (flags & NDR_SET_VALUES) {
25718 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25720 if (flags & NDR_IN) {
25721 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
25722 ndr->depth++;
25723 ndr_print_string(ndr, "server_name", r->in.server_name);
25724 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
25725 ndr_print_winreg_Type(ndr, "type", r->in.type);
25726 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
25727 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25728 ndr->depth++;
25729 if (r->in.buffer) {
25730 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
25732 ndr->depth--;
25733 ndr->depth--;
25735 if (flags & NDR_OUT) {
25736 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
25737 ndr->depth++;
25738 ndr_print_ptr(ndr, "handle", r->out.handle);
25739 ndr->depth++;
25740 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25741 ndr->depth--;
25742 ndr_print_WERROR(ndr, "result", r->out.result);
25743 ndr->depth--;
25745 ndr->depth--;
25748 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
25750 if (flags & NDR_IN) {
25751 if (r->in.handle == NULL) {
25752 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25754 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25755 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
25756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25757 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25758 if (r->in.buffer) {
25759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25760 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
25763 if (flags & NDR_OUT) {
25764 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25766 return NDR_ERR_SUCCESS;
25769 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
25771 uint32_t _ptr_buffer;
25772 uint32_t size_buffer_1 = 0;
25773 TALLOC_CTX *_mem_save_handle_0;
25774 TALLOC_CTX *_mem_save_buffer_0;
25775 if (flags & NDR_IN) {
25776 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25777 NDR_PULL_ALLOC(ndr, r->in.handle);
25779 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25780 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25781 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25783 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
25784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
25785 if (r->in.bufsize > 512) {
25786 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
25788 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25789 if (_ptr_buffer) {
25790 NDR_PULL_ALLOC(ndr, r->in.buffer);
25791 } else {
25792 r->in.buffer = NULL;
25794 if (r->in.buffer) {
25795 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25796 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25797 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25798 size_buffer_1 = ndr_get_array_size(ndr, &r->in.buffer);
25799 NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
25800 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
25801 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25803 if (r->in.buffer) {
25804 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
25807 if (flags & NDR_OUT) {
25808 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25810 return NDR_ERR_SUCCESS;
25813 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
25815 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
25816 ndr->depth++;
25817 if (flags & NDR_SET_VALUES) {
25818 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25820 if (flags & NDR_IN) {
25821 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
25822 ndr->depth++;
25823 ndr_print_ptr(ndr, "handle", r->in.handle);
25824 ndr->depth++;
25825 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25826 ndr->depth--;
25827 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
25828 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
25829 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25830 ndr->depth++;
25831 if (r->in.buffer) {
25832 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
25834 ndr->depth--;
25835 ndr->depth--;
25837 if (flags & NDR_OUT) {
25838 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
25839 ndr->depth++;
25840 ndr_print_WERROR(ndr, "result", r->out.result);
25841 ndr->depth--;
25843 ndr->depth--;
25846 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
25848 if (flags & NDR_IN) {
25849 if (r->in.handle == NULL) {
25850 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25852 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25854 if (flags & NDR_OUT) {
25855 if (r->out.handle == NULL) {
25856 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25858 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25859 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25861 return NDR_ERR_SUCCESS;
25864 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
25866 TALLOC_CTX *_mem_save_handle_0;
25867 if (flags & NDR_IN) {
25868 ZERO_STRUCT(r->out);
25870 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25871 NDR_PULL_ALLOC(ndr, r->in.handle);
25873 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25874 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25875 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25877 NDR_PULL_ALLOC(ndr, r->out.handle);
25878 *r->out.handle = *r->in.handle;
25880 if (flags & NDR_OUT) {
25881 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25882 NDR_PULL_ALLOC(ndr, r->out.handle);
25884 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25885 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25886 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25887 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25888 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25890 return NDR_ERR_SUCCESS;
25893 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
25895 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
25896 ndr->depth++;
25897 if (flags & NDR_SET_VALUES) {
25898 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25900 if (flags & NDR_IN) {
25901 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
25902 ndr->depth++;
25903 ndr_print_ptr(ndr, "handle", r->in.handle);
25904 ndr->depth++;
25905 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25906 ndr->depth--;
25907 ndr->depth--;
25909 if (flags & NDR_OUT) {
25910 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
25911 ndr->depth++;
25912 ndr_print_ptr(ndr, "handle", r->out.handle);
25913 ndr->depth++;
25914 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25915 ndr->depth--;
25916 ndr_print_WERROR(ndr, "result", r->out.result);
25917 ndr->depth--;
25919 ndr->depth--;
25922 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
25924 if (flags & NDR_IN) {
25926 if (flags & NDR_OUT) {
25927 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25929 return NDR_ERR_SUCCESS;
25932 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
25934 if (flags & NDR_IN) {
25936 if (flags & NDR_OUT) {
25937 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25939 return NDR_ERR_SUCCESS;
25942 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
25944 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
25945 ndr->depth++;
25946 if (flags & NDR_SET_VALUES) {
25947 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25949 if (flags & NDR_IN) {
25950 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
25951 ndr->depth++;
25952 ndr->depth--;
25954 if (flags & NDR_OUT) {
25955 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
25956 ndr->depth++;
25957 ndr_print_WERROR(ndr, "result", r->out.result);
25958 ndr->depth--;
25960 ndr->depth--;
25963 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
25965 if (flags & NDR_IN) {
25967 if (flags & NDR_OUT) {
25968 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25970 return NDR_ERR_SUCCESS;
25973 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
25975 if (flags & NDR_IN) {
25977 if (flags & NDR_OUT) {
25978 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25980 return NDR_ERR_SUCCESS;
25983 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
25985 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
25986 ndr->depth++;
25987 if (flags & NDR_SET_VALUES) {
25988 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25990 if (flags & NDR_IN) {
25991 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
25992 ndr->depth++;
25993 ndr->depth--;
25995 if (flags & NDR_OUT) {
25996 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
25997 ndr->depth++;
25998 ndr_print_WERROR(ndr, "result", r->out.result);
25999 ndr->depth--;
26001 ndr->depth--;
26004 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
26006 if (flags & NDR_IN) {
26008 if (flags & NDR_OUT) {
26009 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26011 return NDR_ERR_SUCCESS;
26014 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
26016 if (flags & NDR_IN) {
26018 if (flags & NDR_OUT) {
26019 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26021 return NDR_ERR_SUCCESS;
26024 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
26026 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
26027 ndr->depth++;
26028 if (flags & NDR_SET_VALUES) {
26029 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26031 if (flags & NDR_IN) {
26032 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
26033 ndr->depth++;
26034 ndr->depth--;
26036 if (flags & NDR_OUT) {
26037 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
26038 ndr->depth++;
26039 ndr_print_WERROR(ndr, "result", r->out.result);
26040 ndr->depth--;
26042 ndr->depth--;
26045 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
26047 if (flags & NDR_IN) {
26049 if (flags & NDR_OUT) {
26050 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26052 return NDR_ERR_SUCCESS;
26055 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
26057 if (flags & NDR_IN) {
26059 if (flags & NDR_OUT) {
26060 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26062 return NDR_ERR_SUCCESS;
26065 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
26067 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
26068 ndr->depth++;
26069 if (flags & NDR_SET_VALUES) {
26070 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26072 if (flags & NDR_IN) {
26073 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
26074 ndr->depth++;
26075 ndr->depth--;
26077 if (flags & NDR_OUT) {
26078 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
26079 ndr->depth++;
26080 ndr_print_WERROR(ndr, "result", r->out.result);
26081 ndr->depth--;
26083 ndr->depth--;
26086 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26088 if (flags & NDR_IN) {
26089 if (r->in.handle == NULL) {
26090 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26092 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26093 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
26095 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
26096 if (r->in.local_machine) {
26097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
26100 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));
26102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26103 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
26104 if (r->in.notify_options) {
26105 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26108 if (flags & NDR_OUT) {
26109 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26111 return NDR_ERR_SUCCESS;
26114 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26116 uint32_t _ptr_local_machine;
26117 uint32_t size_local_machine_1 = 0;
26118 uint32_t length_local_machine_1 = 0;
26119 uint32_t _ptr_notify_options;
26120 TALLOC_CTX *_mem_save_handle_0;
26121 TALLOC_CTX *_mem_save_local_machine_0;
26122 TALLOC_CTX *_mem_save_notify_options_0;
26123 if (flags & NDR_IN) {
26124 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26125 NDR_PULL_ALLOC(ndr, r->in.handle);
26127 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26128 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26129 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26130 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26131 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26132 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
26133 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
26134 if (_ptr_local_machine) {
26135 NDR_PULL_ALLOC(ndr, r->in.local_machine);
26136 } else {
26137 r->in.local_machine = NULL;
26139 if (r->in.local_machine) {
26140 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
26141 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
26142 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
26143 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
26144 size_local_machine_1 = ndr_get_array_size(ndr, &r->in.local_machine);
26145 length_local_machine_1 = ndr_get_array_length(ndr, &r->in.local_machine);
26146 if (length_local_machine_1 > size_local_machine_1) {
26147 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_local_machine_1, length_local_machine_1);
26149 NDR_CHECK(ndr_check_string_terminator(ndr, length_local_machine_1, sizeof(uint16_t)));
26150 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.local_machine, length_local_machine_1, sizeof(uint16_t), CH_UTF16));
26151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
26153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
26155 if (_ptr_notify_options) {
26156 NDR_PULL_ALLOC(ndr, r->in.notify_options);
26157 } else {
26158 r->in.notify_options = NULL;
26160 if (r->in.notify_options) {
26161 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26162 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
26163 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
26164 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
26167 if (flags & NDR_OUT) {
26168 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26170 return NDR_ERR_SUCCESS;
26173 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
26175 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26176 ndr->depth++;
26177 if (flags & NDR_SET_VALUES) {
26178 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26180 if (flags & NDR_IN) {
26181 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26182 ndr->depth++;
26183 ndr_print_ptr(ndr, "handle", r->in.handle);
26184 ndr->depth++;
26185 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26186 ndr->depth--;
26187 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26188 ndr_print_uint32(ndr, "options", r->in.options);
26189 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
26190 ndr->depth++;
26191 if (r->in.local_machine) {
26192 ndr_print_string(ndr, "local_machine", r->in.local_machine);
26194 ndr->depth--;
26195 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26196 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
26197 ndr->depth++;
26198 if (r->in.notify_options) {
26199 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
26201 ndr->depth--;
26202 ndr->depth--;
26204 if (flags & NDR_OUT) {
26205 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26206 ndr->depth++;
26207 ndr_print_WERROR(ndr, "result", r->out.result);
26208 ndr->depth--;
26210 ndr->depth--;
26213 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26215 if (flags & NDR_IN) {
26216 if (r->in.handle == NULL) {
26217 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26219 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
26221 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
26223 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26224 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26226 if (flags & NDR_OUT) {
26227 if (r->out.reply_result == NULL) {
26228 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26230 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
26231 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26233 return NDR_ERR_SUCCESS;
26236 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
26238 TALLOC_CTX *_mem_save_handle_0;
26239 TALLOC_CTX *_mem_save_reply_result_0;
26240 if (flags & NDR_IN) {
26241 ZERO_STRUCT(r->out);
26243 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26244 NDR_PULL_ALLOC(ndr, r->in.handle);
26246 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26247 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26248 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26249 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26250 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
26251 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26252 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
26253 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
26254 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
26255 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26256 ZERO_STRUCTP(r->out.reply_result);
26258 if (flags & NDR_OUT) {
26259 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26260 NDR_PULL_ALLOC(ndr, r->out.reply_result);
26262 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
26263 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
26264 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
26265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
26266 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26268 return NDR_ERR_SUCCESS;
26271 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
26273 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
26274 ndr->depth++;
26275 if (flags & NDR_SET_VALUES) {
26276 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26278 if (flags & NDR_IN) {
26279 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
26280 ndr->depth++;
26281 ndr_print_ptr(ndr, "handle", r->in.handle);
26282 ndr->depth++;
26283 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26284 ndr->depth--;
26285 ndr_print_uint32(ndr, "color", r->in.color);
26286 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26287 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
26288 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
26289 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
26290 ndr->depth--;
26292 if (flags & NDR_OUT) {
26293 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
26294 ndr->depth++;
26295 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
26296 ndr->depth++;
26297 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
26298 ndr->depth--;
26299 ndr_print_WERROR(ndr, "result", r->out.result);
26300 ndr->depth--;
26302 ndr->depth--;
26305 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26307 if (flags & NDR_IN) {
26308 if (r->in.handle == NULL) {
26309 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26311 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26312 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
26313 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
26314 if (r->in.options) {
26315 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26318 if (flags & NDR_OUT) {
26319 if (r->out.info == NULL) {
26320 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26322 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
26323 if (*r->out.info) {
26324 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26326 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26328 return NDR_ERR_SUCCESS;
26331 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
26333 uint32_t _ptr_options;
26334 uint32_t _ptr_info;
26335 TALLOC_CTX *_mem_save_handle_0;
26336 TALLOC_CTX *_mem_save_options_0;
26337 TALLOC_CTX *_mem_save_info_0;
26338 TALLOC_CTX *_mem_save_info_1;
26339 if (flags & NDR_IN) {
26340 ZERO_STRUCT(r->out);
26342 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26343 NDR_PULL_ALLOC(ndr, r->in.handle);
26345 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26346 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26347 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
26350 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
26351 if (_ptr_options) {
26352 NDR_PULL_ALLOC(ndr, r->in.options);
26353 } else {
26354 r->in.options = NULL;
26356 if (r->in.options) {
26357 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
26358 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
26359 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
26360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
26362 NDR_PULL_ALLOC(ndr, r->out.info);
26363 ZERO_STRUCTP(r->out.info);
26365 if (flags & NDR_OUT) {
26366 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26367 NDR_PULL_ALLOC(ndr, r->out.info);
26369 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26370 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
26371 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26372 if (_ptr_info) {
26373 NDR_PULL_ALLOC(ndr, *r->out.info);
26374 } else {
26375 *r->out.info = NULL;
26377 if (*r->out.info) {
26378 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
26379 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
26380 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
26383 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
26384 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26386 return NDR_ERR_SUCCESS;
26389 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26391 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
26392 ndr->depth++;
26393 if (flags & NDR_SET_VALUES) {
26394 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26396 if (flags & NDR_IN) {
26397 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
26398 ndr->depth++;
26399 ndr_print_ptr(ndr, "handle", r->in.handle);
26400 ndr->depth++;
26401 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26402 ndr->depth--;
26403 ndr_print_uint32(ndr, "change_low", r->in.change_low);
26404 ndr_print_ptr(ndr, "options", r->in.options);
26405 ndr->depth++;
26406 if (r->in.options) {
26407 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
26409 ndr->depth--;
26410 ndr->depth--;
26412 if (flags & NDR_OUT) {
26413 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
26414 ndr->depth++;
26415 ndr_print_ptr(ndr, "info", r->out.info);
26416 ndr->depth++;
26417 ndr_print_ptr(ndr, "info", *r->out.info);
26418 ndr->depth++;
26419 if (*r->out.info) {
26420 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
26422 ndr->depth--;
26423 ndr->depth--;
26424 ndr_print_WERROR(ndr, "result", r->out.result);
26425 ndr->depth--;
26427 ndr->depth--;
26430 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
26432 if (flags & NDR_IN) {
26434 if (flags & NDR_OUT) {
26435 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26437 return NDR_ERR_SUCCESS;
26440 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
26442 if (flags & NDR_IN) {
26444 if (flags & NDR_OUT) {
26445 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26447 return NDR_ERR_SUCCESS;
26450 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
26452 ndr_print_struct(ndr, name, "spoolss_44");
26453 ndr->depth++;
26454 if (flags & NDR_SET_VALUES) {
26455 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26457 if (flags & NDR_IN) {
26458 ndr_print_struct(ndr, "in", "spoolss_44");
26459 ndr->depth++;
26460 ndr->depth--;
26462 if (flags & NDR_OUT) {
26463 ndr_print_struct(ndr, "out", "spoolss_44");
26464 ndr->depth++;
26465 ndr_print_WERROR(ndr, "result", r->out.result);
26466 ndr->depth--;
26468 ndr->depth--;
26471 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
26473 if (flags & NDR_IN) {
26474 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
26475 if (r->in.printername) {
26476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26479 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26481 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
26482 if (r->in.datatype) {
26483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26486 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26488 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26489 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
26490 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26491 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
26492 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
26494 if (flags & NDR_OUT) {
26495 if (r->out.handle == NULL) {
26496 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26498 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26499 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26501 return NDR_ERR_SUCCESS;
26504 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
26506 uint32_t _ptr_printername;
26507 uint32_t size_printername_1 = 0;
26508 uint32_t length_printername_1 = 0;
26509 uint32_t _ptr_datatype;
26510 uint32_t size_datatype_1 = 0;
26511 uint32_t length_datatype_1 = 0;
26512 TALLOC_CTX *_mem_save_printername_0;
26513 TALLOC_CTX *_mem_save_datatype_0;
26514 TALLOC_CTX *_mem_save_handle_0;
26515 if (flags & NDR_IN) {
26516 ZERO_STRUCT(r->out);
26518 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
26519 if (_ptr_printername) {
26520 NDR_PULL_ALLOC(ndr, r->in.printername);
26521 } else {
26522 r->in.printername = NULL;
26524 if (r->in.printername) {
26525 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26526 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
26527 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
26528 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
26529 size_printername_1 = ndr_get_array_size(ndr, &r->in.printername);
26530 length_printername_1 = ndr_get_array_length(ndr, &r->in.printername);
26531 if (length_printername_1 > size_printername_1) {
26532 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
26534 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
26535 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
26536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
26538 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
26539 if (_ptr_datatype) {
26540 NDR_PULL_ALLOC(ndr, r->in.datatype);
26541 } else {
26542 r->in.datatype = NULL;
26544 if (r->in.datatype) {
26545 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
26546 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
26547 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
26548 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
26549 size_datatype_1 = ndr_get_array_size(ndr, &r->in.datatype);
26550 length_datatype_1 = ndr_get_array_length(ndr, &r->in.datatype);
26551 if (length_datatype_1 > size_datatype_1) {
26552 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_datatype_1, length_datatype_1);
26554 NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
26555 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
26556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
26558 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26559 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
26560 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26561 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
26562 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
26563 NDR_PULL_ALLOC(ndr, r->out.handle);
26564 ZERO_STRUCTP(r->out.handle);
26566 if (flags & NDR_OUT) {
26567 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26568 NDR_PULL_ALLOC(ndr, r->out.handle);
26570 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26571 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26572 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26573 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26574 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26576 return NDR_ERR_SUCCESS;
26579 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
26581 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
26582 ndr->depth++;
26583 if (flags & NDR_SET_VALUES) {
26584 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26586 if (flags & NDR_IN) {
26587 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
26588 ndr->depth++;
26589 ndr_print_ptr(ndr, "printername", r->in.printername);
26590 ndr->depth++;
26591 if (r->in.printername) {
26592 ndr_print_string(ndr, "printername", r->in.printername);
26594 ndr->depth--;
26595 ndr_print_ptr(ndr, "datatype", r->in.datatype);
26596 ndr->depth++;
26597 if (r->in.datatype) {
26598 ndr_print_string(ndr, "datatype", r->in.datatype);
26600 ndr->depth--;
26601 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
26602 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
26603 ndr_print_uint32(ndr, "level", r->in.level);
26604 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
26605 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
26606 ndr->depth--;
26608 if (flags & NDR_OUT) {
26609 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
26610 ndr->depth++;
26611 ndr_print_ptr(ndr, "handle", r->out.handle);
26612 ndr->depth++;
26613 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26614 ndr->depth--;
26615 ndr_print_WERROR(ndr, "result", r->out.result);
26616 ndr->depth--;
26618 ndr->depth--;
26621 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
26623 if (flags & NDR_IN) {
26624 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26625 if (r->in.server) {
26626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26629 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26631 if (r->in.info_ctr == NULL) {
26632 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26634 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26635 if (r->in.devmode_ctr == NULL) {
26636 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26638 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26639 if (r->in.secdesc_ctr == NULL) {
26640 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26642 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
26643 if (r->in.userlevel_ctr == NULL) {
26644 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26646 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
26648 if (flags & NDR_OUT) {
26649 if (r->out.handle == NULL) {
26650 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26652 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26653 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26655 return NDR_ERR_SUCCESS;
26658 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
26660 uint32_t _ptr_server;
26661 uint32_t size_server_1 = 0;
26662 uint32_t length_server_1 = 0;
26663 TALLOC_CTX *_mem_save_server_0;
26664 TALLOC_CTX *_mem_save_info_ctr_0;
26665 TALLOC_CTX *_mem_save_devmode_ctr_0;
26666 TALLOC_CTX *_mem_save_secdesc_ctr_0;
26667 TALLOC_CTX *_mem_save_userlevel_ctr_0;
26668 TALLOC_CTX *_mem_save_handle_0;
26669 if (flags & NDR_IN) {
26670 ZERO_STRUCT(r->out);
26672 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26673 if (_ptr_server) {
26674 NDR_PULL_ALLOC(ndr, r->in.server);
26675 } else {
26676 r->in.server = NULL;
26678 if (r->in.server) {
26679 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26680 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26681 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26682 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26683 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
26684 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
26685 if (length_server_1 > size_server_1) {
26686 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
26688 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
26689 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
26690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26692 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26693 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
26695 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26696 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
26697 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26698 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26699 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26700 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
26702 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26703 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
26704 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26706 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26707 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
26709 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26710 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
26711 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
26712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26713 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26714 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
26716 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26717 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
26718 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
26719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26720 NDR_PULL_ALLOC(ndr, r->out.handle);
26721 ZERO_STRUCTP(r->out.handle);
26723 if (flags & NDR_OUT) {
26724 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26725 NDR_PULL_ALLOC(ndr, r->out.handle);
26727 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26728 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26729 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26730 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26731 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26733 return NDR_ERR_SUCCESS;
26736 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
26738 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
26739 ndr->depth++;
26740 if (flags & NDR_SET_VALUES) {
26741 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26743 if (flags & NDR_IN) {
26744 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
26745 ndr->depth++;
26746 ndr_print_ptr(ndr, "server", r->in.server);
26747 ndr->depth++;
26748 if (r->in.server) {
26749 ndr_print_string(ndr, "server", r->in.server);
26751 ndr->depth--;
26752 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
26753 ndr->depth++;
26754 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
26755 ndr->depth--;
26756 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
26757 ndr->depth++;
26758 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
26759 ndr->depth--;
26760 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
26761 ndr->depth++;
26762 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
26763 ndr->depth--;
26764 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
26765 ndr->depth++;
26766 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
26767 ndr->depth--;
26768 ndr->depth--;
26770 if (flags & NDR_OUT) {
26771 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
26772 ndr->depth++;
26773 ndr_print_ptr(ndr, "handle", r->out.handle);
26774 ndr->depth++;
26775 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26776 ndr->depth--;
26777 ndr_print_WERROR(ndr, "result", r->out.result);
26778 ndr->depth--;
26780 ndr->depth--;
26783 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
26785 if (flags & NDR_IN) {
26787 if (flags & NDR_OUT) {
26788 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26790 return NDR_ERR_SUCCESS;
26793 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
26795 if (flags & NDR_IN) {
26797 if (flags & NDR_OUT) {
26798 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26800 return NDR_ERR_SUCCESS;
26803 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
26805 ndr_print_struct(ndr, name, "spoolss_47");
26806 ndr->depth++;
26807 if (flags & NDR_SET_VALUES) {
26808 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26810 if (flags & NDR_IN) {
26811 ndr_print_struct(ndr, "in", "spoolss_47");
26812 ndr->depth++;
26813 ndr->depth--;
26815 if (flags & NDR_OUT) {
26816 ndr_print_struct(ndr, "out", "spoolss_47");
26817 ndr->depth++;
26818 ndr_print_WERROR(ndr, "result", r->out.result);
26819 ndr->depth--;
26821 ndr->depth--;
26824 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
26826 if (flags & NDR_IN) {
26827 if (r->in.handle == NULL) {
26828 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26830 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
26832 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
26833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
26835 if (flags & NDR_OUT) {
26836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
26837 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
26838 if (r->out.value_needed == NULL) {
26839 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
26842 if (r->out.type == NULL) {
26843 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26845 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
26847 uint32_t _flags_save_uint8 = ndr->flags;
26848 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
26849 if (r->out.data == NULL) {
26850 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
26853 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
26854 ndr->flags = _flags_save_uint8;
26856 if (r->out.data_needed == NULL) {
26857 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
26860 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26862 return NDR_ERR_SUCCESS;
26865 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
26867 uint32_t size_value_name_0 = 0;
26868 uint32_t size_data_1 = 0;
26869 TALLOC_CTX *_mem_save_handle_0;
26870 TALLOC_CTX *_mem_save_value_needed_0;
26871 TALLOC_CTX *_mem_save_type_0;
26872 TALLOC_CTX *_mem_save_data_needed_0;
26873 if (flags & NDR_IN) {
26874 ZERO_STRUCT(r->out);
26876 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26877 NDR_PULL_ALLOC(ndr, r->in.handle);
26879 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26880 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26881 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26883 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
26884 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
26885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
26886 NDR_PULL_ALLOC(ndr, r->out.value_needed);
26887 ZERO_STRUCTP(r->out.value_needed);
26888 NDR_PULL_ALLOC(ndr, r->out.type);
26889 ZERO_STRUCTP(r->out.type);
26890 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
26891 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
26892 NDR_PULL_ALLOC(ndr, r->out.data_needed);
26893 ZERO_STRUCTP(r->out.data_needed);
26895 if (flags & NDR_OUT) {
26896 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
26897 size_value_name_0 = ndr_get_array_size(ndr, &r->out.value_name);
26898 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.value_name, size_value_name_0, sizeof(uint16_t), CH_UTF16));
26899 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26900 NDR_PULL_ALLOC(ndr, r->out.value_needed);
26902 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26903 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
26904 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
26905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
26906 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26907 NDR_PULL_ALLOC(ndr, r->out.type);
26909 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26910 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
26911 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
26912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
26914 uint32_t _flags_save_uint8 = ndr->flags;
26915 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
26916 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
26917 size_data_1 = ndr_get_array_size(ndr, &r->out.data);
26918 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26919 NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
26921 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
26922 ndr->flags = _flags_save_uint8;
26924 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26925 NDR_PULL_ALLOC(ndr, r->out.data_needed);
26927 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26928 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
26929 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
26930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
26931 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26932 if (r->out.value_name) {
26933 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
26935 if (r->out.data) {
26936 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
26939 return NDR_ERR_SUCCESS;
26942 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
26944 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
26945 ndr->depth++;
26946 if (flags & NDR_SET_VALUES) {
26947 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26949 if (flags & NDR_IN) {
26950 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
26951 ndr->depth++;
26952 ndr_print_ptr(ndr, "handle", r->in.handle);
26953 ndr->depth++;
26954 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26955 ndr->depth--;
26956 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
26957 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
26958 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
26959 ndr->depth--;
26961 if (flags & NDR_OUT) {
26962 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
26963 ndr->depth++;
26964 ndr_print_string(ndr, "value_name", r->out.value_name);
26965 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
26966 ndr->depth++;
26967 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
26968 ndr->depth--;
26969 ndr_print_ptr(ndr, "type", r->out.type);
26970 ndr->depth++;
26971 ndr_print_winreg_Type(ndr, "type", *r->out.type);
26972 ndr->depth--;
26973 ndr_print_ptr(ndr, "data", r->out.data);
26974 ndr->depth++;
26975 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
26976 ndr->depth--;
26977 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
26978 ndr->depth++;
26979 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
26980 ndr->depth--;
26981 ndr_print_WERROR(ndr, "result", r->out.result);
26982 ndr->depth--;
26984 ndr->depth--;
26987 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
26989 if (flags & NDR_IN) {
26990 if (r->in.handle == NULL) {
26991 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26993 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26997 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));
26999 if (flags & NDR_OUT) {
27000 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27002 return NDR_ERR_SUCCESS;
27005 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
27007 uint32_t size_value_name_0 = 0;
27008 uint32_t length_value_name_0 = 0;
27009 TALLOC_CTX *_mem_save_handle_0;
27010 if (flags & NDR_IN) {
27011 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27012 NDR_PULL_ALLOC(ndr, r->in.handle);
27014 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27015 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27016 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27018 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27019 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27020 size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
27021 length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
27022 if (length_value_name_0 > size_value_name_0) {
27023 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
27025 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
27026 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
27028 if (flags & NDR_OUT) {
27029 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27031 return NDR_ERR_SUCCESS;
27034 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
27036 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
27037 ndr->depth++;
27038 if (flags & NDR_SET_VALUES) {
27039 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27041 if (flags & NDR_IN) {
27042 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
27043 ndr->depth++;
27044 ndr_print_ptr(ndr, "handle", r->in.handle);
27045 ndr->depth++;
27046 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27047 ndr->depth--;
27048 ndr_print_string(ndr, "value_name", r->in.value_name);
27049 ndr->depth--;
27051 if (flags & NDR_OUT) {
27052 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
27053 ndr->depth++;
27054 ndr_print_WERROR(ndr, "result", r->out.result);
27055 ndr->depth--;
27057 ndr->depth--;
27060 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
27062 if (flags & NDR_IN) {
27064 if (flags & NDR_OUT) {
27065 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27067 return NDR_ERR_SUCCESS;
27070 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
27072 if (flags & NDR_IN) {
27074 if (flags & NDR_OUT) {
27075 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27077 return NDR_ERR_SUCCESS;
27080 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
27082 ndr_print_struct(ndr, name, "spoolss_4a");
27083 ndr->depth++;
27084 if (flags & NDR_SET_VALUES) {
27085 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27087 if (flags & NDR_IN) {
27088 ndr_print_struct(ndr, "in", "spoolss_4a");
27089 ndr->depth++;
27090 ndr->depth--;
27092 if (flags & NDR_OUT) {
27093 ndr_print_struct(ndr, "out", "spoolss_4a");
27094 ndr->depth++;
27095 ndr_print_WERROR(ndr, "result", r->out.result);
27096 ndr->depth--;
27098 ndr->depth--;
27101 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
27103 if (flags & NDR_IN) {
27105 if (flags & NDR_OUT) {
27106 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27108 return NDR_ERR_SUCCESS;
27111 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
27113 if (flags & NDR_IN) {
27115 if (flags & NDR_OUT) {
27116 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27118 return NDR_ERR_SUCCESS;
27121 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
27123 ndr_print_struct(ndr, name, "spoolss_4b");
27124 ndr->depth++;
27125 if (flags & NDR_SET_VALUES) {
27126 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27128 if (flags & NDR_IN) {
27129 ndr_print_struct(ndr, "in", "spoolss_4b");
27130 ndr->depth++;
27131 ndr->depth--;
27133 if (flags & NDR_OUT) {
27134 ndr_print_struct(ndr, "out", "spoolss_4b");
27135 ndr->depth++;
27136 ndr_print_WERROR(ndr, "result", r->out.result);
27137 ndr->depth--;
27139 ndr->depth--;
27142 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
27144 if (flags & NDR_IN) {
27146 if (flags & NDR_OUT) {
27147 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27149 return NDR_ERR_SUCCESS;
27152 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
27154 if (flags & NDR_IN) {
27156 if (flags & NDR_OUT) {
27157 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27159 return NDR_ERR_SUCCESS;
27162 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
27164 ndr_print_struct(ndr, name, "spoolss_4c");
27165 ndr->depth++;
27166 if (flags & NDR_SET_VALUES) {
27167 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27169 if (flags & NDR_IN) {
27170 ndr_print_struct(ndr, "in", "spoolss_4c");
27171 ndr->depth++;
27172 ndr->depth--;
27174 if (flags & NDR_OUT) {
27175 ndr_print_struct(ndr, "out", "spoolss_4c");
27176 ndr->depth++;
27177 ndr_print_WERROR(ndr, "result", r->out.result);
27178 ndr->depth--;
27180 ndr->depth--;
27183 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
27185 if (flags & NDR_IN) {
27186 if (r->in.handle == NULL) {
27187 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27189 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27190 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27193 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));
27194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27197 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));
27198 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27199 if (r->in.data == NULL) {
27200 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27202 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27203 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.offered));
27204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27206 if (flags & NDR_OUT) {
27207 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27209 return NDR_ERR_SUCCESS;
27212 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
27214 uint32_t size_key_name_0 = 0;
27215 uint32_t length_key_name_0 = 0;
27216 uint32_t size_value_name_0 = 0;
27217 uint32_t length_value_name_0 = 0;
27218 uint32_t size_data_1 = 0;
27219 TALLOC_CTX *_mem_save_handle_0;
27220 if (flags & NDR_IN) {
27221 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27222 NDR_PULL_ALLOC(ndr, r->in.handle);
27224 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27225 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27226 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27228 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27229 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27230 size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
27231 length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
27232 if (length_key_name_0 > size_key_name_0) {
27233 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
27235 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
27236 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
27237 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27238 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27239 size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
27240 length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
27241 if (length_value_name_0 > size_value_name_0) {
27242 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
27244 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
27245 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
27246 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27247 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
27248 size_data_1 = ndr_get_array_size(ndr, &r->in.data);
27249 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27250 NDR_PULL_ALLOC_N(ndr, r->in.data, size_data_1);
27252 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, size_data_1));
27253 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27254 if (r->in.data) {
27255 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.offered));
27258 if (flags & NDR_OUT) {
27259 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27261 return NDR_ERR_SUCCESS;
27264 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
27266 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
27267 ndr->depth++;
27268 if (flags & NDR_SET_VALUES) {
27269 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27271 if (flags & NDR_IN) {
27272 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
27273 ndr->depth++;
27274 ndr_print_ptr(ndr, "handle", r->in.handle);
27275 ndr->depth++;
27276 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27277 ndr->depth--;
27278 ndr_print_string(ndr, "key_name", r->in.key_name);
27279 ndr_print_string(ndr, "value_name", r->in.value_name);
27280 ndr_print_winreg_Type(ndr, "type", r->in.type);
27281 ndr_print_ptr(ndr, "data", r->in.data);
27282 ndr->depth++;
27283 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.offered);
27284 ndr->depth--;
27285 ndr_print_uint32(ndr, "offered", r->in.offered);
27286 ndr->depth--;
27288 if (flags & NDR_OUT) {
27289 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
27290 ndr->depth++;
27291 ndr_print_WERROR(ndr, "result", r->out.result);
27292 ndr->depth--;
27294 ndr->depth--;
27297 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
27299 if (flags & NDR_IN) {
27300 if (r->in.handle == NULL) {
27301 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27303 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27307 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));
27308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27311 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));
27312 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27314 if (flags & NDR_OUT) {
27315 if (r->out.type == NULL) {
27316 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27318 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27319 if (r->out.data == NULL) {
27320 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27323 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.offered));
27324 if (r->out.needed == NULL) {
27325 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27328 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27330 return NDR_ERR_SUCCESS;
27333 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
27335 uint32_t size_key_name_0 = 0;
27336 uint32_t length_key_name_0 = 0;
27337 uint32_t size_value_name_0 = 0;
27338 uint32_t length_value_name_0 = 0;
27339 uint32_t size_data_1 = 0;
27340 TALLOC_CTX *_mem_save_handle_0;
27341 TALLOC_CTX *_mem_save_type_0;
27342 TALLOC_CTX *_mem_save_needed_0;
27343 if (flags & NDR_IN) {
27344 ZERO_STRUCT(r->out);
27346 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27347 NDR_PULL_ALLOC(ndr, r->in.handle);
27349 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27350 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27351 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27353 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27354 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27355 size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
27356 length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
27357 if (length_key_name_0 > size_key_name_0) {
27358 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
27360 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
27361 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
27362 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27363 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27364 size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
27365 length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
27366 if (length_value_name_0 > size_value_name_0) {
27367 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
27369 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
27370 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
27371 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27372 NDR_PULL_ALLOC(ndr, r->out.type);
27373 ZERO_STRUCTP(r->out.type);
27374 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.offered);
27375 memset(r->out.data, 0, (r->in.offered) * sizeof(*r->out.data));
27376 NDR_PULL_ALLOC(ndr, r->out.needed);
27377 ZERO_STRUCTP(r->out.needed);
27379 if (flags & NDR_OUT) {
27380 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27381 NDR_PULL_ALLOC(ndr, r->out.type);
27383 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27384 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27385 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27386 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27387 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
27388 size_data_1 = ndr_get_array_size(ndr, &r->out.data);
27389 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27390 NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
27392 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
27393 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27394 NDR_PULL_ALLOC(ndr, r->out.needed);
27396 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27397 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27398 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27400 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27401 if (r->out.data) {
27402 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.offered));
27405 return NDR_ERR_SUCCESS;
27408 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
27410 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
27411 ndr->depth++;
27412 if (flags & NDR_SET_VALUES) {
27413 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27415 if (flags & NDR_IN) {
27416 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
27417 ndr->depth++;
27418 ndr_print_ptr(ndr, "handle", r->in.handle);
27419 ndr->depth++;
27420 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27421 ndr->depth--;
27422 ndr_print_string(ndr, "key_name", r->in.key_name);
27423 ndr_print_string(ndr, "value_name", r->in.value_name);
27424 ndr_print_uint32(ndr, "offered", r->in.offered);
27425 ndr->depth--;
27427 if (flags & NDR_OUT) {
27428 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
27429 ndr->depth++;
27430 ndr_print_ptr(ndr, "type", r->out.type);
27431 ndr->depth++;
27432 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27433 ndr->depth--;
27434 ndr_print_ptr(ndr, "data", r->out.data);
27435 ndr->depth++;
27436 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.offered);
27437 ndr->depth--;
27438 ndr_print_ptr(ndr, "needed", r->out.needed);
27439 ndr->depth++;
27440 ndr_print_uint32(ndr, "needed", *r->out.needed);
27441 ndr->depth--;
27442 ndr_print_WERROR(ndr, "result", r->out.result);
27443 ndr->depth--;
27445 ndr->depth--;
27448 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
27450 if (flags & NDR_IN) {
27451 if (r->in.handle == NULL) {
27452 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27454 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27458 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));
27459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27461 if (flags & NDR_OUT) {
27462 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
27463 if (r->out.needed == NULL) {
27464 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27467 if (r->out.count == NULL) {
27468 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
27471 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27473 return NDR_ERR_SUCCESS;
27476 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
27478 uint32_t size_key_name_0 = 0;
27479 uint32_t length_key_name_0 = 0;
27480 TALLOC_CTX *_mem_save_handle_0;
27481 TALLOC_CTX *_mem_save_needed_0;
27482 TALLOC_CTX *_mem_save_count_0;
27483 if (flags & NDR_IN) {
27484 ZERO_STRUCT(r->out);
27486 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27487 NDR_PULL_ALLOC(ndr, r->in.handle);
27489 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27490 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27491 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27493 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27494 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27495 size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
27496 length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
27497 if (length_key_name_0 > size_key_name_0) {
27498 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
27500 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
27501 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
27502 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27503 NDR_PULL_ALLOC(ndr, r->out.needed);
27504 ZERO_STRUCTP(r->out.needed);
27505 NDR_PULL_ALLOC(ndr, r->out.count);
27506 ZERO_STRUCTP(r->out.count);
27508 if (flags & NDR_OUT) {
27509 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
27510 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27511 NDR_PULL_ALLOC(ndr, r->out.needed);
27513 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27514 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27515 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27517 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27518 NDR_PULL_ALLOC(ndr, r->out.count);
27520 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
27521 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
27522 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
27523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
27524 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27526 return NDR_ERR_SUCCESS;
27529 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
27531 uint32_t cntr_info_0;
27532 if (flags & NDR_IN) {
27533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
27535 if (flags & NDR_OUT) {
27536 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27537 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27539 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27540 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27543 return NDR_ERR_SUCCESS;
27546 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
27548 uint32_t size_info_0 = 0;
27549 uint32_t cntr_info_0;
27550 TALLOC_CTX *_mem_save_info_0;
27551 if (flags & NDR_IN) {
27552 ZERO_STRUCT(r->out);
27554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
27556 if (flags & NDR_OUT) {
27557 size_info_0 = r->in.count;
27558 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
27559 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27560 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
27561 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
27562 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27564 for (cntr_info_0 = 0; cntr_info_0 < size_info_0; cntr_info_0++) {
27565 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27567 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
27569 return NDR_ERR_SUCCESS;
27572 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
27574 uint32_t cntr_info_2;
27575 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
27576 ndr->depth++;
27577 if (flags & NDR_SET_VALUES) {
27578 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27580 if (flags & NDR_IN) {
27581 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
27582 ndr->depth++;
27583 ndr_print_ptr(ndr, "handle", r->in.handle);
27584 ndr->depth++;
27585 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27586 ndr->depth--;
27587 ndr_print_string(ndr, "key_name", r->in.key_name);
27588 ndr_print_uint32(ndr, "offered", r->in.offered);
27589 ndr->depth--;
27591 if (flags & NDR_OUT) {
27592 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
27593 ndr->depth++;
27594 ndr_print_ptr(ndr, "count", r->out.count);
27595 ndr->depth++;
27596 ndr_print_uint32(ndr, "count", *r->out.count);
27597 ndr->depth--;
27598 ndr_print_ptr(ndr, "info", r->out.info);
27599 ndr->depth++;
27600 ndr_print_ptr(ndr, "info", *r->out.info);
27601 ndr->depth++;
27602 if (*r->out.info) {
27603 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
27604 ndr->depth++;
27605 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
27606 char *idx_2=NULL;
27607 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
27608 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
27609 free(idx_2);
27612 ndr->depth--;
27614 ndr->depth--;
27615 ndr->depth--;
27616 ndr_print_ptr(ndr, "needed", r->out.needed);
27617 ndr->depth++;
27618 ndr_print_uint32(ndr, "needed", *r->out.needed);
27619 ndr->depth--;
27620 ndr_print_WERROR(ndr, "result", r->out.result);
27621 ndr->depth--;
27623 ndr->depth--;
27626 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
27628 if (flags & NDR_IN) {
27629 if (r->in.handle == NULL) {
27630 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27632 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27636 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));
27637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27639 if (flags & NDR_OUT) {
27640 if (r->out._ndr_size == NULL) {
27641 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
27644 if (r->out.key_buffer == NULL) {
27645 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27648 struct ndr_push *_ndr_key_buffer;
27649 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
27650 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
27651 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
27652 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
27654 if (r->out.needed == NULL) {
27655 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27657 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27658 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27660 return NDR_ERR_SUCCESS;
27663 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
27665 uint32_t size_key_name_0 = 0;
27666 uint32_t length_key_name_0 = 0;
27667 TALLOC_CTX *_mem_save_handle_0;
27668 TALLOC_CTX *_mem_save__ndr_size_0;
27669 TALLOC_CTX *_mem_save_key_buffer_0;
27670 TALLOC_CTX *_mem_save_needed_0;
27671 if (flags & NDR_IN) {
27672 ZERO_STRUCT(r->out);
27674 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27675 NDR_PULL_ALLOC(ndr, r->in.handle);
27677 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27678 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27679 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27681 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27682 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27683 size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
27684 length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
27685 if (length_key_name_0 > size_key_name_0) {
27686 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
27688 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
27689 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
27690 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27691 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
27692 ZERO_STRUCTP(r->out._ndr_size);
27693 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
27694 ZERO_STRUCTP(r->out.key_buffer);
27695 NDR_PULL_ALLOC(ndr, r->out.needed);
27696 ZERO_STRUCTP(r->out.needed);
27698 if (flags & NDR_OUT) {
27699 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27700 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
27702 _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
27703 NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
27704 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
27705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
27706 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27707 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
27709 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27710 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
27712 struct ndr_pull *_ndr_key_buffer;
27713 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
27714 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
27715 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
27716 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
27718 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
27719 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27720 NDR_PULL_ALLOC(ndr, r->out.needed);
27722 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27723 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27724 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27726 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27728 return NDR_ERR_SUCCESS;
27731 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
27733 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
27734 ndr->depth++;
27735 if (flags & NDR_SET_VALUES) {
27736 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27738 if (flags & NDR_IN) {
27739 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
27740 ndr->depth++;
27741 ndr_print_ptr(ndr, "handle", r->in.handle);
27742 ndr->depth++;
27743 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27744 ndr->depth--;
27745 ndr_print_string(ndr, "key_name", r->in.key_name);
27746 ndr_print_uint32(ndr, "offered", r->in.offered);
27747 ndr->depth--;
27749 if (flags & NDR_OUT) {
27750 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
27751 ndr->depth++;
27752 ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
27753 ndr->depth++;
27754 ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
27755 ndr->depth--;
27756 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
27757 ndr->depth++;
27758 ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
27759 ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
27760 ndr->depth--;
27761 ndr_print_ptr(ndr, "needed", r->out.needed);
27762 ndr->depth++;
27763 ndr_print_uint32(ndr, "needed", *r->out.needed);
27764 ndr->depth--;
27765 ndr_print_WERROR(ndr, "result", r->out.result);
27766 ndr->depth--;
27768 ndr->depth--;
27771 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
27773 if (flags & NDR_IN) {
27774 if (r->in.handle == NULL) {
27775 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27777 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27781 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));
27782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27785 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));
27787 if (flags & NDR_OUT) {
27788 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27790 return NDR_ERR_SUCCESS;
27793 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
27795 uint32_t size_key_name_0 = 0;
27796 uint32_t length_key_name_0 = 0;
27797 uint32_t size_value_name_0 = 0;
27798 uint32_t length_value_name_0 = 0;
27799 TALLOC_CTX *_mem_save_handle_0;
27800 if (flags & NDR_IN) {
27801 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27802 NDR_PULL_ALLOC(ndr, r->in.handle);
27804 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27805 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27806 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27807 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27808 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27809 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27810 size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
27811 length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
27812 if (length_key_name_0 > size_key_name_0) {
27813 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
27815 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
27816 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
27817 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27818 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27819 size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
27820 length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
27821 if (length_value_name_0 > size_value_name_0) {
27822 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
27824 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
27825 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
27827 if (flags & NDR_OUT) {
27828 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27830 return NDR_ERR_SUCCESS;
27833 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
27835 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
27836 ndr->depth++;
27837 if (flags & NDR_SET_VALUES) {
27838 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27840 if (flags & NDR_IN) {
27841 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
27842 ndr->depth++;
27843 ndr_print_ptr(ndr, "handle", r->in.handle);
27844 ndr->depth++;
27845 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27846 ndr->depth--;
27847 ndr_print_string(ndr, "key_name", r->in.key_name);
27848 ndr_print_string(ndr, "value_name", r->in.value_name);
27849 ndr->depth--;
27851 if (flags & NDR_OUT) {
27852 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
27853 ndr->depth++;
27854 ndr_print_WERROR(ndr, "result", r->out.result);
27855 ndr->depth--;
27857 ndr->depth--;
27860 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
27862 if (flags & NDR_IN) {
27863 if (r->in.handle == NULL) {
27864 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27866 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27870 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));
27872 if (flags & NDR_OUT) {
27873 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27875 return NDR_ERR_SUCCESS;
27878 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
27880 uint32_t size_key_name_0 = 0;
27881 uint32_t length_key_name_0 = 0;
27882 TALLOC_CTX *_mem_save_handle_0;
27883 if (flags & NDR_IN) {
27884 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27885 NDR_PULL_ALLOC(ndr, r->in.handle);
27887 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27888 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27889 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27891 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27892 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27893 size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
27894 length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
27895 if (length_key_name_0 > size_key_name_0) {
27896 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
27898 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
27899 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
27901 if (flags & NDR_OUT) {
27902 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27904 return NDR_ERR_SUCCESS;
27907 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
27909 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
27910 ndr->depth++;
27911 if (flags & NDR_SET_VALUES) {
27912 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27914 if (flags & NDR_IN) {
27915 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
27916 ndr->depth++;
27917 ndr_print_ptr(ndr, "handle", r->in.handle);
27918 ndr->depth++;
27919 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27920 ndr->depth--;
27921 ndr_print_string(ndr, "key_name", r->in.key_name);
27922 ndr->depth--;
27924 if (flags & NDR_OUT) {
27925 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
27926 ndr->depth++;
27927 ndr_print_WERROR(ndr, "result", r->out.result);
27928 ndr->depth--;
27930 ndr->depth--;
27933 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
27935 if (flags & NDR_IN) {
27937 if (flags & NDR_OUT) {
27938 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27940 return NDR_ERR_SUCCESS;
27943 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
27945 if (flags & NDR_IN) {
27947 if (flags & NDR_OUT) {
27948 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27950 return NDR_ERR_SUCCESS;
27953 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
27955 ndr_print_struct(ndr, name, "spoolss_53");
27956 ndr->depth++;
27957 if (flags & NDR_SET_VALUES) {
27958 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27960 if (flags & NDR_IN) {
27961 ndr_print_struct(ndr, "in", "spoolss_53");
27962 ndr->depth++;
27963 ndr->depth--;
27965 if (flags & NDR_OUT) {
27966 ndr_print_struct(ndr, "out", "spoolss_53");
27967 ndr->depth++;
27968 ndr_print_WERROR(ndr, "result", r->out.result);
27969 ndr->depth--;
27971 ndr->depth--;
27974 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
27976 if (flags & NDR_IN) {
27977 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27978 if (r->in.server) {
27979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27982 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
27985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
27987 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27988 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
27989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
27991 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27992 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
27993 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
27995 if (flags & NDR_OUT) {
27996 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27998 return NDR_ERR_SUCCESS;
28001 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
28003 uint32_t _ptr_server;
28004 uint32_t size_server_1 = 0;
28005 uint32_t length_server_1 = 0;
28006 uint32_t size_architecture_0 = 0;
28007 uint32_t length_architecture_0 = 0;
28008 uint32_t size_driver_0 = 0;
28009 uint32_t length_driver_0 = 0;
28010 TALLOC_CTX *_mem_save_server_0;
28011 if (flags & NDR_IN) {
28012 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28013 if (_ptr_server) {
28014 NDR_PULL_ALLOC(ndr, r->in.server);
28015 } else {
28016 r->in.server = NULL;
28018 if (r->in.server) {
28019 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28020 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28021 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28022 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28023 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
28024 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
28025 if (length_server_1 > size_server_1) {
28026 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
28028 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
28029 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
28030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28032 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
28033 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
28034 size_architecture_0 = ndr_get_array_size(ndr, &r->in.architecture);
28035 length_architecture_0 = ndr_get_array_length(ndr, &r->in.architecture);
28036 if (length_architecture_0 > size_architecture_0) {
28037 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_0, length_architecture_0);
28039 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_0, sizeof(uint16_t)));
28040 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_0, sizeof(uint16_t), CH_UTF16));
28041 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
28042 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
28043 size_driver_0 = ndr_get_array_size(ndr, &r->in.driver);
28044 length_driver_0 = ndr_get_array_length(ndr, &r->in.driver);
28045 if (length_driver_0 > size_driver_0) {
28046 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_0, length_driver_0);
28048 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_0, sizeof(uint16_t)));
28049 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, length_driver_0, sizeof(uint16_t), CH_UTF16));
28050 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
28051 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
28053 if (flags & NDR_OUT) {
28054 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28056 return NDR_ERR_SUCCESS;
28059 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28061 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
28062 ndr->depth++;
28063 if (flags & NDR_SET_VALUES) {
28064 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28066 if (flags & NDR_IN) {
28067 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
28068 ndr->depth++;
28069 ndr_print_ptr(ndr, "server", r->in.server);
28070 ndr->depth++;
28071 if (r->in.server) {
28072 ndr_print_string(ndr, "server", r->in.server);
28074 ndr->depth--;
28075 ndr_print_string(ndr, "architecture", r->in.architecture);
28076 ndr_print_string(ndr, "driver", r->in.driver);
28077 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
28078 ndr_print_uint32(ndr, "version", r->in.version);
28079 ndr->depth--;
28081 if (flags & NDR_OUT) {
28082 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
28083 ndr->depth++;
28084 ndr_print_WERROR(ndr, "result", r->out.result);
28085 ndr->depth--;
28087 ndr->depth--;
28090 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
28092 if (flags & NDR_IN) {
28094 if (flags & NDR_OUT) {
28095 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28097 return NDR_ERR_SUCCESS;
28100 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
28102 if (flags & NDR_IN) {
28104 if (flags & NDR_OUT) {
28105 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28107 return NDR_ERR_SUCCESS;
28110 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
28112 ndr_print_struct(ndr, name, "spoolss_55");
28113 ndr->depth++;
28114 if (flags & NDR_SET_VALUES) {
28115 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28117 if (flags & NDR_IN) {
28118 ndr_print_struct(ndr, "in", "spoolss_55");
28119 ndr->depth++;
28120 ndr->depth--;
28122 if (flags & NDR_OUT) {
28123 ndr_print_struct(ndr, "out", "spoolss_55");
28124 ndr->depth++;
28125 ndr_print_WERROR(ndr, "result", r->out.result);
28126 ndr->depth--;
28128 ndr->depth--;
28131 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
28133 if (flags & NDR_IN) {
28135 if (flags & NDR_OUT) {
28136 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28138 return NDR_ERR_SUCCESS;
28141 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
28143 if (flags & NDR_IN) {
28145 if (flags & NDR_OUT) {
28146 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28148 return NDR_ERR_SUCCESS;
28151 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
28153 ndr_print_struct(ndr, name, "spoolss_56");
28154 ndr->depth++;
28155 if (flags & NDR_SET_VALUES) {
28156 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28158 if (flags & NDR_IN) {
28159 ndr_print_struct(ndr, "in", "spoolss_56");
28160 ndr->depth++;
28161 ndr->depth--;
28163 if (flags & NDR_OUT) {
28164 ndr_print_struct(ndr, "out", "spoolss_56");
28165 ndr->depth++;
28166 ndr_print_WERROR(ndr, "result", r->out.result);
28167 ndr->depth--;
28169 ndr->depth--;
28172 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
28174 if (flags & NDR_IN) {
28176 if (flags & NDR_OUT) {
28177 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28179 return NDR_ERR_SUCCESS;
28182 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
28184 if (flags & NDR_IN) {
28186 if (flags & NDR_OUT) {
28187 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28189 return NDR_ERR_SUCCESS;
28192 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
28194 ndr_print_struct(ndr, name, "spoolss_57");
28195 ndr->depth++;
28196 if (flags & NDR_SET_VALUES) {
28197 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28199 if (flags & NDR_IN) {
28200 ndr_print_struct(ndr, "in", "spoolss_57");
28201 ndr->depth++;
28202 ndr->depth--;
28204 if (flags & NDR_OUT) {
28205 ndr_print_struct(ndr, "out", "spoolss_57");
28206 ndr->depth++;
28207 ndr_print_WERROR(ndr, "result", r->out.result);
28208 ndr->depth--;
28210 ndr->depth--;
28213 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
28215 if (flags & NDR_IN) {
28216 if (r->in.handle == NULL) {
28217 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28219 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
28222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
28223 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));
28224 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
28225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
28226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
28227 if (r->in.status_code == NULL) {
28228 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
28232 if (flags & NDR_OUT) {
28233 if (r->out.out_data == NULL) {
28234 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
28237 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
28238 if (r->out.needed == NULL) {
28239 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28241 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28242 if (r->out.status_code == NULL) {
28243 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
28246 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28248 return NDR_ERR_SUCCESS;
28251 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
28253 uint32_t size_function_name_0 = 0;
28254 uint32_t length_function_name_0 = 0;
28255 uint32_t size_out_data_1 = 0;
28256 TALLOC_CTX *_mem_save_handle_0;
28257 TALLOC_CTX *_mem_save_needed_0;
28258 TALLOC_CTX *_mem_save_status_code_0;
28259 if (flags & NDR_IN) {
28260 ZERO_STRUCT(r->out);
28262 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28263 NDR_PULL_ALLOC(ndr, r->in.handle);
28265 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28266 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28267 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28268 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28269 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
28270 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
28271 size_function_name_0 = ndr_get_array_size(ndr, &r->in.function_name);
28272 length_function_name_0 = ndr_get_array_length(ndr, &r->in.function_name);
28273 if (length_function_name_0 > size_function_name_0) {
28274 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_function_name_0, length_function_name_0);
28276 NDR_CHECK(ndr_check_string_terminator(ndr, length_function_name_0, sizeof(uint16_t)));
28277 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.function_name, length_function_name_0, sizeof(uint16_t), CH_UTF16));
28278 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
28279 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
28280 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
28281 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28282 NDR_PULL_ALLOC(ndr, r->in.status_code);
28284 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28285 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
28286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
28287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28288 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
28289 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
28290 NDR_PULL_ALLOC(ndr, r->out.needed);
28291 ZERO_STRUCTP(r->out.needed);
28292 NDR_PULL_ALLOC(ndr, r->out.status_code);
28293 *r->out.status_code = *r->in.status_code;
28295 if (flags & NDR_OUT) {
28296 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
28297 size_out_data_1 = ndr_get_array_size(ndr, &r->out.out_data);
28298 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28299 NDR_PULL_ALLOC_N(ndr, r->out.out_data, size_out_data_1);
28301 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, size_out_data_1));
28302 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28303 NDR_PULL_ALLOC(ndr, r->out.needed);
28305 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28306 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28307 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28308 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28309 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28310 NDR_PULL_ALLOC(ndr, r->out.status_code);
28312 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
28313 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
28314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
28315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
28316 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28317 if (r->out.out_data) {
28318 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
28321 return NDR_ERR_SUCCESS;
28324 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
28326 ndr_print_struct(ndr, name, "spoolss_XcvData");
28327 ndr->depth++;
28328 if (flags & NDR_SET_VALUES) {
28329 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28331 if (flags & NDR_IN) {
28332 ndr_print_struct(ndr, "in", "spoolss_XcvData");
28333 ndr->depth++;
28334 ndr_print_ptr(ndr, "handle", r->in.handle);
28335 ndr->depth++;
28336 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28337 ndr->depth--;
28338 ndr_print_string(ndr, "function_name", r->in.function_name);
28339 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
28340 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
28341 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
28342 ndr_print_ptr(ndr, "status_code", r->in.status_code);
28343 ndr->depth++;
28344 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
28345 ndr->depth--;
28346 ndr->depth--;
28348 if (flags & NDR_OUT) {
28349 ndr_print_struct(ndr, "out", "spoolss_XcvData");
28350 ndr->depth++;
28351 ndr_print_ptr(ndr, "out_data", r->out.out_data);
28352 ndr->depth++;
28353 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
28354 ndr->depth--;
28355 ndr_print_ptr(ndr, "needed", r->out.needed);
28356 ndr->depth++;
28357 ndr_print_uint32(ndr, "needed", *r->out.needed);
28358 ndr->depth--;
28359 ndr_print_ptr(ndr, "status_code", r->out.status_code);
28360 ndr->depth++;
28361 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
28362 ndr->depth--;
28363 ndr_print_WERROR(ndr, "result", r->out.result);
28364 ndr->depth--;
28366 ndr->depth--;
28369 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
28371 if (flags & NDR_IN) {
28372 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
28373 if (r->in.servername) {
28374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
28376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28377 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28379 if (r->in.info_ctr == NULL) {
28380 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28382 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28383 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
28385 if (flags & NDR_OUT) {
28386 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28388 return NDR_ERR_SUCCESS;
28391 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
28393 uint32_t _ptr_servername;
28394 uint32_t size_servername_1 = 0;
28395 uint32_t length_servername_1 = 0;
28396 TALLOC_CTX *_mem_save_servername_0;
28397 TALLOC_CTX *_mem_save_info_ctr_0;
28398 if (flags & NDR_IN) {
28399 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
28400 if (_ptr_servername) {
28401 NDR_PULL_ALLOC(ndr, r->in.servername);
28402 } else {
28403 r->in.servername = NULL;
28405 if (r->in.servername) {
28406 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
28407 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
28408 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
28409 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
28410 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
28411 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
28412 if (length_servername_1 > size_servername_1) {
28413 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
28415 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
28416 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
28417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
28419 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28420 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28422 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28423 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
28424 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28426 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
28428 if (flags & NDR_OUT) {
28429 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28431 return NDR_ERR_SUCCESS;
28434 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
28436 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
28437 ndr->depth++;
28438 if (flags & NDR_SET_VALUES) {
28439 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28441 if (flags & NDR_IN) {
28442 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
28443 ndr->depth++;
28444 ndr_print_ptr(ndr, "servername", r->in.servername);
28445 ndr->depth++;
28446 if (r->in.servername) {
28447 ndr_print_string(ndr, "servername", r->in.servername);
28449 ndr->depth--;
28450 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
28451 ndr->depth++;
28452 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
28453 ndr->depth--;
28454 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
28455 ndr->depth--;
28457 if (flags & NDR_OUT) {
28458 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
28459 ndr->depth++;
28460 ndr_print_WERROR(ndr, "result", r->out.result);
28461 ndr->depth--;
28463 ndr->depth--;
28466 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
28468 if (flags & NDR_IN) {
28470 if (flags & NDR_OUT) {
28471 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28473 return NDR_ERR_SUCCESS;
28476 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
28478 if (flags & NDR_IN) {
28480 if (flags & NDR_OUT) {
28481 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28483 return NDR_ERR_SUCCESS;
28486 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
28488 ndr_print_struct(ndr, name, "spoolss_5a");
28489 ndr->depth++;
28490 if (flags & NDR_SET_VALUES) {
28491 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28493 if (flags & NDR_IN) {
28494 ndr_print_struct(ndr, "in", "spoolss_5a");
28495 ndr->depth++;
28496 ndr->depth--;
28498 if (flags & NDR_OUT) {
28499 ndr_print_struct(ndr, "out", "spoolss_5a");
28500 ndr->depth++;
28501 ndr_print_WERROR(ndr, "result", r->out.result);
28502 ndr->depth--;
28504 ndr->depth--;
28507 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
28509 if (flags & NDR_IN) {
28511 if (flags & NDR_OUT) {
28512 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28514 return NDR_ERR_SUCCESS;
28517 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
28519 if (flags & NDR_IN) {
28521 if (flags & NDR_OUT) {
28522 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28524 return NDR_ERR_SUCCESS;
28527 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
28529 ndr_print_struct(ndr, name, "spoolss_5b");
28530 ndr->depth++;
28531 if (flags & NDR_SET_VALUES) {
28532 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28534 if (flags & NDR_IN) {
28535 ndr_print_struct(ndr, "in", "spoolss_5b");
28536 ndr->depth++;
28537 ndr->depth--;
28539 if (flags & NDR_OUT) {
28540 ndr_print_struct(ndr, "out", "spoolss_5b");
28541 ndr->depth++;
28542 ndr_print_WERROR(ndr, "result", r->out.result);
28543 ndr->depth--;
28545 ndr->depth--;
28548 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
28550 if (flags & NDR_IN) {
28552 if (flags & NDR_OUT) {
28553 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28555 return NDR_ERR_SUCCESS;
28558 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
28560 if (flags & NDR_IN) {
28562 if (flags & NDR_OUT) {
28563 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28565 return NDR_ERR_SUCCESS;
28568 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
28570 ndr_print_struct(ndr, name, "spoolss_5c");
28571 ndr->depth++;
28572 if (flags & NDR_SET_VALUES) {
28573 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28575 if (flags & NDR_IN) {
28576 ndr_print_struct(ndr, "in", "spoolss_5c");
28577 ndr->depth++;
28578 ndr->depth--;
28580 if (flags & NDR_OUT) {
28581 ndr_print_struct(ndr, "out", "spoolss_5c");
28582 ndr->depth++;
28583 ndr_print_WERROR(ndr, "result", r->out.result);
28584 ndr->depth--;
28586 ndr->depth--;
28589 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
28591 if (flags & NDR_IN) {
28593 if (flags & NDR_OUT) {
28594 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28596 return NDR_ERR_SUCCESS;
28599 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
28601 if (flags & NDR_IN) {
28603 if (flags & NDR_OUT) {
28604 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28606 return NDR_ERR_SUCCESS;
28609 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
28611 ndr_print_struct(ndr, name, "spoolss_5d");
28612 ndr->depth++;
28613 if (flags & NDR_SET_VALUES) {
28614 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28616 if (flags & NDR_IN) {
28617 ndr_print_struct(ndr, "in", "spoolss_5d");
28618 ndr->depth++;
28619 ndr->depth--;
28621 if (flags & NDR_OUT) {
28622 ndr_print_struct(ndr, "out", "spoolss_5d");
28623 ndr->depth++;
28624 ndr_print_WERROR(ndr, "result", r->out.result);
28625 ndr->depth--;
28627 ndr->depth--;
28630 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
28632 if (flags & NDR_IN) {
28634 if (flags & NDR_OUT) {
28635 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28637 return NDR_ERR_SUCCESS;
28640 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
28642 if (flags & NDR_IN) {
28644 if (flags & NDR_OUT) {
28645 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28647 return NDR_ERR_SUCCESS;
28650 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
28652 ndr_print_struct(ndr, name, "spoolss_5e");
28653 ndr->depth++;
28654 if (flags & NDR_SET_VALUES) {
28655 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28657 if (flags & NDR_IN) {
28658 ndr_print_struct(ndr, "in", "spoolss_5e");
28659 ndr->depth++;
28660 ndr->depth--;
28662 if (flags & NDR_OUT) {
28663 ndr_print_struct(ndr, "out", "spoolss_5e");
28664 ndr->depth++;
28665 ndr_print_WERROR(ndr, "result", r->out.result);
28666 ndr->depth--;
28668 ndr->depth--;
28671 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
28673 if (flags & NDR_IN) {
28675 if (flags & NDR_OUT) {
28676 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28678 return NDR_ERR_SUCCESS;
28681 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
28683 if (flags & NDR_IN) {
28685 if (flags & NDR_OUT) {
28686 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28688 return NDR_ERR_SUCCESS;
28691 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
28693 ndr_print_struct(ndr, name, "spoolss_5f");
28694 ndr->depth++;
28695 if (flags & NDR_SET_VALUES) {
28696 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28698 if (flags & NDR_IN) {
28699 ndr_print_struct(ndr, "in", "spoolss_5f");
28700 ndr->depth++;
28701 ndr->depth--;
28703 if (flags & NDR_OUT) {
28704 ndr_print_struct(ndr, "out", "spoolss_5f");
28705 ndr->depth++;
28706 ndr_print_WERROR(ndr, "result", r->out.result);
28707 ndr->depth--;
28709 ndr->depth--;
28712 static const struct ndr_interface_call spoolss_calls[] = {
28714 "spoolss_EnumPrinters",
28715 sizeof(struct spoolss_EnumPrinters),
28716 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
28717 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
28718 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
28719 false,
28722 "spoolss_OpenPrinter",
28723 sizeof(struct spoolss_OpenPrinter),
28724 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
28725 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
28726 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
28727 false,
28730 "spoolss_SetJob",
28731 sizeof(struct spoolss_SetJob),
28732 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
28733 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
28734 (ndr_print_function_t) ndr_print_spoolss_SetJob,
28735 false,
28738 "spoolss_GetJob",
28739 sizeof(struct spoolss_GetJob),
28740 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
28741 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
28742 (ndr_print_function_t) ndr_print_spoolss_GetJob,
28743 false,
28746 "spoolss_EnumJobs",
28747 sizeof(struct spoolss_EnumJobs),
28748 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
28749 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
28750 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
28751 false,
28754 "spoolss_AddPrinter",
28755 sizeof(struct spoolss_AddPrinter),
28756 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
28757 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
28758 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
28759 false,
28762 "spoolss_DeletePrinter",
28763 sizeof(struct spoolss_DeletePrinter),
28764 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
28765 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
28766 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
28767 false,
28770 "spoolss_SetPrinter",
28771 sizeof(struct spoolss_SetPrinter),
28772 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
28773 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
28774 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
28775 false,
28778 "spoolss_GetPrinter",
28779 sizeof(struct spoolss_GetPrinter),
28780 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
28781 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
28782 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
28783 false,
28786 "spoolss_AddPrinterDriver",
28787 sizeof(struct spoolss_AddPrinterDriver),
28788 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
28789 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
28790 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
28791 false,
28794 "spoolss_EnumPrinterDrivers",
28795 sizeof(struct spoolss_EnumPrinterDrivers),
28796 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
28797 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
28798 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
28799 false,
28802 "spoolss_GetPrinterDriver",
28803 sizeof(struct spoolss_GetPrinterDriver),
28804 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
28805 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
28806 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
28807 false,
28810 "spoolss_GetPrinterDriverDirectory",
28811 sizeof(struct spoolss_GetPrinterDriverDirectory),
28812 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
28813 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
28814 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
28815 false,
28818 "spoolss_DeletePrinterDriver",
28819 sizeof(struct spoolss_DeletePrinterDriver),
28820 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
28821 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
28822 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
28823 false,
28826 "spoolss_AddPrintProcessor",
28827 sizeof(struct spoolss_AddPrintProcessor),
28828 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
28829 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
28830 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
28831 false,
28834 "spoolss_EnumPrintProcessors",
28835 sizeof(struct spoolss_EnumPrintProcessors),
28836 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
28837 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
28838 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
28839 false,
28842 "spoolss_GetPrintProcessorDirectory",
28843 sizeof(struct spoolss_GetPrintProcessorDirectory),
28844 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
28845 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
28846 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
28847 false,
28850 "spoolss_StartDocPrinter",
28851 sizeof(struct spoolss_StartDocPrinter),
28852 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
28853 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
28854 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
28855 false,
28858 "spoolss_StartPagePrinter",
28859 sizeof(struct spoolss_StartPagePrinter),
28860 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
28861 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
28862 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
28863 false,
28866 "spoolss_WritePrinter",
28867 sizeof(struct spoolss_WritePrinter),
28868 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
28869 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
28870 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
28871 false,
28874 "spoolss_EndPagePrinter",
28875 sizeof(struct spoolss_EndPagePrinter),
28876 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
28877 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
28878 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
28879 false,
28882 "spoolss_AbortPrinter",
28883 sizeof(struct spoolss_AbortPrinter),
28884 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
28885 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
28886 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
28887 false,
28890 "spoolss_ReadPrinter",
28891 sizeof(struct spoolss_ReadPrinter),
28892 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
28893 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
28894 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
28895 false,
28898 "spoolss_EndDocPrinter",
28899 sizeof(struct spoolss_EndDocPrinter),
28900 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
28901 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
28902 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
28903 false,
28906 "spoolss_AddJob",
28907 sizeof(struct spoolss_AddJob),
28908 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
28909 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
28910 (ndr_print_function_t) ndr_print_spoolss_AddJob,
28911 false,
28914 "spoolss_ScheduleJob",
28915 sizeof(struct spoolss_ScheduleJob),
28916 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
28917 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
28918 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
28919 false,
28922 "spoolss_GetPrinterData",
28923 sizeof(struct spoolss_GetPrinterData),
28924 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
28925 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
28926 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
28927 false,
28930 "spoolss_SetPrinterData",
28931 sizeof(struct spoolss_SetPrinterData),
28932 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
28933 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
28934 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
28935 false,
28938 "spoolss_WaitForPrinterChange",
28939 sizeof(struct spoolss_WaitForPrinterChange),
28940 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
28941 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
28942 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
28943 false,
28946 "spoolss_ClosePrinter",
28947 sizeof(struct spoolss_ClosePrinter),
28948 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
28949 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
28950 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
28951 false,
28954 "spoolss_AddForm",
28955 sizeof(struct spoolss_AddForm),
28956 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
28957 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
28958 (ndr_print_function_t) ndr_print_spoolss_AddForm,
28959 false,
28962 "spoolss_DeleteForm",
28963 sizeof(struct spoolss_DeleteForm),
28964 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
28965 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
28966 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
28967 false,
28970 "spoolss_GetForm",
28971 sizeof(struct spoolss_GetForm),
28972 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
28973 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
28974 (ndr_print_function_t) ndr_print_spoolss_GetForm,
28975 false,
28978 "spoolss_SetForm",
28979 sizeof(struct spoolss_SetForm),
28980 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
28981 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
28982 (ndr_print_function_t) ndr_print_spoolss_SetForm,
28983 false,
28986 "spoolss_EnumForms",
28987 sizeof(struct spoolss_EnumForms),
28988 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
28989 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
28990 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
28991 false,
28994 "spoolss_EnumPorts",
28995 sizeof(struct spoolss_EnumPorts),
28996 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
28997 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
28998 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
28999 false,
29002 "spoolss_EnumMonitors",
29003 sizeof(struct spoolss_EnumMonitors),
29004 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
29005 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
29006 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
29007 false,
29010 "spoolss_AddPort",
29011 sizeof(struct spoolss_AddPort),
29012 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
29013 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
29014 (ndr_print_function_t) ndr_print_spoolss_AddPort,
29015 false,
29018 "spoolss_ConfigurePort",
29019 sizeof(struct spoolss_ConfigurePort),
29020 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
29021 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
29022 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
29023 false,
29026 "spoolss_DeletePort",
29027 sizeof(struct spoolss_DeletePort),
29028 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
29029 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
29030 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
29031 false,
29034 "spoolss_CreatePrinterIC",
29035 sizeof(struct spoolss_CreatePrinterIC),
29036 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
29037 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
29038 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
29039 false,
29042 "spoolss_PlayGDIScriptOnPrinterIC",
29043 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
29044 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
29045 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
29046 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
29047 false,
29050 "spoolss_DeletePrinterIC",
29051 sizeof(struct spoolss_DeletePrinterIC),
29052 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
29053 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
29054 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
29055 false,
29058 "spoolss_AddPrinterConnection",
29059 sizeof(struct spoolss_AddPrinterConnection),
29060 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
29061 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
29062 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
29063 false,
29066 "spoolss_DeletePrinterConnection",
29067 sizeof(struct spoolss_DeletePrinterConnection),
29068 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
29069 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
29070 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
29071 false,
29074 "spoolss_PrinterMessageBox",
29075 sizeof(struct spoolss_PrinterMessageBox),
29076 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
29077 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
29078 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
29079 false,
29082 "spoolss_AddMonitor",
29083 sizeof(struct spoolss_AddMonitor),
29084 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
29085 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
29086 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
29087 false,
29090 "spoolss_DeleteMonitor",
29091 sizeof(struct spoolss_DeleteMonitor),
29092 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
29093 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
29094 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
29095 false,
29098 "spoolss_DeletePrintProcessor",
29099 sizeof(struct spoolss_DeletePrintProcessor),
29100 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
29101 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
29102 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
29103 false,
29106 "spoolss_AddPrintProvidor",
29107 sizeof(struct spoolss_AddPrintProvidor),
29108 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
29109 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
29110 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
29111 false,
29114 "spoolss_DeletePrintProvidor",
29115 sizeof(struct spoolss_DeletePrintProvidor),
29116 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
29117 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
29118 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
29119 false,
29122 "spoolss_EnumPrintProcDataTypes",
29123 sizeof(struct spoolss_EnumPrintProcDataTypes),
29124 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
29125 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
29126 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
29127 false,
29130 "spoolss_ResetPrinter",
29131 sizeof(struct spoolss_ResetPrinter),
29132 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
29133 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
29134 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
29135 false,
29138 "spoolss_GetPrinterDriver2",
29139 sizeof(struct spoolss_GetPrinterDriver2),
29140 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
29141 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
29142 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
29143 false,
29146 "spoolss_FindFirstPrinterChangeNotification",
29147 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
29148 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
29149 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
29150 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
29151 false,
29154 "spoolss_FindNextPrinterChangeNotification",
29155 sizeof(struct spoolss_FindNextPrinterChangeNotification),
29156 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
29157 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
29158 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
29159 false,
29162 "spoolss_FindClosePrinterNotify",
29163 sizeof(struct spoolss_FindClosePrinterNotify),
29164 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
29165 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
29166 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
29167 false,
29170 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
29171 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
29172 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
29173 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
29174 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
29175 false,
29178 "spoolss_ReplyOpenPrinter",
29179 sizeof(struct spoolss_ReplyOpenPrinter),
29180 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
29181 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
29182 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
29183 false,
29186 "spoolss_RouterReplyPrinter",
29187 sizeof(struct spoolss_RouterReplyPrinter),
29188 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
29189 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
29190 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
29191 false,
29194 "spoolss_ReplyClosePrinter",
29195 sizeof(struct spoolss_ReplyClosePrinter),
29196 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
29197 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
29198 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
29199 false,
29202 "spoolss_AddPortEx",
29203 sizeof(struct spoolss_AddPortEx),
29204 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
29205 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
29206 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
29207 false,
29210 "spoolss_RouterFindFirstPrinterChangeNotification",
29211 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
29212 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
29213 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
29214 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
29215 false,
29218 "spoolss_SpoolerInit",
29219 sizeof(struct spoolss_SpoolerInit),
29220 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
29221 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
29222 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
29223 false,
29226 "spoolss_ResetPrinterEx",
29227 sizeof(struct spoolss_ResetPrinterEx),
29228 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
29229 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
29230 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
29231 false,
29234 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
29235 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
29236 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
29237 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
29238 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
29239 false,
29242 "spoolss_RouterReplyPrinterEx",
29243 sizeof(struct spoolss_RouterReplyPrinterEx),
29244 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
29245 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
29246 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
29247 false,
29250 "spoolss_RouterRefreshPrinterChangeNotify",
29251 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
29252 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
29253 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
29254 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
29255 false,
29258 "spoolss_44",
29259 sizeof(struct spoolss_44),
29260 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
29261 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
29262 (ndr_print_function_t) ndr_print_spoolss_44,
29263 false,
29266 "spoolss_OpenPrinterEx",
29267 sizeof(struct spoolss_OpenPrinterEx),
29268 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
29269 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
29270 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
29271 false,
29274 "spoolss_AddPrinterEx",
29275 sizeof(struct spoolss_AddPrinterEx),
29276 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
29277 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
29278 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
29279 false,
29282 "spoolss_47",
29283 sizeof(struct spoolss_47),
29284 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
29285 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
29286 (ndr_print_function_t) ndr_print_spoolss_47,
29287 false,
29290 "spoolss_EnumPrinterData",
29291 sizeof(struct spoolss_EnumPrinterData),
29292 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
29293 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
29294 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
29295 false,
29298 "spoolss_DeletePrinterData",
29299 sizeof(struct spoolss_DeletePrinterData),
29300 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
29301 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
29302 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
29303 false,
29306 "spoolss_4a",
29307 sizeof(struct spoolss_4a),
29308 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
29309 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
29310 (ndr_print_function_t) ndr_print_spoolss_4a,
29311 false,
29314 "spoolss_4b",
29315 sizeof(struct spoolss_4b),
29316 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
29317 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
29318 (ndr_print_function_t) ndr_print_spoolss_4b,
29319 false,
29322 "spoolss_4c",
29323 sizeof(struct spoolss_4c),
29324 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
29325 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
29326 (ndr_print_function_t) ndr_print_spoolss_4c,
29327 false,
29330 "spoolss_SetPrinterDataEx",
29331 sizeof(struct spoolss_SetPrinterDataEx),
29332 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
29333 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
29334 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
29335 false,
29338 "spoolss_GetPrinterDataEx",
29339 sizeof(struct spoolss_GetPrinterDataEx),
29340 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
29341 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
29342 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
29343 false,
29346 "spoolss_EnumPrinterDataEx",
29347 sizeof(struct spoolss_EnumPrinterDataEx),
29348 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
29349 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
29350 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
29351 false,
29354 "spoolss_EnumPrinterKey",
29355 sizeof(struct spoolss_EnumPrinterKey),
29356 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
29357 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
29358 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
29359 false,
29362 "spoolss_DeletePrinterDataEx",
29363 sizeof(struct spoolss_DeletePrinterDataEx),
29364 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
29365 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
29366 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
29367 false,
29370 "spoolss_DeletePrinterKey",
29371 sizeof(struct spoolss_DeletePrinterKey),
29372 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
29373 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
29374 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
29375 false,
29378 "spoolss_53",
29379 sizeof(struct spoolss_53),
29380 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
29381 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
29382 (ndr_print_function_t) ndr_print_spoolss_53,
29383 false,
29386 "spoolss_DeletePrinterDriverEx",
29387 sizeof(struct spoolss_DeletePrinterDriverEx),
29388 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
29389 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
29390 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
29391 false,
29394 "spoolss_55",
29395 sizeof(struct spoolss_55),
29396 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
29397 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
29398 (ndr_print_function_t) ndr_print_spoolss_55,
29399 false,
29402 "spoolss_56",
29403 sizeof(struct spoolss_56),
29404 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
29405 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
29406 (ndr_print_function_t) ndr_print_spoolss_56,
29407 false,
29410 "spoolss_57",
29411 sizeof(struct spoolss_57),
29412 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
29413 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
29414 (ndr_print_function_t) ndr_print_spoolss_57,
29415 false,
29418 "spoolss_XcvData",
29419 sizeof(struct spoolss_XcvData),
29420 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
29421 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
29422 (ndr_print_function_t) ndr_print_spoolss_XcvData,
29423 false,
29426 "spoolss_AddPrinterDriverEx",
29427 sizeof(struct spoolss_AddPrinterDriverEx),
29428 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
29429 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
29430 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
29431 false,
29434 "spoolss_5a",
29435 sizeof(struct spoolss_5a),
29436 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
29437 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
29438 (ndr_print_function_t) ndr_print_spoolss_5a,
29439 false,
29442 "spoolss_5b",
29443 sizeof(struct spoolss_5b),
29444 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
29445 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
29446 (ndr_print_function_t) ndr_print_spoolss_5b,
29447 false,
29450 "spoolss_5c",
29451 sizeof(struct spoolss_5c),
29452 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
29453 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
29454 (ndr_print_function_t) ndr_print_spoolss_5c,
29455 false,
29458 "spoolss_5d",
29459 sizeof(struct spoolss_5d),
29460 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
29461 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
29462 (ndr_print_function_t) ndr_print_spoolss_5d,
29463 false,
29466 "spoolss_5e",
29467 sizeof(struct spoolss_5e),
29468 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
29469 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
29470 (ndr_print_function_t) ndr_print_spoolss_5e,
29471 false,
29474 "spoolss_5f",
29475 sizeof(struct spoolss_5f),
29476 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
29477 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
29478 (ndr_print_function_t) ndr_print_spoolss_5f,
29479 false,
29481 { NULL, 0, NULL, NULL, NULL, false }
29484 static const char * const spoolss_endpoint_strings[] = {
29485 "ncacn_np:[\\pipe\\spoolss]",
29488 static const struct ndr_interface_string_array spoolss_endpoints = {
29489 .count = 1,
29490 .names = spoolss_endpoint_strings
29493 static const char * const spoolss_authservice_strings[] = {
29494 "host",
29497 static const struct ndr_interface_string_array spoolss_authservices = {
29498 .count = 1,
29499 .names = spoolss_authservice_strings
29503 const struct ndr_interface_table ndr_table_spoolss = {
29504 .name = "spoolss",
29505 .syntax_id = {
29506 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
29507 NDR_SPOOLSS_VERSION
29509 .helpstring = NDR_SPOOLSS_HELPSTRING,
29510 .num_calls = 96,
29511 .calls = spoolss_calls,
29512 .endpoints = &spoolss_endpoints,
29513 .authservices = &spoolss_authservices