1 /* parser auto-generated by pidl */
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");
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);
60 static enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
62 if (ndr_flags & NDR_SCALARS) {
63 NDR_CHECK(ndr_push_align(ndr, 4));
65 uint32_t _flags_save_string = ndr->flags;
66 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
67 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
68 ndr->flags = _flags_save_string;
71 uint32_t _flags_save_string = ndr->flags;
72 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
73 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
74 ndr->flags = _flags_save_string;
76 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
77 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
78 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
79 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
80 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
81 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
82 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
83 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown10));
84 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown11));
85 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown12));
86 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
87 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown14));
88 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_errors));
89 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown16));
90 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown17));
91 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown18));
92 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown19));
93 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
94 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown21));
95 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
96 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown23));
97 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
98 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown25));
99 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown26));
100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown27));
101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown28));
102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown29));
104 if (ndr_flags & NDR_BUFFERS) {
106 uint32_t _flags_save_string = ndr->flags;
107 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
108 if (r->printername) {
109 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
110 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
112 ndr->flags = _flags_save_string;
115 uint32_t _flags_save_string = ndr->flags;
116 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
118 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
119 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
121 ndr->flags = _flags_save_string;
124 return NDR_ERR_SUCCESS;
127 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
129 uint32_t _ptr_printername;
130 TALLOC_CTX *_mem_save_printername_0;
131 uint32_t _ptr_servername;
132 TALLOC_CTX *_mem_save_servername_0;
133 if (ndr_flags & NDR_SCALARS) {
134 NDR_CHECK(ndr_pull_align(ndr, 4));
136 uint32_t _flags_save_string = ndr->flags;
137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
138 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
139 if (_ptr_printername) {
140 NDR_PULL_ALLOC(ndr, r->printername);
141 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
143 r->printername = NULL;
145 ndr->flags = _flags_save_string;
148 uint32_t _flags_save_string = ndr->flags;
149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
150 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
151 if (_ptr_servername) {
152 NDR_PULL_ALLOC(ndr, r->servername);
153 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
155 r->servername = NULL;
157 ndr->flags = _flags_save_string;
159 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
160 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
162 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
165 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown10));
167 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown11));
168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown12));
169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
170 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown14));
171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_errors));
172 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown16));
173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown17));
174 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown18));
175 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown19));
176 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown21));
178 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
179 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown23));
180 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
181 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown25));
182 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown26));
183 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown27));
184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown28));
185 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown29));
187 if (ndr_flags & NDR_BUFFERS) {
189 uint32_t _flags_save_string = ndr->flags;
190 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
191 if (r->printername) {
192 uint32_t _relative_save_offset;
193 _relative_save_offset = ndr->offset;
194 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
195 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
196 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
197 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
198 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
199 ndr->offset = _relative_save_offset;
201 ndr->flags = _flags_save_string;
204 uint32_t _flags_save_string = ndr->flags;
205 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
207 uint32_t _relative_save_offset;
208 _relative_save_offset = ndr->offset;
209 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
210 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
211 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
212 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
214 ndr->offset = _relative_save_offset;
216 ndr->flags = _flags_save_string;
219 return NDR_ERR_SUCCESS;
222 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
224 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
226 ndr_print_ptr(ndr, "printername", r->printername);
228 if (r->printername) {
229 ndr_print_string(ndr, "printername", r->printername);
232 ndr_print_ptr(ndr, "servername", r->servername);
235 ndr_print_string(ndr, "servername", r->servername);
238 ndr_print_uint32(ndr, "cjobs", r->cjobs);
239 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
240 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
241 ndr_print_spoolss_Time(ndr, "time", &r->time);
242 ndr_print_uint32(ndr, "global_counter", r->global_counter);
243 ndr_print_uint32(ndr, "total_pages", r->total_pages);
244 ndr_print_uint32(ndr, "version", r->version);
245 ndr_print_uint32(ndr, "unknown10", r->unknown10);
246 ndr_print_uint32(ndr, "unknown11", r->unknown11);
247 ndr_print_uint32(ndr, "unknown12", r->unknown12);
248 ndr_print_uint32(ndr, "session_counter", r->session_counter);
249 ndr_print_uint32(ndr, "unknown14", r->unknown14);
250 ndr_print_uint32(ndr, "printer_errors", r->printer_errors);
251 ndr_print_uint32(ndr, "unknown16", r->unknown16);
252 ndr_print_uint32(ndr, "unknown17", r->unknown17);
253 ndr_print_uint32(ndr, "unknown18", r->unknown18);
254 ndr_print_uint32(ndr, "unknown19", r->unknown19);
255 ndr_print_uint32(ndr, "change_id", r->change_id);
256 ndr_print_uint32(ndr, "unknown21", r->unknown21);
257 ndr_print_uint32(ndr, "status", r->status);
258 ndr_print_uint32(ndr, "unknown23", r->unknown23);
259 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
260 ndr_print_uint16(ndr, "unknown25", r->unknown25);
261 ndr_print_uint16(ndr, "unknown26", r->unknown26);
262 ndr_print_uint32(ndr, "unknown27", r->unknown27);
263 ndr_print_uint32(ndr, "unknown28", r->unknown28);
264 ndr_print_uint32(ndr, "unknown29", r->unknown29);
268 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
270 if (ndr_flags & NDR_SCALARS) {
271 NDR_CHECK(ndr_push_align(ndr, 4));
272 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
273 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->specversion));
274 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
275 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
276 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->fields));
278 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->orientation));
279 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->papersize));
280 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
281 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
282 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
283 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
284 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->defaultsource));
285 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->printquality));
286 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->color));
287 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->duplex));
288 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
289 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ttoption));
290 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->collate));
291 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
292 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
293 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayflags));
297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmmethod));
299 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmintent));
300 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->mediatype));
301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dithertype));
302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
307 uint32_t _flags_save_DATA_BLOB = ndr->flags;
308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
310 struct ndr_push *_ndr_driverextra_data;
311 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
312 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
313 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
315 ndr->flags = _flags_save_DATA_BLOB;
318 if (ndr_flags & NDR_BUFFERS) {
320 return NDR_ERR_SUCCESS;
323 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
325 if (ndr_flags & NDR_SCALARS) {
326 NDR_CHECK(ndr_pull_align(ndr, 4));
327 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
328 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->specversion));
329 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
330 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
331 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->fields));
333 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->orientation));
334 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->papersize));
335 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
336 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
337 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
338 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
339 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->defaultsource));
340 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->printquality));
341 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->color));
342 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->duplex));
343 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
344 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ttoption));
345 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->collate));
346 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
347 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
348 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
350 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayflags));
352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
353 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmmethod));
354 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmintent));
355 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mediatype));
356 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dithertype));
357 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
358 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
359 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
360 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
362 uint32_t _flags_save_DATA_BLOB = ndr->flags;
363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
365 struct ndr_pull *_ndr_driverextra_data;
366 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
367 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
368 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
370 ndr->flags = _flags_save_DATA_BLOB;
373 if (ndr_flags & NDR_BUFFERS) {
375 return NDR_ERR_SUCCESS;
378 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
380 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
382 ndr_print_string(ndr, "devicename", r->devicename);
383 ndr_print_uint16(ndr, "specversion", r->specversion);
384 ndr_print_uint16(ndr, "driverversion", r->driverversion);
385 ndr_print_uint16(ndr, "size", r->size);
386 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
387 ndr_print_uint32(ndr, "fields", r->fields);
388 ndr_print_uint16(ndr, "orientation", r->orientation);
389 ndr_print_uint16(ndr, "papersize", r->papersize);
390 ndr_print_uint16(ndr, "paperlength", r->paperlength);
391 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
392 ndr_print_uint16(ndr, "scale", r->scale);
393 ndr_print_uint16(ndr, "copies", r->copies);
394 ndr_print_uint16(ndr, "defaultsource", r->defaultsource);
395 ndr_print_uint16(ndr, "printquality", r->printquality);
396 ndr_print_uint16(ndr, "color", r->color);
397 ndr_print_uint16(ndr, "duplex", r->duplex);
398 ndr_print_uint16(ndr, "yresolution", r->yresolution);
399 ndr_print_uint16(ndr, "ttoption", r->ttoption);
400 ndr_print_uint16(ndr, "collate", r->collate);
401 ndr_print_string(ndr, "formname", r->formname);
402 ndr_print_uint16(ndr, "logpixels", r->logpixels);
403 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
404 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
405 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
406 ndr_print_uint32(ndr, "displayflags", r->displayflags);
407 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
408 ndr_print_uint32(ndr, "icmmethod", r->icmmethod);
409 ndr_print_uint32(ndr, "icmintent", r->icmintent);
410 ndr_print_uint32(ndr, "mediatype", r->mediatype);
411 ndr_print_uint32(ndr, "dithertype", r->dithertype);
412 ndr_print_uint32(ndr, "reserved1", r->reserved1);
413 ndr_print_uint32(ndr, "reserved2", r->reserved2);
414 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
415 ndr_print_uint32(ndr, "panningheight", r->panningheight);
416 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
420 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
422 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
425 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
428 return NDR_ERR_SUCCESS;
431 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
434 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
436 return NDR_ERR_SUCCESS;
439 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
441 ndr_print_uint32(ndr, name, r);
443 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
444 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
445 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
446 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
447 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
448 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
449 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
450 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
451 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
452 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
453 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
454 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
455 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
456 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
457 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
458 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
459 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
460 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
461 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
465 static enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
467 if (ndr_flags & NDR_SCALARS) {
468 NDR_CHECK(ndr_push_align(ndr, 4));
469 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
471 uint32_t _flags_save_string = ndr->flags;
472 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
473 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
474 ndr->flags = _flags_save_string;
477 uint32_t _flags_save_string = ndr->flags;
478 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
479 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
480 ndr->flags = _flags_save_string;
483 uint32_t _flags_save_string = ndr->flags;
484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
485 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
486 ndr->flags = _flags_save_string;
489 if (ndr_flags & NDR_BUFFERS) {
491 uint32_t _flags_save_string = ndr->flags;
492 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
494 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
495 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
497 ndr->flags = _flags_save_string;
500 uint32_t _flags_save_string = ndr->flags;
501 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
502 if (r->description) {
503 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
504 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
506 ndr->flags = _flags_save_string;
509 uint32_t _flags_save_string = ndr->flags;
510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
512 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
513 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
515 ndr->flags = _flags_save_string;
518 return NDR_ERR_SUCCESS;
521 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
524 TALLOC_CTX *_mem_save_name_0;
525 uint32_t _ptr_description;
526 TALLOC_CTX *_mem_save_description_0;
527 uint32_t _ptr_comment;
528 TALLOC_CTX *_mem_save_comment_0;
529 if (ndr_flags & NDR_SCALARS) {
530 NDR_CHECK(ndr_pull_align(ndr, 4));
531 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
533 uint32_t _flags_save_string = ndr->flags;
534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
535 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
537 NDR_PULL_ALLOC(ndr, r->name);
538 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
542 ndr->flags = _flags_save_string;
545 uint32_t _flags_save_string = ndr->flags;
546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
548 if (_ptr_description) {
549 NDR_PULL_ALLOC(ndr, r->description);
550 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
552 r->description = NULL;
554 ndr->flags = _flags_save_string;
557 uint32_t _flags_save_string = ndr->flags;
558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
561 NDR_PULL_ALLOC(ndr, r->comment);
562 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
566 ndr->flags = _flags_save_string;
569 if (ndr_flags & NDR_BUFFERS) {
571 uint32_t _flags_save_string = ndr->flags;
572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
574 uint32_t _relative_save_offset;
575 _relative_save_offset = ndr->offset;
576 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
577 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
578 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
579 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
580 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
581 ndr->offset = _relative_save_offset;
583 ndr->flags = _flags_save_string;
586 uint32_t _flags_save_string = ndr->flags;
587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
588 if (r->description) {
589 uint32_t _relative_save_offset;
590 _relative_save_offset = ndr->offset;
591 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
592 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
593 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
594 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
596 ndr->offset = _relative_save_offset;
598 ndr->flags = _flags_save_string;
601 uint32_t _flags_save_string = ndr->flags;
602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
604 uint32_t _relative_save_offset;
605 _relative_save_offset = ndr->offset;
606 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
607 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
608 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
609 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
611 ndr->offset = _relative_save_offset;
613 ndr->flags = _flags_save_string;
616 return NDR_ERR_SUCCESS;
619 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
621 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
623 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
624 ndr_print_ptr(ndr, "name", r->name);
627 ndr_print_string(ndr, "name", r->name);
630 ndr_print_ptr(ndr, "description", r->description);
632 if (r->description) {
633 ndr_print_string(ndr, "description", r->description);
636 ndr_print_ptr(ndr, "comment", r->comment);
639 ndr_print_string(ndr, "comment", r->comment);
645 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
648 return NDR_ERR_SUCCESS;
651 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
654 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
656 return NDR_ERR_SUCCESS;
659 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
661 ndr_print_uint32(ndr, name, r);
663 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
664 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
665 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
666 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
667 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
668 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
669 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
670 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
671 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
672 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
673 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
674 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
675 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
676 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
677 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
678 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
682 static enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
685 return NDR_ERR_SUCCESS;
688 static enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
691 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
693 return NDR_ERR_SUCCESS;
696 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
698 ndr_print_uint32(ndr, name, r);
700 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
701 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
702 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
703 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
704 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
705 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
706 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
707 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
708 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
709 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
710 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
711 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
712 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
713 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
714 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
715 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
716 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
717 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
718 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
719 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
720 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
721 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
722 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
723 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
724 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
728 static enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
730 if (ndr_flags & NDR_SCALARS) {
731 NDR_CHECK(ndr_push_align(ndr, 4));
733 uint32_t _flags_save_string = ndr->flags;
734 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
735 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
736 ndr->flags = _flags_save_string;
739 uint32_t _flags_save_string = ndr->flags;
740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
741 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
742 ndr->flags = _flags_save_string;
745 uint32_t _flags_save_string = ndr->flags;
746 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
747 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
748 ndr->flags = _flags_save_string;
751 uint32_t _flags_save_string = ndr->flags;
752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
753 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
754 ndr->flags = _flags_save_string;
757 uint32_t _flags_save_string = ndr->flags;
758 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
759 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
760 ndr->flags = _flags_save_string;
763 uint32_t _flags_save_string = ndr->flags;
764 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
765 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
766 ndr->flags = _flags_save_string;
769 uint32_t _flags_save_string = ndr->flags;
770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
771 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
772 ndr->flags = _flags_save_string;
774 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
776 uint32_t _flags_save_string = ndr->flags;
777 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
778 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
779 ndr->flags = _flags_save_string;
782 uint32_t _flags_save_string = ndr->flags;
783 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
784 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
785 ndr->flags = _flags_save_string;
788 uint32_t _flags_save_string = ndr->flags;
789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
790 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
791 ndr->flags = _flags_save_string;
794 uint32_t _flags_save_string = ndr->flags;
795 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
796 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
797 ndr->flags = _flags_save_string;
799 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
800 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
801 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
804 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
805 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
809 if (ndr_flags & NDR_BUFFERS) {
811 uint32_t _flags_save_string = ndr->flags;
812 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
814 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
815 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
817 ndr->flags = _flags_save_string;
820 uint32_t _flags_save_string = ndr->flags;
821 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
822 if (r->printername) {
823 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
824 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
826 ndr->flags = _flags_save_string;
829 uint32_t _flags_save_string = ndr->flags;
830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
832 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
833 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
835 ndr->flags = _flags_save_string;
838 uint32_t _flags_save_string = ndr->flags;
839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
841 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
842 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
844 ndr->flags = _flags_save_string;
847 uint32_t _flags_save_string = ndr->flags;
848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
850 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
851 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
853 ndr->flags = _flags_save_string;
856 uint32_t _flags_save_string = ndr->flags;
857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
859 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
860 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
862 ndr->flags = _flags_save_string;
865 uint32_t _flags_save_string = ndr->flags;
866 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
868 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
869 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
871 ndr->flags = _flags_save_string;
874 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
876 struct ndr_push *_ndr_devmode;
877 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
878 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
879 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
883 uint32_t _flags_save_string = ndr->flags;
884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
886 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
887 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
889 ndr->flags = _flags_save_string;
892 uint32_t _flags_save_string = ndr->flags;
893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
894 if (r->printprocessor) {
895 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
896 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
898 ndr->flags = _flags_save_string;
901 uint32_t _flags_save_string = ndr->flags;
902 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
904 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
905 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
907 ndr->flags = _flags_save_string;
910 uint32_t _flags_save_string = ndr->flags;
911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
913 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
914 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
916 ndr->flags = _flags_save_string;
919 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
921 struct ndr_push *_ndr_secdesc;
922 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
923 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
924 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
928 return NDR_ERR_SUCCESS;
931 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
933 uint32_t _ptr_servername;
934 TALLOC_CTX *_mem_save_servername_0;
935 uint32_t _ptr_printername;
936 TALLOC_CTX *_mem_save_printername_0;
937 uint32_t _ptr_sharename;
938 TALLOC_CTX *_mem_save_sharename_0;
939 uint32_t _ptr_portname;
940 TALLOC_CTX *_mem_save_portname_0;
941 uint32_t _ptr_drivername;
942 TALLOC_CTX *_mem_save_drivername_0;
943 uint32_t _ptr_comment;
944 TALLOC_CTX *_mem_save_comment_0;
945 uint32_t _ptr_location;
946 TALLOC_CTX *_mem_save_location_0;
947 uint32_t _ptr_devmode;
948 TALLOC_CTX *_mem_save_devmode_0;
949 uint32_t _ptr_sepfile;
950 TALLOC_CTX *_mem_save_sepfile_0;
951 uint32_t _ptr_printprocessor;
952 TALLOC_CTX *_mem_save_printprocessor_0;
953 uint32_t _ptr_datatype;
954 TALLOC_CTX *_mem_save_datatype_0;
955 uint32_t _ptr_parameters;
956 TALLOC_CTX *_mem_save_parameters_0;
957 uint32_t _ptr_secdesc;
958 TALLOC_CTX *_mem_save_secdesc_0;
959 if (ndr_flags & NDR_SCALARS) {
960 NDR_CHECK(ndr_pull_align(ndr, 4));
962 uint32_t _flags_save_string = ndr->flags;
963 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
964 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
965 if (_ptr_servername) {
966 NDR_PULL_ALLOC(ndr, r->servername);
967 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
969 r->servername = NULL;
971 ndr->flags = _flags_save_string;
974 uint32_t _flags_save_string = ndr->flags;
975 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
976 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
977 if (_ptr_printername) {
978 NDR_PULL_ALLOC(ndr, r->printername);
979 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
981 r->printername = NULL;
983 ndr->flags = _flags_save_string;
986 uint32_t _flags_save_string = ndr->flags;
987 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
988 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
989 if (_ptr_sharename) {
990 NDR_PULL_ALLOC(ndr, r->sharename);
991 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
995 ndr->flags = _flags_save_string;
998 uint32_t _flags_save_string = ndr->flags;
999 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1000 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1001 if (_ptr_portname) {
1002 NDR_PULL_ALLOC(ndr, r->portname);
1003 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1007 ndr->flags = _flags_save_string;
1010 uint32_t _flags_save_string = ndr->flags;
1011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1012 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1013 if (_ptr_drivername) {
1014 NDR_PULL_ALLOC(ndr, r->drivername);
1015 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1017 r->drivername = NULL;
1019 ndr->flags = _flags_save_string;
1022 uint32_t _flags_save_string = ndr->flags;
1023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1026 NDR_PULL_ALLOC(ndr, r->comment);
1027 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1031 ndr->flags = _flags_save_string;
1034 uint32_t _flags_save_string = ndr->flags;
1035 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1036 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1037 if (_ptr_location) {
1038 NDR_PULL_ALLOC(ndr, r->location);
1039 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1043 ndr->flags = _flags_save_string;
1045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1047 NDR_PULL_ALLOC(ndr, r->devmode);
1048 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1053 uint32_t _flags_save_string = ndr->flags;
1054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1055 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1057 NDR_PULL_ALLOC(ndr, r->sepfile);
1058 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1062 ndr->flags = _flags_save_string;
1065 uint32_t _flags_save_string = ndr->flags;
1066 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1067 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1068 if (_ptr_printprocessor) {
1069 NDR_PULL_ALLOC(ndr, r->printprocessor);
1070 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1072 r->printprocessor = NULL;
1074 ndr->flags = _flags_save_string;
1077 uint32_t _flags_save_string = ndr->flags;
1078 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1079 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1080 if (_ptr_datatype) {
1081 NDR_PULL_ALLOC(ndr, r->datatype);
1082 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1086 ndr->flags = _flags_save_string;
1089 uint32_t _flags_save_string = ndr->flags;
1090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1092 if (_ptr_parameters) {
1093 NDR_PULL_ALLOC(ndr, r->parameters);
1094 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1096 r->parameters = NULL;
1098 ndr->flags = _flags_save_string;
1100 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1102 NDR_PULL_ALLOC(ndr, r->secdesc);
1103 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1107 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1108 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1109 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1110 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1111 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1112 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1113 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1114 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1116 if (ndr_flags & NDR_BUFFERS) {
1118 uint32_t _flags_save_string = ndr->flags;
1119 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1120 if (r->servername) {
1121 uint32_t _relative_save_offset;
1122 _relative_save_offset = ndr->offset;
1123 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1124 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1125 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1126 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1127 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1128 ndr->offset = _relative_save_offset;
1130 ndr->flags = _flags_save_string;
1133 uint32_t _flags_save_string = ndr->flags;
1134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1135 if (r->printername) {
1136 uint32_t _relative_save_offset;
1137 _relative_save_offset = ndr->offset;
1138 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1139 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1140 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1141 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1142 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1143 ndr->offset = _relative_save_offset;
1145 ndr->flags = _flags_save_string;
1148 uint32_t _flags_save_string = ndr->flags;
1149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1151 uint32_t _relative_save_offset;
1152 _relative_save_offset = ndr->offset;
1153 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1154 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1155 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1156 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1158 ndr->offset = _relative_save_offset;
1160 ndr->flags = _flags_save_string;
1163 uint32_t _flags_save_string = ndr->flags;
1164 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1166 uint32_t _relative_save_offset;
1167 _relative_save_offset = ndr->offset;
1168 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1169 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1170 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1171 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1172 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1173 ndr->offset = _relative_save_offset;
1175 ndr->flags = _flags_save_string;
1178 uint32_t _flags_save_string = ndr->flags;
1179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1180 if (r->drivername) {
1181 uint32_t _relative_save_offset;
1182 _relative_save_offset = ndr->offset;
1183 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1184 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1185 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1186 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1187 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1188 ndr->offset = _relative_save_offset;
1190 ndr->flags = _flags_save_string;
1193 uint32_t _flags_save_string = ndr->flags;
1194 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1196 uint32_t _relative_save_offset;
1197 _relative_save_offset = ndr->offset;
1198 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1199 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1200 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1201 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1202 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1203 ndr->offset = _relative_save_offset;
1205 ndr->flags = _flags_save_string;
1208 uint32_t _flags_save_string = ndr->flags;
1209 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1211 uint32_t _relative_save_offset;
1212 _relative_save_offset = ndr->offset;
1213 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1214 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1215 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1216 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1218 ndr->offset = _relative_save_offset;
1220 ndr->flags = _flags_save_string;
1223 uint32_t _relative_save_offset;
1224 _relative_save_offset = ndr->offset;
1225 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1226 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1227 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1229 struct ndr_pull *_ndr_devmode;
1230 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1231 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1232 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1234 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1235 ndr->offset = _relative_save_offset;
1238 uint32_t _flags_save_string = ndr->flags;
1239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1241 uint32_t _relative_save_offset;
1242 _relative_save_offset = ndr->offset;
1243 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1244 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1245 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1246 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1248 ndr->offset = _relative_save_offset;
1250 ndr->flags = _flags_save_string;
1253 uint32_t _flags_save_string = ndr->flags;
1254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1255 if (r->printprocessor) {
1256 uint32_t _relative_save_offset;
1257 _relative_save_offset = ndr->offset;
1258 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1259 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1260 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1261 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1263 ndr->offset = _relative_save_offset;
1265 ndr->flags = _flags_save_string;
1268 uint32_t _flags_save_string = ndr->flags;
1269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1271 uint32_t _relative_save_offset;
1272 _relative_save_offset = ndr->offset;
1273 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
1274 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
1275 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
1276 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
1277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
1278 ndr->offset = _relative_save_offset;
1280 ndr->flags = _flags_save_string;
1283 uint32_t _flags_save_string = ndr->flags;
1284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1285 if (r->parameters) {
1286 uint32_t _relative_save_offset;
1287 _relative_save_offset = ndr->offset;
1288 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
1289 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
1290 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
1291 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
1292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
1293 ndr->offset = _relative_save_offset;
1295 ndr->flags = _flags_save_string;
1298 uint32_t _relative_save_offset;
1299 _relative_save_offset = ndr->offset;
1300 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1301 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1302 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1304 struct ndr_pull *_ndr_secdesc;
1305 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1306 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1307 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1310 ndr->offset = _relative_save_offset;
1313 return NDR_ERR_SUCCESS;
1316 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
1318 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
1320 ndr_print_ptr(ndr, "servername", r->servername);
1322 if (r->servername) {
1323 ndr_print_string(ndr, "servername", r->servername);
1326 ndr_print_ptr(ndr, "printername", r->printername);
1328 if (r->printername) {
1329 ndr_print_string(ndr, "printername", r->printername);
1332 ndr_print_ptr(ndr, "sharename", r->sharename);
1335 ndr_print_string(ndr, "sharename", r->sharename);
1338 ndr_print_ptr(ndr, "portname", r->portname);
1341 ndr_print_string(ndr, "portname", r->portname);
1344 ndr_print_ptr(ndr, "drivername", r->drivername);
1346 if (r->drivername) {
1347 ndr_print_string(ndr, "drivername", r->drivername);
1350 ndr_print_ptr(ndr, "comment", r->comment);
1353 ndr_print_string(ndr, "comment", r->comment);
1356 ndr_print_ptr(ndr, "location", r->location);
1359 ndr_print_string(ndr, "location", r->location);
1362 ndr_print_ptr(ndr, "devmode", r->devmode);
1365 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1368 ndr_print_ptr(ndr, "sepfile", r->sepfile);
1371 ndr_print_string(ndr, "sepfile", r->sepfile);
1374 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
1376 if (r->printprocessor) {
1377 ndr_print_string(ndr, "printprocessor", r->printprocessor);
1380 ndr_print_ptr(ndr, "datatype", r->datatype);
1383 ndr_print_string(ndr, "datatype", r->datatype);
1386 ndr_print_ptr(ndr, "parameters", r->parameters);
1388 if (r->parameters) {
1389 ndr_print_string(ndr, "parameters", r->parameters);
1392 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1395 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1398 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1399 ndr_print_uint32(ndr, "priority", r->priority);
1400 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
1401 ndr_print_uint32(ndr, "starttime", r->starttime);
1402 ndr_print_uint32(ndr, "untiltime", r->untiltime);
1403 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1404 ndr_print_uint32(ndr, "cjobs", r->cjobs);
1405 ndr_print_uint32(ndr, "averageppm", r->averageppm);
1409 static enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
1411 if (ndr_flags & NDR_SCALARS) {
1412 NDR_CHECK(ndr_push_align(ndr, 4));
1413 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1415 if (ndr_flags & NDR_BUFFERS) {
1417 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1419 struct ndr_push *_ndr_secdesc;
1420 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1421 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1422 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1426 return NDR_ERR_SUCCESS;
1429 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
1431 uint32_t _ptr_secdesc;
1432 TALLOC_CTX *_mem_save_secdesc_0;
1433 if (ndr_flags & NDR_SCALARS) {
1434 NDR_CHECK(ndr_pull_align(ndr, 4));
1435 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1437 NDR_PULL_ALLOC(ndr, r->secdesc);
1438 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1443 if (ndr_flags & NDR_BUFFERS) {
1445 uint32_t _relative_save_offset;
1446 _relative_save_offset = ndr->offset;
1447 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1448 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1449 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1451 struct ndr_pull *_ndr_secdesc;
1452 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1453 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1454 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1457 ndr->offset = _relative_save_offset;
1460 return NDR_ERR_SUCCESS;
1463 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
1465 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
1467 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1470 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1476 static enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
1478 if (ndr_flags & NDR_SCALARS) {
1479 NDR_CHECK(ndr_push_align(ndr, 4));
1481 uint32_t _flags_save_string = ndr->flags;
1482 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1483 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1484 ndr->flags = _flags_save_string;
1487 uint32_t _flags_save_string = ndr->flags;
1488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1489 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1490 ndr->flags = _flags_save_string;
1492 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1494 if (ndr_flags & NDR_BUFFERS) {
1496 uint32_t _flags_save_string = ndr->flags;
1497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1498 if (r->printername) {
1499 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1500 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1502 ndr->flags = _flags_save_string;
1505 uint32_t _flags_save_string = ndr->flags;
1506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1507 if (r->servername) {
1508 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1509 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1511 ndr->flags = _flags_save_string;
1514 return NDR_ERR_SUCCESS;
1517 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
1519 uint32_t _ptr_printername;
1520 TALLOC_CTX *_mem_save_printername_0;
1521 uint32_t _ptr_servername;
1522 TALLOC_CTX *_mem_save_servername_0;
1523 if (ndr_flags & NDR_SCALARS) {
1524 NDR_CHECK(ndr_pull_align(ndr, 4));
1526 uint32_t _flags_save_string = ndr->flags;
1527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1529 if (_ptr_printername) {
1530 NDR_PULL_ALLOC(ndr, r->printername);
1531 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1533 r->printername = NULL;
1535 ndr->flags = _flags_save_string;
1538 uint32_t _flags_save_string = ndr->flags;
1539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1540 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1541 if (_ptr_servername) {
1542 NDR_PULL_ALLOC(ndr, r->servername);
1543 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1545 r->servername = NULL;
1547 ndr->flags = _flags_save_string;
1549 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1551 if (ndr_flags & NDR_BUFFERS) {
1553 uint32_t _flags_save_string = ndr->flags;
1554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1555 if (r->printername) {
1556 uint32_t _relative_save_offset;
1557 _relative_save_offset = ndr->offset;
1558 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1559 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1560 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1561 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1563 ndr->offset = _relative_save_offset;
1565 ndr->flags = _flags_save_string;
1568 uint32_t _flags_save_string = ndr->flags;
1569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1570 if (r->servername) {
1571 uint32_t _relative_save_offset;
1572 _relative_save_offset = ndr->offset;
1573 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1574 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1575 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1576 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1578 ndr->offset = _relative_save_offset;
1580 ndr->flags = _flags_save_string;
1583 return NDR_ERR_SUCCESS;
1586 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
1588 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
1590 ndr_print_ptr(ndr, "printername", r->printername);
1592 if (r->printername) {
1593 ndr_print_string(ndr, "printername", r->printername);
1596 ndr_print_ptr(ndr, "servername", r->servername);
1598 if (r->servername) {
1599 ndr_print_string(ndr, "servername", r->servername);
1602 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1606 static enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
1608 if (ndr_flags & NDR_SCALARS) {
1609 NDR_CHECK(ndr_push_align(ndr, 4));
1611 uint32_t _flags_save_string = ndr->flags;
1612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1613 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1614 ndr->flags = _flags_save_string;
1617 uint32_t _flags_save_string = ndr->flags;
1618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1619 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1620 ndr->flags = _flags_save_string;
1622 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
1624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
1626 if (ndr_flags & NDR_BUFFERS) {
1628 uint32_t _flags_save_string = ndr->flags;
1629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1630 if (r->printername) {
1631 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1632 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1634 ndr->flags = _flags_save_string;
1637 uint32_t _flags_save_string = ndr->flags;
1638 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1640 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1641 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1643 ndr->flags = _flags_save_string;
1646 return NDR_ERR_SUCCESS;
1649 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
1651 uint32_t _ptr_printername;
1652 TALLOC_CTX *_mem_save_printername_0;
1653 uint32_t _ptr_portname;
1654 TALLOC_CTX *_mem_save_portname_0;
1655 if (ndr_flags & NDR_SCALARS) {
1656 NDR_CHECK(ndr_pull_align(ndr, 4));
1658 uint32_t _flags_save_string = ndr->flags;
1659 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1660 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1661 if (_ptr_printername) {
1662 NDR_PULL_ALLOC(ndr, r->printername);
1663 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1665 r->printername = NULL;
1667 ndr->flags = _flags_save_string;
1670 uint32_t _flags_save_string = ndr->flags;
1671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1672 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1673 if (_ptr_portname) {
1674 NDR_PULL_ALLOC(ndr, r->portname);
1675 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1679 ndr->flags = _flags_save_string;
1681 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1682 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
1683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
1685 if (ndr_flags & NDR_BUFFERS) {
1687 uint32_t _flags_save_string = ndr->flags;
1688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1689 if (r->printername) {
1690 uint32_t _relative_save_offset;
1691 _relative_save_offset = ndr->offset;
1692 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1693 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1694 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1695 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1697 ndr->offset = _relative_save_offset;
1699 ndr->flags = _flags_save_string;
1702 uint32_t _flags_save_string = ndr->flags;
1703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1705 uint32_t _relative_save_offset;
1706 _relative_save_offset = ndr->offset;
1707 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1708 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1709 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1710 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1712 ndr->offset = _relative_save_offset;
1714 ndr->flags = _flags_save_string;
1717 return NDR_ERR_SUCCESS;
1720 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
1722 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
1724 ndr_print_ptr(ndr, "printername", r->printername);
1726 if (r->printername) {
1727 ndr_print_string(ndr, "printername", r->printername);
1730 ndr_print_ptr(ndr, "portname", r->portname);
1733 ndr_print_string(ndr, "portname", r->portname);
1736 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1737 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
1738 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
1742 static enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
1744 if (ndr_flags & NDR_SCALARS) {
1745 NDR_CHECK(ndr_push_align(ndr, 4));
1746 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1748 if (ndr_flags & NDR_BUFFERS) {
1750 return NDR_ERR_SUCCESS;
1753 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
1755 if (ndr_flags & NDR_SCALARS) {
1756 NDR_CHECK(ndr_pull_align(ndr, 4));
1757 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1759 if (ndr_flags & NDR_BUFFERS) {
1761 return NDR_ERR_SUCCESS;
1764 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
1766 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
1768 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1772 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1775 return NDR_ERR_SUCCESS;
1778 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1781 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1783 return NDR_ERR_SUCCESS;
1786 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
1788 ndr_print_uint32(ndr, name, r);
1790 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
1791 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
1792 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
1793 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
1794 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
1798 static enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
1800 if (ndr_flags & NDR_SCALARS) {
1801 NDR_CHECK(ndr_push_align(ndr, 4));
1803 uint32_t _flags_save_string = ndr->flags;
1804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1805 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
1806 ndr->flags = _flags_save_string;
1808 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
1810 if (ndr_flags & NDR_BUFFERS) {
1812 uint32_t _flags_save_string = ndr->flags;
1813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1815 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
1816 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
1818 ndr->flags = _flags_save_string;
1821 return NDR_ERR_SUCCESS;
1824 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
1827 TALLOC_CTX *_mem_save_guid_0;
1828 if (ndr_flags & NDR_SCALARS) {
1829 NDR_CHECK(ndr_pull_align(ndr, 4));
1831 uint32_t _flags_save_string = ndr->flags;
1832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1833 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
1835 NDR_PULL_ALLOC(ndr, r->guid);
1836 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
1840 ndr->flags = _flags_save_string;
1842 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
1844 if (ndr_flags & NDR_BUFFERS) {
1846 uint32_t _flags_save_string = ndr->flags;
1847 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1849 uint32_t _relative_save_offset;
1850 _relative_save_offset = ndr->offset;
1851 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
1852 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1853 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
1854 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
1855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
1856 ndr->offset = _relative_save_offset;
1858 ndr->flags = _flags_save_string;
1861 return NDR_ERR_SUCCESS;
1864 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
1866 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
1868 ndr_print_ptr(ndr, "guid", r->guid);
1871 ndr_print_string(ndr, "guid", r->guid);
1874 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
1878 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
1880 if (ndr_flags & NDR_SCALARS) {
1881 NDR_CHECK(ndr_push_align(ndr, 4));
1882 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
1884 if (ndr_flags & NDR_BUFFERS) {
1886 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1888 struct ndr_push *_ndr_devmode;
1889 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1890 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1891 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1895 return NDR_ERR_SUCCESS;
1898 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
1900 uint32_t _ptr_devmode;
1901 TALLOC_CTX *_mem_save_devmode_0;
1902 if (ndr_flags & NDR_SCALARS) {
1903 NDR_CHECK(ndr_pull_align(ndr, 4));
1904 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1906 NDR_PULL_ALLOC(ndr, r->devmode);
1907 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1912 if (ndr_flags & NDR_BUFFERS) {
1914 uint32_t _relative_save_offset;
1915 _relative_save_offset = ndr->offset;
1916 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1917 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1918 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1920 struct ndr_pull *_ndr_devmode;
1921 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1922 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1923 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1926 ndr->offset = _relative_save_offset;
1929 return NDR_ERR_SUCCESS;
1932 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
1934 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
1936 ndr_print_ptr(ndr, "devmode", r->devmode);
1939 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1945 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
1947 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
1948 if (ndr_flags & NDR_SCALARS) {
1949 int level = ndr_push_get_switch_value(ndr, r);
1952 NDR_CHECK(ndr_push_align(ndr, 4));
1953 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
1954 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
1958 NDR_CHECK(ndr_push_align(ndr, 4));
1959 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
1960 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
1964 NDR_CHECK(ndr_push_align(ndr, 4));
1965 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
1966 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
1970 NDR_CHECK(ndr_push_align(ndr, 4));
1971 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
1972 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
1976 NDR_CHECK(ndr_push_align(ndr, 4));
1977 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
1978 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
1982 NDR_CHECK(ndr_push_align(ndr, 4));
1983 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
1984 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
1988 NDR_CHECK(ndr_push_align(ndr, 4));
1989 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
1990 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
1994 NDR_CHECK(ndr_push_align(ndr, 4));
1995 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
1996 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2000 NDR_CHECK(ndr_push_align(ndr, 4));
2001 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2002 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2006 NDR_CHECK(ndr_push_align(ndr, 4));
2007 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2008 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2016 if (ndr_flags & NDR_BUFFERS) {
2017 int level = ndr_push_get_switch_value(ndr, r);
2018 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2021 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2025 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2029 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2033 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2037 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2041 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2048 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2052 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2056 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2064 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2065 return NDR_ERR_SUCCESS;
2068 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2070 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2072 level = ndr_pull_get_switch_value(ndr, r);
2073 if (ndr_flags & NDR_SCALARS) {
2076 NDR_CHECK(ndr_pull_align(ndr, 4));
2077 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2078 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2082 NDR_CHECK(ndr_pull_align(ndr, 4));
2083 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2084 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2088 NDR_CHECK(ndr_pull_align(ndr, 4));
2089 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2090 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2094 NDR_CHECK(ndr_pull_align(ndr, 4));
2095 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2096 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2100 NDR_CHECK(ndr_pull_align(ndr, 4));
2101 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2102 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2106 NDR_CHECK(ndr_pull_align(ndr, 4));
2107 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2108 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2112 NDR_CHECK(ndr_pull_align(ndr, 4));
2113 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2114 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2118 NDR_CHECK(ndr_pull_align(ndr, 4));
2119 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2120 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2124 NDR_CHECK(ndr_pull_align(ndr, 4));
2125 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2126 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2130 NDR_CHECK(ndr_pull_align(ndr, 4));
2131 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2132 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2140 if (ndr_flags & NDR_BUFFERS) {
2141 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2144 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2148 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2152 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2156 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2160 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2164 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2171 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2175 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2179 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2187 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2188 return NDR_ERR_SUCCESS;
2191 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2194 level = ndr_print_get_switch_value(ndr, r);
2195 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2198 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2202 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2206 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2210 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2214 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2218 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2222 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2226 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2230 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2234 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
2243 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
2245 if (ndr_flags & NDR_SCALARS) {
2246 NDR_CHECK(ndr_push_align(ndr, 4));
2247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2248 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
2250 if (ndr_flags & NDR_BUFFERS) {
2253 struct ndr_push *_ndr_devmode;
2254 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2255 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2256 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2260 return NDR_ERR_SUCCESS;
2263 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
2265 uint32_t _ptr_devmode;
2266 TALLOC_CTX *_mem_save_devmode_0;
2267 if (ndr_flags & NDR_SCALARS) {
2268 NDR_CHECK(ndr_pull_align(ndr, 4));
2269 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
2270 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2272 NDR_PULL_ALLOC(ndr, r->devmode);
2277 if (ndr_flags & NDR_BUFFERS) {
2279 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2280 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2282 struct ndr_pull *_ndr_devmode;
2283 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
2284 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2285 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
2287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2290 return NDR_ERR_SUCCESS;
2293 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
2295 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
2297 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);
2298 ndr_print_ptr(ndr, "devmode", r->devmode);
2301 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2307 static enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
2309 if (ndr_flags & NDR_SCALARS) {
2310 NDR_CHECK(ndr_push_align(ndr, 4));
2311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2313 uint32_t _flags_save_string = ndr->flags;
2314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2315 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2316 ndr->flags = _flags_save_string;
2319 uint32_t _flags_save_string = ndr->flags;
2320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2321 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2322 ndr->flags = _flags_save_string;
2325 uint32_t _flags_save_string = ndr->flags;
2326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2327 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2328 ndr->flags = _flags_save_string;
2331 uint32_t _flags_save_string = ndr->flags;
2332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2333 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2334 ndr->flags = _flags_save_string;
2337 uint32_t _flags_save_string = ndr->flags;
2338 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2339 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2340 ndr->flags = _flags_save_string;
2343 uint32_t _flags_save_string = ndr->flags;
2344 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2345 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2346 ndr->flags = _flags_save_string;
2348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
2349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2353 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
2355 if (ndr_flags & NDR_BUFFERS) {
2357 uint32_t _flags_save_string = ndr->flags;
2358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2359 if (r->printer_name) {
2360 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
2361 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2363 ndr->flags = _flags_save_string;
2366 uint32_t _flags_save_string = ndr->flags;
2367 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2368 if (r->server_name) {
2369 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
2370 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
2372 ndr->flags = _flags_save_string;
2375 uint32_t _flags_save_string = ndr->flags;
2376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2378 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
2379 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2381 ndr->flags = _flags_save_string;
2384 uint32_t _flags_save_string = ndr->flags;
2385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2386 if (r->document_name) {
2387 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
2388 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
2390 ndr->flags = _flags_save_string;
2393 uint32_t _flags_save_string = ndr->flags;
2394 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2396 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
2397 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
2399 ndr->flags = _flags_save_string;
2402 uint32_t _flags_save_string = ndr->flags;
2403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2404 if (r->text_status) {
2405 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
2406 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
2408 ndr->flags = _flags_save_string;
2411 return NDR_ERR_SUCCESS;
2414 static enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
2416 uint32_t _ptr_printer_name;
2417 TALLOC_CTX *_mem_save_printer_name_0;
2418 uint32_t _ptr_server_name;
2419 TALLOC_CTX *_mem_save_server_name_0;
2420 uint32_t _ptr_user_name;
2421 TALLOC_CTX *_mem_save_user_name_0;
2422 uint32_t _ptr_document_name;
2423 TALLOC_CTX *_mem_save_document_name_0;
2424 uint32_t _ptr_data_type;
2425 TALLOC_CTX *_mem_save_data_type_0;
2426 uint32_t _ptr_text_status;
2427 TALLOC_CTX *_mem_save_text_status_0;
2428 if (ndr_flags & NDR_SCALARS) {
2429 NDR_CHECK(ndr_pull_align(ndr, 4));
2430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
2432 uint32_t _flags_save_string = ndr->flags;
2433 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2434 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
2435 if (_ptr_printer_name) {
2436 NDR_PULL_ALLOC(ndr, r->printer_name);
2437 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
2439 r->printer_name = NULL;
2441 ndr->flags = _flags_save_string;
2444 uint32_t _flags_save_string = ndr->flags;
2445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2446 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
2447 if (_ptr_server_name) {
2448 NDR_PULL_ALLOC(ndr, r->server_name);
2449 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
2451 r->server_name = NULL;
2453 ndr->flags = _flags_save_string;
2456 uint32_t _flags_save_string = ndr->flags;
2457 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2458 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
2459 if (_ptr_user_name) {
2460 NDR_PULL_ALLOC(ndr, r->user_name);
2461 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
2463 r->user_name = NULL;
2465 ndr->flags = _flags_save_string;
2468 uint32_t _flags_save_string = ndr->flags;
2469 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2470 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
2471 if (_ptr_document_name) {
2472 NDR_PULL_ALLOC(ndr, r->document_name);
2473 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
2475 r->document_name = NULL;
2477 ndr->flags = _flags_save_string;
2480 uint32_t _flags_save_string = ndr->flags;
2481 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2482 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
2483 if (_ptr_data_type) {
2484 NDR_PULL_ALLOC(ndr, r->data_type);
2485 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
2487 r->data_type = NULL;
2489 ndr->flags = _flags_save_string;
2492 uint32_t _flags_save_string = ndr->flags;
2493 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2494 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
2495 if (_ptr_text_status) {
2496 NDR_PULL_ALLOC(ndr, r->text_status);
2497 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
2499 r->text_status = NULL;
2501 ndr->flags = _flags_save_string;
2503 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
2504 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
2505 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
2506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
2507 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
2508 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
2510 if (ndr_flags & NDR_BUFFERS) {
2512 uint32_t _flags_save_string = ndr->flags;
2513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2514 if (r->printer_name) {
2515 uint32_t _relative_save_offset;
2516 _relative_save_offset = ndr->offset;
2517 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
2518 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2519 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
2520 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
2521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
2522 ndr->offset = _relative_save_offset;
2524 ndr->flags = _flags_save_string;
2527 uint32_t _flags_save_string = ndr->flags;
2528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2529 if (r->server_name) {
2530 uint32_t _relative_save_offset;
2531 _relative_save_offset = ndr->offset;
2532 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
2533 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2534 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
2535 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
2536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
2537 ndr->offset = _relative_save_offset;
2539 ndr->flags = _flags_save_string;
2542 uint32_t _flags_save_string = ndr->flags;
2543 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2545 uint32_t _relative_save_offset;
2546 _relative_save_offset = ndr->offset;
2547 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
2548 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2549 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
2550 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
2551 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
2552 ndr->offset = _relative_save_offset;
2554 ndr->flags = _flags_save_string;
2557 uint32_t _flags_save_string = ndr->flags;
2558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2559 if (r->document_name) {
2560 uint32_t _relative_save_offset;
2561 _relative_save_offset = ndr->offset;
2562 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
2563 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2564 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
2565 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
2566 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
2567 ndr->offset = _relative_save_offset;
2569 ndr->flags = _flags_save_string;
2572 uint32_t _flags_save_string = ndr->flags;
2573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2575 uint32_t _relative_save_offset;
2576 _relative_save_offset = ndr->offset;
2577 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
2578 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2579 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
2580 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
2581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
2582 ndr->offset = _relative_save_offset;
2584 ndr->flags = _flags_save_string;
2587 uint32_t _flags_save_string = ndr->flags;
2588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2589 if (r->text_status) {
2590 uint32_t _relative_save_offset;
2591 _relative_save_offset = ndr->offset;
2592 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
2593 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
2594 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
2595 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
2596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
2597 ndr->offset = _relative_save_offset;
2599 ndr->flags = _flags_save_string;
2602 return NDR_ERR_SUCCESS;
2605 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
2607 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
2609 ndr_print_uint32(ndr, "job_id", r->job_id);
2610 ndr_print_ptr(ndr, "printer_name", r->printer_name);
2612 if (r->printer_name) {
2613 ndr_print_string(ndr, "printer_name", r->printer_name);
2616 ndr_print_ptr(ndr, "server_name", r->server_name);
2618 if (r->server_name) {
2619 ndr_print_string(ndr, "server_name", r->server_name);
2622 ndr_print_ptr(ndr, "user_name", r->user_name);
2625 ndr_print_string(ndr, "user_name", r->user_name);
2628 ndr_print_ptr(ndr, "document_name", r->document_name);
2630 if (r->document_name) {
2631 ndr_print_string(ndr, "document_name", r->document_name);
2634 ndr_print_ptr(ndr, "data_type", r->data_type);
2637 ndr_print_string(ndr, "data_type", r->data_type);
2640 ndr_print_ptr(ndr, "text_status", r->text_status);
2642 if (r->text_status) {
2643 ndr_print_string(ndr, "text_status", r->text_status);
2646 ndr_print_uint32(ndr, "status", r->status);
2647 ndr_print_uint32(ndr, "priority", r->priority);
2648 ndr_print_uint32(ndr, "position", r->position);
2649 ndr_print_uint32(ndr, "total_pages", r->total_pages);
2650 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
2651 ndr_print_spoolss_Time(ndr, "time", &r->time);
2655 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
2657 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2658 if (ndr_flags & NDR_SCALARS) {
2659 int level = ndr_push_get_switch_value(ndr, r);
2662 NDR_CHECK(ndr_push_align(ndr, 4));
2663 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2664 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
2678 if (ndr_flags & NDR_BUFFERS) {
2679 int level = ndr_push_get_switch_value(ndr, r);
2680 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2683 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
2697 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2698 return NDR_ERR_SUCCESS;
2701 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
2703 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2705 level = ndr_pull_get_switch_value(ndr, r);
2706 if (ndr_flags & NDR_SCALARS) {
2709 NDR_CHECK(ndr_pull_align(ndr, 4));
2710 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2711 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
2725 if (ndr_flags & NDR_BUFFERS) {
2726 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2729 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
2743 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2744 return NDR_ERR_SUCCESS;
2747 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
2750 level = ndr_print_get_switch_value(ndr, r);
2751 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
2754 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
2769 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
2771 if (ndr_flags & NDR_SCALARS) {
2772 NDR_CHECK(ndr_push_align(ndr, 4));
2773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
2774 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
2775 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->info));
2777 if (ndr_flags & NDR_BUFFERS) {
2778 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->info));
2780 return NDR_ERR_SUCCESS;
2783 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
2785 if (ndr_flags & NDR_SCALARS) {
2786 NDR_CHECK(ndr_pull_align(ndr, 4));
2787 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
2788 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
2789 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->info));
2791 if (ndr_flags & NDR_BUFFERS) {
2792 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->info));
2794 return NDR_ERR_SUCCESS;
2797 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
2799 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
2801 ndr_print_uint32(ndr, "level", r->level);
2802 ndr_print_set_switch_value(ndr, &r->info, r->level);
2803 ndr_print_spoolss_JobInfo(ndr, "info", &r->info);
2807 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
2809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2810 return NDR_ERR_SUCCESS;
2813 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
2816 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2818 return NDR_ERR_SUCCESS;
2821 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
2823 const char *val = NULL;
2826 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
2827 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
2828 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
2829 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
2830 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
2831 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
2832 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
2834 ndr_print_enum(ndr, name, "ENUM", val, r);
2837 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
2839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2840 return NDR_ERR_SUCCESS;
2843 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
2846 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2848 return NDR_ERR_SUCCESS;
2851 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
2853 const char *val = NULL;
2856 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
2857 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
2858 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
2859 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
2860 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
2862 ndr_print_enum(ndr, name, "ENUM", val, r);
2865 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
2867 if (ndr_flags & NDR_SCALARS) {
2868 int level = ndr_push_get_switch_value(ndr, r);
2869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
2872 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
2876 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
2880 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
2884 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
2888 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
2892 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
2896 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
2900 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
2904 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
2908 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
2916 if (ndr_flags & NDR_BUFFERS) {
2917 int level = ndr_push_get_switch_value(ndr, r);
2921 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
2927 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
2933 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
2939 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
2945 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
2951 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
2957 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, r->info6));
2963 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
2969 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
2975 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
2984 return NDR_ERR_SUCCESS;
2987 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
2991 TALLOC_CTX *_mem_save_info0_0;
2992 TALLOC_CTX *_mem_save_info1_0;
2993 TALLOC_CTX *_mem_save_info2_0;
2994 TALLOC_CTX *_mem_save_info3_0;
2995 TALLOC_CTX *_mem_save_info4_0;
2996 TALLOC_CTX *_mem_save_info5_0;
2997 TALLOC_CTX *_mem_save_info6_0;
2998 TALLOC_CTX *_mem_save_info7_0;
2999 TALLOC_CTX *_mem_save_info8_0;
3000 TALLOC_CTX *_mem_save_info9_0;
3001 level = ndr_pull_get_switch_value(ndr, r);
3002 if (ndr_flags & NDR_SCALARS) {
3003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
3004 if (_level != level) {
3005 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
3009 uint32_t _ptr_info0;
3010 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
3012 NDR_PULL_ALLOC(ndr, r->info0);
3019 uint32_t _ptr_info1;
3020 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
3022 NDR_PULL_ALLOC(ndr, r->info1);
3029 uint32_t _ptr_info2;
3030 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
3032 NDR_PULL_ALLOC(ndr, r->info2);
3039 uint32_t _ptr_info3;
3040 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
3042 NDR_PULL_ALLOC(ndr, r->info3);
3049 uint32_t _ptr_info4;
3050 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
3052 NDR_PULL_ALLOC(ndr, r->info4);
3059 uint32_t _ptr_info5;
3060 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
3062 NDR_PULL_ALLOC(ndr, r->info5);
3069 uint32_t _ptr_info6;
3070 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
3072 NDR_PULL_ALLOC(ndr, r->info6);
3079 uint32_t _ptr_info7;
3080 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
3082 NDR_PULL_ALLOC(ndr, r->info7);
3089 uint32_t _ptr_info8;
3090 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
3092 NDR_PULL_ALLOC(ndr, r->info8);
3099 uint32_t _ptr_info9;
3100 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
3102 NDR_PULL_ALLOC(ndr, r->info9);
3113 if (ndr_flags & NDR_BUFFERS) {
3117 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
3118 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
3119 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
3120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
3126 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
3127 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
3128 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
3129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
3135 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
3136 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
3137 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
3138 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
3144 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
3145 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
3146 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
3147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
3153 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
3154 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
3155 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
3156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
3162 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
3163 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
3164 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
3165 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
3171 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
3172 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
3173 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, r->info6));
3174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
3180 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
3181 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
3182 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
3183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
3189 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
3190 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
3191 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
3192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
3198 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
3199 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
3200 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
3201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
3210 return NDR_ERR_SUCCESS;
3213 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
3216 level = ndr_print_get_switch_value(ndr, r);
3217 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
3220 ndr_print_ptr(ndr, "info0", r->info0);
3223 ndr_print_spoolss_PrinterInfo0(ndr, "info0", r->info0);
3229 ndr_print_ptr(ndr, "info1", r->info1);
3232 ndr_print_spoolss_PrinterInfo1(ndr, "info1", r->info1);
3238 ndr_print_ptr(ndr, "info2", r->info2);
3241 ndr_print_spoolss_PrinterInfo2(ndr, "info2", r->info2);
3247 ndr_print_ptr(ndr, "info3", r->info3);
3250 ndr_print_spoolss_PrinterInfo3(ndr, "info3", r->info3);
3256 ndr_print_ptr(ndr, "info4", r->info4);
3259 ndr_print_spoolss_PrinterInfo4(ndr, "info4", r->info4);
3265 ndr_print_ptr(ndr, "info5", r->info5);
3268 ndr_print_spoolss_PrinterInfo5(ndr, "info5", r->info5);
3274 ndr_print_ptr(ndr, "info6", r->info6);
3277 ndr_print_spoolss_PrinterInfo6(ndr, "info6", r->info6);
3283 ndr_print_ptr(ndr, "info7", r->info7);
3286 ndr_print_spoolss_PrinterInfo7(ndr, "info7", r->info7);
3292 ndr_print_ptr(ndr, "info8", r->info8);
3295 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
3301 ndr_print_ptr(ndr, "info9", r->info9);
3304 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
3315 static enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
3317 if (ndr_flags & NDR_SCALARS) {
3318 NDR_CHECK(ndr_push_align(ndr, 4));
3320 uint32_t _flags_save_string = ndr->flags;
3321 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3322 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3323 ndr->flags = _flags_save_string;
3326 if (ndr_flags & NDR_BUFFERS) {
3328 uint32_t _flags_save_string = ndr->flags;
3329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3330 if (r->driver_name) {
3331 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3332 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3334 ndr->flags = _flags_save_string;
3337 return NDR_ERR_SUCCESS;
3340 static enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
3342 uint32_t _ptr_driver_name;
3343 TALLOC_CTX *_mem_save_driver_name_0;
3344 if (ndr_flags & NDR_SCALARS) {
3345 NDR_CHECK(ndr_pull_align(ndr, 4));
3347 uint32_t _flags_save_string = ndr->flags;
3348 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3349 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3350 if (_ptr_driver_name) {
3351 NDR_PULL_ALLOC(ndr, r->driver_name);
3352 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3354 r->driver_name = NULL;
3356 ndr->flags = _flags_save_string;
3359 if (ndr_flags & NDR_BUFFERS) {
3361 uint32_t _flags_save_string = ndr->flags;
3362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3363 if (r->driver_name) {
3364 uint32_t _relative_save_offset;
3365 _relative_save_offset = ndr->offset;
3366 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
3367 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3368 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
3369 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
3370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
3371 ndr->offset = _relative_save_offset;
3373 ndr->flags = _flags_save_string;
3376 return NDR_ERR_SUCCESS;
3379 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
3381 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
3383 ndr_print_ptr(ndr, "driver_name", r->driver_name);
3385 if (r->driver_name) {
3386 ndr_print_string(ndr, "driver_name", r->driver_name);
3392 static enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
3394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3395 return NDR_ERR_SUCCESS;
3398 static enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
3401 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3403 return NDR_ERR_SUCCESS;
3406 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
3408 const char *val = NULL;
3411 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
3412 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
3413 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
3414 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
3416 ndr_print_enum(ndr, name, "ENUM", val, r);
3419 static enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
3421 if (ndr_flags & NDR_SCALARS) {
3422 NDR_CHECK(ndr_push_align(ndr, 4));
3423 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
3425 uint32_t _flags_save_string = ndr->flags;
3426 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3427 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3428 ndr->flags = _flags_save_string;
3431 uint32_t _flags_save_string = ndr->flags;
3432 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3433 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
3434 ndr->flags = _flags_save_string;
3437 uint32_t _flags_save_string = ndr->flags;
3438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3439 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
3440 ndr->flags = _flags_save_string;
3443 uint32_t _flags_save_string = ndr->flags;
3444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3445 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
3446 ndr->flags = _flags_save_string;
3449 uint32_t _flags_save_string = ndr->flags;
3450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3451 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
3452 ndr->flags = _flags_save_string;
3455 if (ndr_flags & NDR_BUFFERS) {
3457 uint32_t _flags_save_string = ndr->flags;
3458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3459 if (r->driver_name) {
3460 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3461 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3463 ndr->flags = _flags_save_string;
3466 uint32_t _flags_save_string = ndr->flags;
3467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3468 if (r->architecture) {
3469 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
3470 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
3472 ndr->flags = _flags_save_string;
3475 uint32_t _flags_save_string = ndr->flags;
3476 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3477 if (r->driver_path) {
3478 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
3479 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
3481 ndr->flags = _flags_save_string;
3484 uint32_t _flags_save_string = ndr->flags;
3485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3487 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
3488 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
3490 ndr->flags = _flags_save_string;
3493 uint32_t _flags_save_string = ndr->flags;
3494 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3495 if (r->config_file) {
3496 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
3497 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
3499 ndr->flags = _flags_save_string;
3502 return NDR_ERR_SUCCESS;
3505 static enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
3507 uint32_t _ptr_driver_name;
3508 TALLOC_CTX *_mem_save_driver_name_0;
3509 uint32_t _ptr_architecture;
3510 TALLOC_CTX *_mem_save_architecture_0;
3511 uint32_t _ptr_driver_path;
3512 TALLOC_CTX *_mem_save_driver_path_0;
3513 uint32_t _ptr_data_file;
3514 TALLOC_CTX *_mem_save_data_file_0;
3515 uint32_t _ptr_config_file;
3516 TALLOC_CTX *_mem_save_config_file_0;
3517 if (ndr_flags & NDR_SCALARS) {
3518 NDR_CHECK(ndr_pull_align(ndr, 4));
3519 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
3521 uint32_t _flags_save_string = ndr->flags;
3522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3523 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3524 if (_ptr_driver_name) {
3525 NDR_PULL_ALLOC(ndr, r->driver_name);
3526 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3528 r->driver_name = NULL;
3530 ndr->flags = _flags_save_string;
3533 uint32_t _flags_save_string = ndr->flags;
3534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3535 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
3536 if (_ptr_architecture) {
3537 NDR_PULL_ALLOC(ndr, r->architecture);
3538 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
3540 r->architecture = NULL;
3542 ndr->flags = _flags_save_string;
3545 uint32_t _flags_save_string = ndr->flags;
3546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
3548 if (_ptr_driver_path) {
3549 NDR_PULL_ALLOC(ndr, r->driver_path);
3550 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
3552 r->driver_path = NULL;
3554 ndr->flags = _flags_save_string;
3557 uint32_t _flags_save_string = ndr->flags;
3558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
3560 if (_ptr_data_file) {
3561 NDR_PULL_ALLOC(ndr, r->data_file);
3562 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
3564 r->data_file = NULL;
3566 ndr->flags = _flags_save_string;
3569 uint32_t _flags_save_string = ndr->flags;
3570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
3572 if (_ptr_config_file) {
3573 NDR_PULL_ALLOC(ndr, r->config_file);
3574 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
3576 r->config_file = NULL;
3578 ndr->flags = _flags_save_string;
3581 if (ndr_flags & NDR_BUFFERS) {
3583 uint32_t _flags_save_string = ndr->flags;
3584 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3585 if (r->driver_name) {
3586 uint32_t _relative_save_offset;
3587 _relative_save_offset = ndr->offset;
3588 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
3589 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3590 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
3591 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
3592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
3593 ndr->offset = _relative_save_offset;
3595 ndr->flags = _flags_save_string;
3598 uint32_t _flags_save_string = ndr->flags;
3599 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3600 if (r->architecture) {
3601 uint32_t _relative_save_offset;
3602 _relative_save_offset = ndr->offset;
3603 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
3604 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
3605 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
3606 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
3607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
3608 ndr->offset = _relative_save_offset;
3610 ndr->flags = _flags_save_string;
3613 uint32_t _flags_save_string = ndr->flags;
3614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3615 if (r->driver_path) {
3616 uint32_t _relative_save_offset;
3617 _relative_save_offset = ndr->offset;
3618 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
3619 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
3620 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
3621 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
3622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
3623 ndr->offset = _relative_save_offset;
3625 ndr->flags = _flags_save_string;
3628 uint32_t _flags_save_string = ndr->flags;
3629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3631 uint32_t _relative_save_offset;
3632 _relative_save_offset = ndr->offset;
3633 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
3634 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
3635 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
3636 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
3637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
3638 ndr->offset = _relative_save_offset;
3640 ndr->flags = _flags_save_string;
3643 uint32_t _flags_save_string = ndr->flags;
3644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3645 if (r->config_file) {
3646 uint32_t _relative_save_offset;
3647 _relative_save_offset = ndr->offset;
3648 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
3649 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
3650 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
3651 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
3652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
3653 ndr->offset = _relative_save_offset;
3655 ndr->flags = _flags_save_string;
3658 return NDR_ERR_SUCCESS;
3661 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
3663 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
3665 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
3666 ndr_print_ptr(ndr, "driver_name", r->driver_name);
3668 if (r->driver_name) {
3669 ndr_print_string(ndr, "driver_name", r->driver_name);
3672 ndr_print_ptr(ndr, "architecture", r->architecture);
3674 if (r->architecture) {
3675 ndr_print_string(ndr, "architecture", r->architecture);
3678 ndr_print_ptr(ndr, "driver_path", r->driver_path);
3680 if (r->driver_path) {
3681 ndr_print_string(ndr, "driver_path", r->driver_path);
3684 ndr_print_ptr(ndr, "data_file", r->data_file);
3687 ndr_print_string(ndr, "data_file", r->data_file);
3690 ndr_print_ptr(ndr, "config_file", r->config_file);
3692 if (r->config_file) {
3693 ndr_print_string(ndr, "config_file", r->config_file);
3699 static enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
3701 if (ndr_flags & NDR_SCALARS) {
3702 NDR_CHECK(ndr_push_align(ndr, 4));
3703 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
3705 uint32_t _flags_save_string = ndr->flags;
3706 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3707 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3708 ndr->flags = _flags_save_string;
3711 uint32_t _flags_save_string = ndr->flags;
3712 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3713 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
3714 ndr->flags = _flags_save_string;
3717 uint32_t _flags_save_string = ndr->flags;
3718 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3719 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
3720 ndr->flags = _flags_save_string;
3723 uint32_t _flags_save_string = ndr->flags;
3724 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3725 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
3726 ndr->flags = _flags_save_string;
3729 uint32_t _flags_save_string = ndr->flags;
3730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3731 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
3732 ndr->flags = _flags_save_string;
3735 uint32_t _flags_save_string = ndr->flags;
3736 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3737 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
3738 ndr->flags = _flags_save_string;
3741 uint32_t _flags_save_string_array = ndr->flags;
3742 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3743 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
3744 ndr->flags = _flags_save_string_array;
3747 uint32_t _flags_save_string = ndr->flags;
3748 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3749 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
3750 ndr->flags = _flags_save_string;
3753 uint32_t _flags_save_string = ndr->flags;
3754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3755 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
3756 ndr->flags = _flags_save_string;
3759 if (ndr_flags & NDR_BUFFERS) {
3761 uint32_t _flags_save_string = ndr->flags;
3762 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3763 if (r->driver_name) {
3764 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3765 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3767 ndr->flags = _flags_save_string;
3770 uint32_t _flags_save_string = ndr->flags;
3771 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3772 if (r->architecture) {
3773 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
3774 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
3776 ndr->flags = _flags_save_string;
3779 uint32_t _flags_save_string = ndr->flags;
3780 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3781 if (r->driver_path) {
3782 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
3783 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
3785 ndr->flags = _flags_save_string;
3788 uint32_t _flags_save_string = ndr->flags;
3789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3791 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
3792 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
3794 ndr->flags = _flags_save_string;
3797 uint32_t _flags_save_string = ndr->flags;
3798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3799 if (r->config_file) {
3800 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
3801 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
3803 ndr->flags = _flags_save_string;
3806 uint32_t _flags_save_string = ndr->flags;
3807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3809 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
3810 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
3812 ndr->flags = _flags_save_string;
3815 uint32_t _flags_save_string_array = ndr->flags;
3816 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3817 if (r->dependent_files) {
3818 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
3819 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
3821 ndr->flags = _flags_save_string_array;
3824 uint32_t _flags_save_string = ndr->flags;
3825 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3826 if (r->monitor_name) {
3827 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
3828 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
3830 ndr->flags = _flags_save_string;
3833 uint32_t _flags_save_string = ndr->flags;
3834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3835 if (r->default_datatype) {
3836 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
3837 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
3839 ndr->flags = _flags_save_string;
3842 return NDR_ERR_SUCCESS;
3845 static enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
3847 uint32_t _ptr_driver_name;
3848 TALLOC_CTX *_mem_save_driver_name_0;
3849 uint32_t _ptr_architecture;
3850 TALLOC_CTX *_mem_save_architecture_0;
3851 uint32_t _ptr_driver_path;
3852 TALLOC_CTX *_mem_save_driver_path_0;
3853 uint32_t _ptr_data_file;
3854 TALLOC_CTX *_mem_save_data_file_0;
3855 uint32_t _ptr_config_file;
3856 TALLOC_CTX *_mem_save_config_file_0;
3857 uint32_t _ptr_help_file;
3858 TALLOC_CTX *_mem_save_help_file_0;
3859 uint32_t _ptr_dependent_files;
3860 TALLOC_CTX *_mem_save_dependent_files_0;
3861 uint32_t _ptr_monitor_name;
3862 TALLOC_CTX *_mem_save_monitor_name_0;
3863 uint32_t _ptr_default_datatype;
3864 TALLOC_CTX *_mem_save_default_datatype_0;
3865 if (ndr_flags & NDR_SCALARS) {
3866 NDR_CHECK(ndr_pull_align(ndr, 4));
3867 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
3869 uint32_t _flags_save_string = ndr->flags;
3870 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3871 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3872 if (_ptr_driver_name) {
3873 NDR_PULL_ALLOC(ndr, r->driver_name);
3874 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3876 r->driver_name = NULL;
3878 ndr->flags = _flags_save_string;
3881 uint32_t _flags_save_string = ndr->flags;
3882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
3884 if (_ptr_architecture) {
3885 NDR_PULL_ALLOC(ndr, r->architecture);
3886 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
3888 r->architecture = NULL;
3890 ndr->flags = _flags_save_string;
3893 uint32_t _flags_save_string = ndr->flags;
3894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
3896 if (_ptr_driver_path) {
3897 NDR_PULL_ALLOC(ndr, r->driver_path);
3898 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
3900 r->driver_path = NULL;
3902 ndr->flags = _flags_save_string;
3905 uint32_t _flags_save_string = ndr->flags;
3906 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
3908 if (_ptr_data_file) {
3909 NDR_PULL_ALLOC(ndr, r->data_file);
3910 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
3912 r->data_file = NULL;
3914 ndr->flags = _flags_save_string;
3917 uint32_t _flags_save_string = ndr->flags;
3918 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
3920 if (_ptr_config_file) {
3921 NDR_PULL_ALLOC(ndr, r->config_file);
3922 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
3924 r->config_file = NULL;
3926 ndr->flags = _flags_save_string;
3929 uint32_t _flags_save_string = ndr->flags;
3930 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3931 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
3932 if (_ptr_help_file) {
3933 NDR_PULL_ALLOC(ndr, r->help_file);
3934 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
3936 r->help_file = NULL;
3938 ndr->flags = _flags_save_string;
3941 uint32_t _flags_save_string_array = ndr->flags;
3942 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3943 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
3944 if (_ptr_dependent_files) {
3945 NDR_PULL_ALLOC(ndr, r->dependent_files);
3946 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
3948 r->dependent_files = NULL;
3950 ndr->flags = _flags_save_string_array;
3953 uint32_t _flags_save_string = ndr->flags;
3954 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3955 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
3956 if (_ptr_monitor_name) {
3957 NDR_PULL_ALLOC(ndr, r->monitor_name);
3958 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
3960 r->monitor_name = NULL;
3962 ndr->flags = _flags_save_string;
3965 uint32_t _flags_save_string = ndr->flags;
3966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3967 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
3968 if (_ptr_default_datatype) {
3969 NDR_PULL_ALLOC(ndr, r->default_datatype);
3970 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
3972 r->default_datatype = NULL;
3974 ndr->flags = _flags_save_string;
3977 if (ndr_flags & NDR_BUFFERS) {
3979 uint32_t _flags_save_string = ndr->flags;
3980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3981 if (r->driver_name) {
3982 uint32_t _relative_save_offset;
3983 _relative_save_offset = ndr->offset;
3984 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
3985 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3986 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
3987 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
3988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
3989 ndr->offset = _relative_save_offset;
3991 ndr->flags = _flags_save_string;
3994 uint32_t _flags_save_string = ndr->flags;
3995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3996 if (r->architecture) {
3997 uint32_t _relative_save_offset;
3998 _relative_save_offset = ndr->offset;
3999 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
4000 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
4001 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
4002 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
4003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
4004 ndr->offset = _relative_save_offset;
4006 ndr->flags = _flags_save_string;
4009 uint32_t _flags_save_string = ndr->flags;
4010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4011 if (r->driver_path) {
4012 uint32_t _relative_save_offset;
4013 _relative_save_offset = ndr->offset;
4014 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
4015 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
4016 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
4017 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
4018 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
4019 ndr->offset = _relative_save_offset;
4021 ndr->flags = _flags_save_string;
4024 uint32_t _flags_save_string = ndr->flags;
4025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4027 uint32_t _relative_save_offset;
4028 _relative_save_offset = ndr->offset;
4029 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
4030 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4031 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
4032 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
4033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
4034 ndr->offset = _relative_save_offset;
4036 ndr->flags = _flags_save_string;
4039 uint32_t _flags_save_string = ndr->flags;
4040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4041 if (r->config_file) {
4042 uint32_t _relative_save_offset;
4043 _relative_save_offset = ndr->offset;
4044 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
4045 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4046 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
4047 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
4048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
4049 ndr->offset = _relative_save_offset;
4051 ndr->flags = _flags_save_string;
4054 uint32_t _flags_save_string = ndr->flags;
4055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4057 uint32_t _relative_save_offset;
4058 _relative_save_offset = ndr->offset;
4059 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
4060 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4061 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
4062 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
4063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
4064 ndr->offset = _relative_save_offset;
4066 ndr->flags = _flags_save_string;
4069 uint32_t _flags_save_string_array = ndr->flags;
4070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4071 if (r->dependent_files) {
4072 uint32_t _relative_save_offset;
4073 _relative_save_offset = ndr->offset;
4074 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
4075 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
4076 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
4077 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
4078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
4079 ndr->offset = _relative_save_offset;
4081 ndr->flags = _flags_save_string_array;
4084 uint32_t _flags_save_string = ndr->flags;
4085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4086 if (r->monitor_name) {
4087 uint32_t _relative_save_offset;
4088 _relative_save_offset = ndr->offset;
4089 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
4090 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4091 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
4092 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
4093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
4094 ndr->offset = _relative_save_offset;
4096 ndr->flags = _flags_save_string;
4099 uint32_t _flags_save_string = ndr->flags;
4100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4101 if (r->default_datatype) {
4102 uint32_t _relative_save_offset;
4103 _relative_save_offset = ndr->offset;
4104 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
4105 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
4106 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
4107 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
4108 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
4109 ndr->offset = _relative_save_offset;
4111 ndr->flags = _flags_save_string;
4114 return NDR_ERR_SUCCESS;
4117 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
4119 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
4121 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
4122 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4124 if (r->driver_name) {
4125 ndr_print_string(ndr, "driver_name", r->driver_name);
4128 ndr_print_ptr(ndr, "architecture", r->architecture);
4130 if (r->architecture) {
4131 ndr_print_string(ndr, "architecture", r->architecture);
4134 ndr_print_ptr(ndr, "driver_path", r->driver_path);
4136 if (r->driver_path) {
4137 ndr_print_string(ndr, "driver_path", r->driver_path);
4140 ndr_print_ptr(ndr, "data_file", r->data_file);
4143 ndr_print_string(ndr, "data_file", r->data_file);
4146 ndr_print_ptr(ndr, "config_file", r->config_file);
4148 if (r->config_file) {
4149 ndr_print_string(ndr, "config_file", r->config_file);
4152 ndr_print_ptr(ndr, "help_file", r->help_file);
4155 ndr_print_string(ndr, "help_file", r->help_file);
4158 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
4160 if (r->dependent_files) {
4161 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
4164 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
4166 if (r->monitor_name) {
4167 ndr_print_string(ndr, "monitor_name", r->monitor_name);
4170 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
4172 if (r->default_datatype) {
4173 ndr_print_string(ndr, "default_datatype", r->default_datatype);
4179 static enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
4181 if (ndr_flags & NDR_SCALARS) {
4182 NDR_CHECK(ndr_push_align(ndr, 4));
4183 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
4185 uint32_t _flags_save_string = ndr->flags;
4186 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4187 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4188 ndr->flags = _flags_save_string;
4191 uint32_t _flags_save_string = ndr->flags;
4192 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4193 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
4194 ndr->flags = _flags_save_string;
4197 uint32_t _flags_save_string = ndr->flags;
4198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4199 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
4200 ndr->flags = _flags_save_string;
4203 uint32_t _flags_save_string = ndr->flags;
4204 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4205 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
4206 ndr->flags = _flags_save_string;
4209 uint32_t _flags_save_string = ndr->flags;
4210 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4211 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
4212 ndr->flags = _flags_save_string;
4215 uint32_t _flags_save_string = ndr->flags;
4216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4217 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
4218 ndr->flags = _flags_save_string;
4221 uint32_t _flags_save_string_array = ndr->flags;
4222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4223 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
4224 ndr->flags = _flags_save_string_array;
4227 uint32_t _flags_save_string = ndr->flags;
4228 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4229 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
4230 ndr->flags = _flags_save_string;
4233 uint32_t _flags_save_string = ndr->flags;
4234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4235 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
4236 ndr->flags = _flags_save_string;
4239 uint32_t _flags_save_string_array = ndr->flags;
4240 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4241 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
4242 ndr->flags = _flags_save_string_array;
4245 if (ndr_flags & NDR_BUFFERS) {
4247 uint32_t _flags_save_string = ndr->flags;
4248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4249 if (r->driver_name) {
4250 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
4251 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4253 ndr->flags = _flags_save_string;
4256 uint32_t _flags_save_string = ndr->flags;
4257 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4258 if (r->architecture) {
4259 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
4260 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
4262 ndr->flags = _flags_save_string;
4265 uint32_t _flags_save_string = ndr->flags;
4266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4267 if (r->driver_path) {
4268 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
4269 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
4271 ndr->flags = _flags_save_string;
4274 uint32_t _flags_save_string = ndr->flags;
4275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4277 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
4278 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
4280 ndr->flags = _flags_save_string;
4283 uint32_t _flags_save_string = ndr->flags;
4284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4285 if (r->config_file) {
4286 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
4287 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
4289 ndr->flags = _flags_save_string;
4292 uint32_t _flags_save_string = ndr->flags;
4293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4295 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
4296 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
4298 ndr->flags = _flags_save_string;
4301 uint32_t _flags_save_string_array = ndr->flags;
4302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4303 if (r->dependent_files) {
4304 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
4305 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
4307 ndr->flags = _flags_save_string_array;
4310 uint32_t _flags_save_string = ndr->flags;
4311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4312 if (r->monitor_name) {
4313 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
4314 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
4316 ndr->flags = _flags_save_string;
4319 uint32_t _flags_save_string = ndr->flags;
4320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4321 if (r->default_datatype) {
4322 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
4323 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
4325 ndr->flags = _flags_save_string;
4328 uint32_t _flags_save_string_array = ndr->flags;
4329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4330 if (r->previous_names) {
4331 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
4332 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
4334 ndr->flags = _flags_save_string_array;
4337 return NDR_ERR_SUCCESS;
4340 static enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
4342 uint32_t _ptr_driver_name;
4343 TALLOC_CTX *_mem_save_driver_name_0;
4344 uint32_t _ptr_architecture;
4345 TALLOC_CTX *_mem_save_architecture_0;
4346 uint32_t _ptr_driver_path;
4347 TALLOC_CTX *_mem_save_driver_path_0;
4348 uint32_t _ptr_data_file;
4349 TALLOC_CTX *_mem_save_data_file_0;
4350 uint32_t _ptr_config_file;
4351 TALLOC_CTX *_mem_save_config_file_0;
4352 uint32_t _ptr_help_file;
4353 TALLOC_CTX *_mem_save_help_file_0;
4354 uint32_t _ptr_dependent_files;
4355 TALLOC_CTX *_mem_save_dependent_files_0;
4356 uint32_t _ptr_monitor_name;
4357 TALLOC_CTX *_mem_save_monitor_name_0;
4358 uint32_t _ptr_default_datatype;
4359 TALLOC_CTX *_mem_save_default_datatype_0;
4360 uint32_t _ptr_previous_names;
4361 TALLOC_CTX *_mem_save_previous_names_0;
4362 if (ndr_flags & NDR_SCALARS) {
4363 NDR_CHECK(ndr_pull_align(ndr, 4));
4364 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
4366 uint32_t _flags_save_string = ndr->flags;
4367 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4368 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4369 if (_ptr_driver_name) {
4370 NDR_PULL_ALLOC(ndr, r->driver_name);
4371 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4373 r->driver_name = NULL;
4375 ndr->flags = _flags_save_string;
4378 uint32_t _flags_save_string = ndr->flags;
4379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4380 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
4381 if (_ptr_architecture) {
4382 NDR_PULL_ALLOC(ndr, r->architecture);
4383 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
4385 r->architecture = NULL;
4387 ndr->flags = _flags_save_string;
4390 uint32_t _flags_save_string = ndr->flags;
4391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4392 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
4393 if (_ptr_driver_path) {
4394 NDR_PULL_ALLOC(ndr, r->driver_path);
4395 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
4397 r->driver_path = NULL;
4399 ndr->flags = _flags_save_string;
4402 uint32_t _flags_save_string = ndr->flags;
4403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4404 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
4405 if (_ptr_data_file) {
4406 NDR_PULL_ALLOC(ndr, r->data_file);
4407 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
4409 r->data_file = NULL;
4411 ndr->flags = _flags_save_string;
4414 uint32_t _flags_save_string = ndr->flags;
4415 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
4417 if (_ptr_config_file) {
4418 NDR_PULL_ALLOC(ndr, r->config_file);
4419 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
4421 r->config_file = NULL;
4423 ndr->flags = _flags_save_string;
4426 uint32_t _flags_save_string = ndr->flags;
4427 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4428 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
4429 if (_ptr_help_file) {
4430 NDR_PULL_ALLOC(ndr, r->help_file);
4431 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
4433 r->help_file = NULL;
4435 ndr->flags = _flags_save_string;
4438 uint32_t _flags_save_string_array = ndr->flags;
4439 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4440 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
4441 if (_ptr_dependent_files) {
4442 NDR_PULL_ALLOC(ndr, r->dependent_files);
4443 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
4445 r->dependent_files = NULL;
4447 ndr->flags = _flags_save_string_array;
4450 uint32_t _flags_save_string = ndr->flags;
4451 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4452 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
4453 if (_ptr_monitor_name) {
4454 NDR_PULL_ALLOC(ndr, r->monitor_name);
4455 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
4457 r->monitor_name = NULL;
4459 ndr->flags = _flags_save_string;
4462 uint32_t _flags_save_string = ndr->flags;
4463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4464 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
4465 if (_ptr_default_datatype) {
4466 NDR_PULL_ALLOC(ndr, r->default_datatype);
4467 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
4469 r->default_datatype = NULL;
4471 ndr->flags = _flags_save_string;
4474 uint32_t _flags_save_string_array = ndr->flags;
4475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4476 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
4477 if (_ptr_previous_names) {
4478 NDR_PULL_ALLOC(ndr, r->previous_names);
4479 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
4481 r->previous_names = NULL;
4483 ndr->flags = _flags_save_string_array;
4486 if (ndr_flags & NDR_BUFFERS) {
4488 uint32_t _flags_save_string = ndr->flags;
4489 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4490 if (r->driver_name) {
4491 uint32_t _relative_save_offset;
4492 _relative_save_offset = ndr->offset;
4493 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4494 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4495 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4496 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4498 ndr->offset = _relative_save_offset;
4500 ndr->flags = _flags_save_string;
4503 uint32_t _flags_save_string = ndr->flags;
4504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4505 if (r->architecture) {
4506 uint32_t _relative_save_offset;
4507 _relative_save_offset = ndr->offset;
4508 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
4509 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
4510 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
4511 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
4512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
4513 ndr->offset = _relative_save_offset;
4515 ndr->flags = _flags_save_string;
4518 uint32_t _flags_save_string = ndr->flags;
4519 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4520 if (r->driver_path) {
4521 uint32_t _relative_save_offset;
4522 _relative_save_offset = ndr->offset;
4523 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
4524 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
4525 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
4526 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
4527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
4528 ndr->offset = _relative_save_offset;
4530 ndr->flags = _flags_save_string;
4533 uint32_t _flags_save_string = ndr->flags;
4534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4536 uint32_t _relative_save_offset;
4537 _relative_save_offset = ndr->offset;
4538 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
4539 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4540 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
4541 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
4542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
4543 ndr->offset = _relative_save_offset;
4545 ndr->flags = _flags_save_string;
4548 uint32_t _flags_save_string = ndr->flags;
4549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4550 if (r->config_file) {
4551 uint32_t _relative_save_offset;
4552 _relative_save_offset = ndr->offset;
4553 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
4554 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4555 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
4556 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
4557 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
4558 ndr->offset = _relative_save_offset;
4560 ndr->flags = _flags_save_string;
4563 uint32_t _flags_save_string = ndr->flags;
4564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4566 uint32_t _relative_save_offset;
4567 _relative_save_offset = ndr->offset;
4568 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
4569 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4570 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
4571 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
4572 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
4573 ndr->offset = _relative_save_offset;
4575 ndr->flags = _flags_save_string;
4578 uint32_t _flags_save_string_array = ndr->flags;
4579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4580 if (r->dependent_files) {
4581 uint32_t _relative_save_offset;
4582 _relative_save_offset = ndr->offset;
4583 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
4584 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
4585 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
4586 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
4587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
4588 ndr->offset = _relative_save_offset;
4590 ndr->flags = _flags_save_string_array;
4593 uint32_t _flags_save_string = ndr->flags;
4594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4595 if (r->monitor_name) {
4596 uint32_t _relative_save_offset;
4597 _relative_save_offset = ndr->offset;
4598 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
4599 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4600 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
4601 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
4602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
4603 ndr->offset = _relative_save_offset;
4605 ndr->flags = _flags_save_string;
4608 uint32_t _flags_save_string = ndr->flags;
4609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4610 if (r->default_datatype) {
4611 uint32_t _relative_save_offset;
4612 _relative_save_offset = ndr->offset;
4613 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
4614 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
4615 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
4616 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
4617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
4618 ndr->offset = _relative_save_offset;
4620 ndr->flags = _flags_save_string;
4623 uint32_t _flags_save_string_array = ndr->flags;
4624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4625 if (r->previous_names) {
4626 uint32_t _relative_save_offset;
4627 _relative_save_offset = ndr->offset;
4628 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
4629 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
4630 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
4631 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
4632 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
4633 ndr->offset = _relative_save_offset;
4635 ndr->flags = _flags_save_string_array;
4638 return NDR_ERR_SUCCESS;
4641 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
4643 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
4645 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
4646 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4648 if (r->driver_name) {
4649 ndr_print_string(ndr, "driver_name", r->driver_name);
4652 ndr_print_ptr(ndr, "architecture", r->architecture);
4654 if (r->architecture) {
4655 ndr_print_string(ndr, "architecture", r->architecture);
4658 ndr_print_ptr(ndr, "driver_path", r->driver_path);
4660 if (r->driver_path) {
4661 ndr_print_string(ndr, "driver_path", r->driver_path);
4664 ndr_print_ptr(ndr, "data_file", r->data_file);
4667 ndr_print_string(ndr, "data_file", r->data_file);
4670 ndr_print_ptr(ndr, "config_file", r->config_file);
4672 if (r->config_file) {
4673 ndr_print_string(ndr, "config_file", r->config_file);
4676 ndr_print_ptr(ndr, "help_file", r->help_file);
4679 ndr_print_string(ndr, "help_file", r->help_file);
4682 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
4684 if (r->dependent_files) {
4685 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
4688 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
4690 if (r->monitor_name) {
4691 ndr_print_string(ndr, "monitor_name", r->monitor_name);
4694 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
4696 if (r->default_datatype) {
4697 ndr_print_string(ndr, "default_datatype", r->default_datatype);
4700 ndr_print_ptr(ndr, "previous_names", r->previous_names);
4702 if (r->previous_names) {
4703 ndr_print_string_array(ndr, "previous_names", r->previous_names);
4709 static enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
4711 if (ndr_flags & NDR_SCALARS) {
4712 NDR_CHECK(ndr_push_align(ndr, 4));
4713 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
4715 uint32_t _flags_save_string = ndr->flags;
4716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4717 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4718 ndr->flags = _flags_save_string;
4721 uint32_t _flags_save_string = ndr->flags;
4722 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4723 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
4724 ndr->flags = _flags_save_string;
4727 uint32_t _flags_save_string = ndr->flags;
4728 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4729 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
4730 ndr->flags = _flags_save_string;
4733 uint32_t _flags_save_string = ndr->flags;
4734 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4735 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
4736 ndr->flags = _flags_save_string;
4739 uint32_t _flags_save_string = ndr->flags;
4740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4741 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
4742 ndr->flags = _flags_save_string;
4744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_attributes));
4745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
4746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
4748 if (ndr_flags & NDR_BUFFERS) {
4750 uint32_t _flags_save_string = ndr->flags;
4751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4752 if (r->driver_name) {
4753 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
4754 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4756 ndr->flags = _flags_save_string;
4759 uint32_t _flags_save_string = ndr->flags;
4760 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4761 if (r->architecture) {
4762 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
4763 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
4765 ndr->flags = _flags_save_string;
4768 uint32_t _flags_save_string = ndr->flags;
4769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4770 if (r->driver_path) {
4771 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
4772 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
4774 ndr->flags = _flags_save_string;
4777 uint32_t _flags_save_string = ndr->flags;
4778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4780 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
4781 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
4783 ndr->flags = _flags_save_string;
4786 uint32_t _flags_save_string = ndr->flags;
4787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4788 if (r->config_file) {
4789 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
4790 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
4792 ndr->flags = _flags_save_string;
4795 return NDR_ERR_SUCCESS;
4798 static enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
4800 uint32_t _ptr_driver_name;
4801 TALLOC_CTX *_mem_save_driver_name_0;
4802 uint32_t _ptr_architecture;
4803 TALLOC_CTX *_mem_save_architecture_0;
4804 uint32_t _ptr_driver_path;
4805 TALLOC_CTX *_mem_save_driver_path_0;
4806 uint32_t _ptr_data_file;
4807 TALLOC_CTX *_mem_save_data_file_0;
4808 uint32_t _ptr_config_file;
4809 TALLOC_CTX *_mem_save_config_file_0;
4810 if (ndr_flags & NDR_SCALARS) {
4811 NDR_CHECK(ndr_pull_align(ndr, 4));
4812 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
4814 uint32_t _flags_save_string = ndr->flags;
4815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4816 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4817 if (_ptr_driver_name) {
4818 NDR_PULL_ALLOC(ndr, r->driver_name);
4819 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4821 r->driver_name = NULL;
4823 ndr->flags = _flags_save_string;
4826 uint32_t _flags_save_string = ndr->flags;
4827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4828 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
4829 if (_ptr_architecture) {
4830 NDR_PULL_ALLOC(ndr, r->architecture);
4831 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
4833 r->architecture = NULL;
4835 ndr->flags = _flags_save_string;
4838 uint32_t _flags_save_string = ndr->flags;
4839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
4841 if (_ptr_driver_path) {
4842 NDR_PULL_ALLOC(ndr, r->driver_path);
4843 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
4845 r->driver_path = NULL;
4847 ndr->flags = _flags_save_string;
4850 uint32_t _flags_save_string = ndr->flags;
4851 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4852 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
4853 if (_ptr_data_file) {
4854 NDR_PULL_ALLOC(ndr, r->data_file);
4855 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
4857 r->data_file = NULL;
4859 ndr->flags = _flags_save_string;
4862 uint32_t _flags_save_string = ndr->flags;
4863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
4865 if (_ptr_config_file) {
4866 NDR_PULL_ALLOC(ndr, r->config_file);
4867 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
4869 r->config_file = NULL;
4871 ndr->flags = _flags_save_string;
4873 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_attributes));
4874 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
4875 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
4877 if (ndr_flags & NDR_BUFFERS) {
4879 uint32_t _flags_save_string = ndr->flags;
4880 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4881 if (r->driver_name) {
4882 uint32_t _relative_save_offset;
4883 _relative_save_offset = ndr->offset;
4884 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4885 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4886 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4887 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4889 ndr->offset = _relative_save_offset;
4891 ndr->flags = _flags_save_string;
4894 uint32_t _flags_save_string = ndr->flags;
4895 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4896 if (r->architecture) {
4897 uint32_t _relative_save_offset;
4898 _relative_save_offset = ndr->offset;
4899 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
4900 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
4901 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
4902 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
4903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
4904 ndr->offset = _relative_save_offset;
4906 ndr->flags = _flags_save_string;
4909 uint32_t _flags_save_string = ndr->flags;
4910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4911 if (r->driver_path) {
4912 uint32_t _relative_save_offset;
4913 _relative_save_offset = ndr->offset;
4914 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
4915 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
4916 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
4917 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
4918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
4919 ndr->offset = _relative_save_offset;
4921 ndr->flags = _flags_save_string;
4924 uint32_t _flags_save_string = ndr->flags;
4925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4927 uint32_t _relative_save_offset;
4928 _relative_save_offset = ndr->offset;
4929 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
4930 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4931 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
4932 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
4933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
4934 ndr->offset = _relative_save_offset;
4936 ndr->flags = _flags_save_string;
4939 uint32_t _flags_save_string = ndr->flags;
4940 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4941 if (r->config_file) {
4942 uint32_t _relative_save_offset;
4943 _relative_save_offset = ndr->offset;
4944 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
4945 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4946 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
4947 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
4948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
4949 ndr->offset = _relative_save_offset;
4951 ndr->flags = _flags_save_string;
4954 return NDR_ERR_SUCCESS;
4957 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
4959 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
4961 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
4962 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4964 if (r->driver_name) {
4965 ndr_print_string(ndr, "driver_name", r->driver_name);
4968 ndr_print_ptr(ndr, "architecture", r->architecture);
4970 if (r->architecture) {
4971 ndr_print_string(ndr, "architecture", r->architecture);
4974 ndr_print_ptr(ndr, "driver_path", r->driver_path);
4976 if (r->driver_path) {
4977 ndr_print_string(ndr, "driver_path", r->driver_path);
4980 ndr_print_ptr(ndr, "data_file", r->data_file);
4983 ndr_print_string(ndr, "data_file", r->data_file);
4986 ndr_print_ptr(ndr, "config_file", r->config_file);
4988 if (r->config_file) {
4989 ndr_print_string(ndr, "config_file", r->config_file);
4992 ndr_print_uint32(ndr, "driver_attributes", r->driver_attributes);
4993 ndr_print_uint32(ndr, "config_version", r->config_version);
4994 ndr_print_uint32(ndr, "driver_version", r->driver_version);
4998 static enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
5000 if (ndr_flags & NDR_SCALARS) {
5001 NDR_CHECK(ndr_push_align(ndr, 8));
5002 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5004 uint32_t _flags_save_string = ndr->flags;
5005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5006 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
5007 ndr->flags = _flags_save_string;
5010 uint32_t _flags_save_string = ndr->flags;
5011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5012 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
5013 ndr->flags = _flags_save_string;
5016 uint32_t _flags_save_string = ndr->flags;
5017 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5018 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
5019 ndr->flags = _flags_save_string;
5022 uint32_t _flags_save_string = ndr->flags;
5023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5024 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
5025 ndr->flags = _flags_save_string;
5028 uint32_t _flags_save_string = ndr->flags;
5029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5030 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
5031 ndr->flags = _flags_save_string;
5034 uint32_t _flags_save_string = ndr->flags;
5035 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5036 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
5037 ndr->flags = _flags_save_string;
5040 uint32_t _flags_save_string_array = ndr->flags;
5041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5042 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
5043 ndr->flags = _flags_save_string_array;
5046 uint32_t _flags_save_string = ndr->flags;
5047 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5048 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
5049 ndr->flags = _flags_save_string;
5052 uint32_t _flags_save_string = ndr->flags;
5053 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5054 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
5055 ndr->flags = _flags_save_string;
5058 uint32_t _flags_save_string_array = ndr->flags;
5059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5060 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
5061 ndr->flags = _flags_save_string_array;
5063 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
5064 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
5066 uint32_t _flags_save_string = ndr->flags;
5067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5068 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
5069 ndr->flags = _flags_save_string;
5072 uint32_t _flags_save_string = ndr->flags;
5073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5074 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
5075 ndr->flags = _flags_save_string;
5078 uint32_t _flags_save_string = ndr->flags;
5079 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5080 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
5081 ndr->flags = _flags_save_string;
5084 uint32_t _flags_save_string = ndr->flags;
5085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5086 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
5087 ndr->flags = _flags_save_string;
5090 if (ndr_flags & NDR_BUFFERS) {
5092 uint32_t _flags_save_string = ndr->flags;
5093 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5094 if (r->driver_name) {
5095 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
5096 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
5098 ndr->flags = _flags_save_string;
5101 uint32_t _flags_save_string = ndr->flags;
5102 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5103 if (r->architecture) {
5104 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
5105 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
5107 ndr->flags = _flags_save_string;
5110 uint32_t _flags_save_string = ndr->flags;
5111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5112 if (r->driver_path) {
5113 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
5114 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
5116 ndr->flags = _flags_save_string;
5119 uint32_t _flags_save_string = ndr->flags;
5120 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5122 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
5123 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
5125 ndr->flags = _flags_save_string;
5128 uint32_t _flags_save_string = ndr->flags;
5129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5130 if (r->config_file) {
5131 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
5132 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
5134 ndr->flags = _flags_save_string;
5137 uint32_t _flags_save_string = ndr->flags;
5138 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5140 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
5141 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
5143 ndr->flags = _flags_save_string;
5146 uint32_t _flags_save_string_array = ndr->flags;
5147 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5148 if (r->dependent_files) {
5149 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
5150 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
5152 ndr->flags = _flags_save_string_array;
5155 uint32_t _flags_save_string = ndr->flags;
5156 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5157 if (r->monitor_name) {
5158 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
5159 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
5161 ndr->flags = _flags_save_string;
5164 uint32_t _flags_save_string = ndr->flags;
5165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5166 if (r->default_datatype) {
5167 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
5168 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
5170 ndr->flags = _flags_save_string;
5173 uint32_t _flags_save_string_array = ndr->flags;
5174 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5175 if (r->previous_names) {
5176 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
5177 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
5179 ndr->flags = _flags_save_string_array;
5182 uint32_t _flags_save_string = ndr->flags;
5183 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5184 if (r->manufacturer_name) {
5185 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
5186 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
5188 ndr->flags = _flags_save_string;
5191 uint32_t _flags_save_string = ndr->flags;
5192 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5193 if (r->manufacturer_url) {
5194 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
5195 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
5197 ndr->flags = _flags_save_string;
5200 uint32_t _flags_save_string = ndr->flags;
5201 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5202 if (r->hardware_id) {
5203 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
5204 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
5206 ndr->flags = _flags_save_string;
5209 uint32_t _flags_save_string = ndr->flags;
5210 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5212 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
5213 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
5215 ndr->flags = _flags_save_string;
5218 return NDR_ERR_SUCCESS;
5221 static enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
5223 uint32_t _ptr_driver_name;
5224 TALLOC_CTX *_mem_save_driver_name_0;
5225 uint32_t _ptr_architecture;
5226 TALLOC_CTX *_mem_save_architecture_0;
5227 uint32_t _ptr_driver_path;
5228 TALLOC_CTX *_mem_save_driver_path_0;
5229 uint32_t _ptr_data_file;
5230 TALLOC_CTX *_mem_save_data_file_0;
5231 uint32_t _ptr_config_file;
5232 TALLOC_CTX *_mem_save_config_file_0;
5233 uint32_t _ptr_help_file;
5234 TALLOC_CTX *_mem_save_help_file_0;
5235 uint32_t _ptr_dependent_files;
5236 TALLOC_CTX *_mem_save_dependent_files_0;
5237 uint32_t _ptr_monitor_name;
5238 TALLOC_CTX *_mem_save_monitor_name_0;
5239 uint32_t _ptr_default_datatype;
5240 TALLOC_CTX *_mem_save_default_datatype_0;
5241 uint32_t _ptr_previous_names;
5242 TALLOC_CTX *_mem_save_previous_names_0;
5243 uint32_t _ptr_manufacturer_name;
5244 TALLOC_CTX *_mem_save_manufacturer_name_0;
5245 uint32_t _ptr_manufacturer_url;
5246 TALLOC_CTX *_mem_save_manufacturer_url_0;
5247 uint32_t _ptr_hardware_id;
5248 TALLOC_CTX *_mem_save_hardware_id_0;
5249 uint32_t _ptr_provider;
5250 TALLOC_CTX *_mem_save_provider_0;
5251 if (ndr_flags & NDR_SCALARS) {
5252 NDR_CHECK(ndr_pull_align(ndr, 8));
5253 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5255 uint32_t _flags_save_string = ndr->flags;
5256 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5257 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5258 if (_ptr_driver_name) {
5259 NDR_PULL_ALLOC(ndr, r->driver_name);
5260 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
5262 r->driver_name = NULL;
5264 ndr->flags = _flags_save_string;
5267 uint32_t _flags_save_string = ndr->flags;
5268 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5269 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5270 if (_ptr_architecture) {
5271 NDR_PULL_ALLOC(ndr, r->architecture);
5272 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
5274 r->architecture = NULL;
5276 ndr->flags = _flags_save_string;
5279 uint32_t _flags_save_string = ndr->flags;
5280 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5281 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5282 if (_ptr_driver_path) {
5283 NDR_PULL_ALLOC(ndr, r->driver_path);
5284 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
5286 r->driver_path = NULL;
5288 ndr->flags = _flags_save_string;
5291 uint32_t _flags_save_string = ndr->flags;
5292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5293 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5294 if (_ptr_data_file) {
5295 NDR_PULL_ALLOC(ndr, r->data_file);
5296 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
5298 r->data_file = NULL;
5300 ndr->flags = _flags_save_string;
5303 uint32_t _flags_save_string = ndr->flags;
5304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5306 if (_ptr_config_file) {
5307 NDR_PULL_ALLOC(ndr, r->config_file);
5308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
5310 r->config_file = NULL;
5312 ndr->flags = _flags_save_string;
5315 uint32_t _flags_save_string = ndr->flags;
5316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5318 if (_ptr_help_file) {
5319 NDR_PULL_ALLOC(ndr, r->help_file);
5320 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
5322 r->help_file = NULL;
5324 ndr->flags = _flags_save_string;
5327 uint32_t _flags_save_string_array = ndr->flags;
5328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5329 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5330 if (_ptr_dependent_files) {
5331 NDR_PULL_ALLOC(ndr, r->dependent_files);
5332 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
5334 r->dependent_files = NULL;
5336 ndr->flags = _flags_save_string_array;
5339 uint32_t _flags_save_string = ndr->flags;
5340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5342 if (_ptr_monitor_name) {
5343 NDR_PULL_ALLOC(ndr, r->monitor_name);
5344 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
5346 r->monitor_name = NULL;
5348 ndr->flags = _flags_save_string;
5351 uint32_t _flags_save_string = ndr->flags;
5352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5354 if (_ptr_default_datatype) {
5355 NDR_PULL_ALLOC(ndr, r->default_datatype);
5356 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
5358 r->default_datatype = NULL;
5360 ndr->flags = _flags_save_string;
5363 uint32_t _flags_save_string_array = ndr->flags;
5364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
5366 if (_ptr_previous_names) {
5367 NDR_PULL_ALLOC(ndr, r->previous_names);
5368 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
5370 r->previous_names = NULL;
5372 ndr->flags = _flags_save_string_array;
5374 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
5375 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
5377 uint32_t _flags_save_string = ndr->flags;
5378 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5379 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
5380 if (_ptr_manufacturer_name) {
5381 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
5382 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
5384 r->manufacturer_name = NULL;
5386 ndr->flags = _flags_save_string;
5389 uint32_t _flags_save_string = ndr->flags;
5390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5391 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
5392 if (_ptr_manufacturer_url) {
5393 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
5394 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
5396 r->manufacturer_url = NULL;
5398 ndr->flags = _flags_save_string;
5401 uint32_t _flags_save_string = ndr->flags;
5402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5403 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
5404 if (_ptr_hardware_id) {
5405 NDR_PULL_ALLOC(ndr, r->hardware_id);
5406 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
5408 r->hardware_id = NULL;
5410 ndr->flags = _flags_save_string;
5413 uint32_t _flags_save_string = ndr->flags;
5414 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5415 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
5416 if (_ptr_provider) {
5417 NDR_PULL_ALLOC(ndr, r->provider);
5418 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
5422 ndr->flags = _flags_save_string;
5425 if (ndr_flags & NDR_BUFFERS) {
5427 uint32_t _flags_save_string = ndr->flags;
5428 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5429 if (r->driver_name) {
5430 uint32_t _relative_save_offset;
5431 _relative_save_offset = ndr->offset;
5432 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
5433 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5434 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5435 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
5436 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5437 ndr->offset = _relative_save_offset;
5439 ndr->flags = _flags_save_string;
5442 uint32_t _flags_save_string = ndr->flags;
5443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5444 if (r->architecture) {
5445 uint32_t _relative_save_offset;
5446 _relative_save_offset = ndr->offset;
5447 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
5448 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5449 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5450 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
5451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5452 ndr->offset = _relative_save_offset;
5454 ndr->flags = _flags_save_string;
5457 uint32_t _flags_save_string = ndr->flags;
5458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5459 if (r->driver_path) {
5460 uint32_t _relative_save_offset;
5461 _relative_save_offset = ndr->offset;
5462 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
5463 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5464 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5465 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
5466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5467 ndr->offset = _relative_save_offset;
5469 ndr->flags = _flags_save_string;
5472 uint32_t _flags_save_string = ndr->flags;
5473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5475 uint32_t _relative_save_offset;
5476 _relative_save_offset = ndr->offset;
5477 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
5478 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5479 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5480 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
5481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5482 ndr->offset = _relative_save_offset;
5484 ndr->flags = _flags_save_string;
5487 uint32_t _flags_save_string = ndr->flags;
5488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5489 if (r->config_file) {
5490 uint32_t _relative_save_offset;
5491 _relative_save_offset = ndr->offset;
5492 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
5493 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5494 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5495 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
5496 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5497 ndr->offset = _relative_save_offset;
5499 ndr->flags = _flags_save_string;
5502 uint32_t _flags_save_string = ndr->flags;
5503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5505 uint32_t _relative_save_offset;
5506 _relative_save_offset = ndr->offset;
5507 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
5508 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5509 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5510 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
5511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5512 ndr->offset = _relative_save_offset;
5514 ndr->flags = _flags_save_string;
5517 uint32_t _flags_save_string_array = ndr->flags;
5518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5519 if (r->dependent_files) {
5520 uint32_t _relative_save_offset;
5521 _relative_save_offset = ndr->offset;
5522 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
5523 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
5524 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
5525 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
5526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
5527 ndr->offset = _relative_save_offset;
5529 ndr->flags = _flags_save_string_array;
5532 uint32_t _flags_save_string = ndr->flags;
5533 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5534 if (r->monitor_name) {
5535 uint32_t _relative_save_offset;
5536 _relative_save_offset = ndr->offset;
5537 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
5538 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5539 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5540 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
5541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
5542 ndr->offset = _relative_save_offset;
5544 ndr->flags = _flags_save_string;
5547 uint32_t _flags_save_string = ndr->flags;
5548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5549 if (r->default_datatype) {
5550 uint32_t _relative_save_offset;
5551 _relative_save_offset = ndr->offset;
5552 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
5553 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
5554 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
5555 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
5556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
5557 ndr->offset = _relative_save_offset;
5559 ndr->flags = _flags_save_string;
5562 uint32_t _flags_save_string_array = ndr->flags;
5563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5564 if (r->previous_names) {
5565 uint32_t _relative_save_offset;
5566 _relative_save_offset = ndr->offset;
5567 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
5568 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
5569 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
5570 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
5571 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
5572 ndr->offset = _relative_save_offset;
5574 ndr->flags = _flags_save_string_array;
5577 uint32_t _flags_save_string = ndr->flags;
5578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5579 if (r->manufacturer_name) {
5580 uint32_t _relative_save_offset;
5581 _relative_save_offset = ndr->offset;
5582 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
5583 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5584 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
5585 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
5586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
5587 ndr->offset = _relative_save_offset;
5589 ndr->flags = _flags_save_string;
5592 uint32_t _flags_save_string = ndr->flags;
5593 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5594 if (r->manufacturer_url) {
5595 uint32_t _relative_save_offset;
5596 _relative_save_offset = ndr->offset;
5597 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
5598 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
5599 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
5600 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
5601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
5602 ndr->offset = _relative_save_offset;
5604 ndr->flags = _flags_save_string;
5607 uint32_t _flags_save_string = ndr->flags;
5608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5609 if (r->hardware_id) {
5610 uint32_t _relative_save_offset;
5611 _relative_save_offset = ndr->offset;
5612 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
5613 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
5614 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
5615 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
5616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
5617 ndr->offset = _relative_save_offset;
5619 ndr->flags = _flags_save_string;
5622 uint32_t _flags_save_string = ndr->flags;
5623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5625 uint32_t _relative_save_offset;
5626 _relative_save_offset = ndr->offset;
5627 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
5628 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
5629 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
5630 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
5631 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
5632 ndr->offset = _relative_save_offset;
5634 ndr->flags = _flags_save_string;
5637 return NDR_ERR_SUCCESS;
5640 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
5642 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
5644 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
5645 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5647 if (r->driver_name) {
5648 ndr_print_string(ndr, "driver_name", r->driver_name);
5651 ndr_print_ptr(ndr, "architecture", r->architecture);
5653 if (r->architecture) {
5654 ndr_print_string(ndr, "architecture", r->architecture);
5657 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5659 if (r->driver_path) {
5660 ndr_print_string(ndr, "driver_path", r->driver_path);
5663 ndr_print_ptr(ndr, "data_file", r->data_file);
5666 ndr_print_string(ndr, "data_file", r->data_file);
5669 ndr_print_ptr(ndr, "config_file", r->config_file);
5671 if (r->config_file) {
5672 ndr_print_string(ndr, "config_file", r->config_file);
5675 ndr_print_ptr(ndr, "help_file", r->help_file);
5678 ndr_print_string(ndr, "help_file", r->help_file);
5681 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
5683 if (r->dependent_files) {
5684 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
5687 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
5689 if (r->monitor_name) {
5690 ndr_print_string(ndr, "monitor_name", r->monitor_name);
5693 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
5695 if (r->default_datatype) {
5696 ndr_print_string(ndr, "default_datatype", r->default_datatype);
5699 ndr_print_ptr(ndr, "previous_names", r->previous_names);
5701 if (r->previous_names) {
5702 ndr_print_string_array(ndr, "previous_names", r->previous_names);
5705 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
5706 ndr_print_hyper(ndr, "driver_version", r->driver_version);
5707 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
5709 if (r->manufacturer_name) {
5710 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
5713 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
5715 if (r->manufacturer_url) {
5716 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
5719 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
5721 if (r->hardware_id) {
5722 ndr_print_string(ndr, "hardware_id", r->hardware_id);
5725 ndr_print_ptr(ndr, "provider", r->provider);
5728 ndr_print_string(ndr, "provider", r->provider);
5734 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
5736 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
5737 if (ndr_flags & NDR_SCALARS) {
5738 int level = ndr_push_get_switch_value(ndr, r);
5741 NDR_CHECK(ndr_push_align(ndr, 4));
5742 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5743 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
5747 NDR_CHECK(ndr_push_align(ndr, 4));
5748 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5749 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
5753 NDR_CHECK(ndr_push_align(ndr, 4));
5754 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5755 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
5759 NDR_CHECK(ndr_push_align(ndr, 4));
5760 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5761 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
5765 NDR_CHECK(ndr_push_align(ndr, 4));
5766 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5767 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
5771 NDR_CHECK(ndr_push_align(ndr, 8));
5772 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5773 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
5781 if (ndr_flags & NDR_BUFFERS) {
5782 int level = ndr_push_get_switch_value(ndr, r);
5783 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
5786 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
5790 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
5794 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
5798 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
5802 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
5806 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
5814 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
5815 return NDR_ERR_SUCCESS;
5818 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
5820 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
5822 level = ndr_pull_get_switch_value(ndr, r);
5823 if (ndr_flags & NDR_SCALARS) {
5826 NDR_CHECK(ndr_pull_align(ndr, 4));
5827 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5828 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
5832 NDR_CHECK(ndr_pull_align(ndr, 4));
5833 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5834 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
5838 NDR_CHECK(ndr_pull_align(ndr, 4));
5839 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5840 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
5844 NDR_CHECK(ndr_pull_align(ndr, 4));
5845 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5846 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
5850 NDR_CHECK(ndr_pull_align(ndr, 4));
5851 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5852 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
5856 NDR_CHECK(ndr_pull_align(ndr, 8));
5857 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5858 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
5866 if (ndr_flags & NDR_BUFFERS) {
5867 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
5870 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
5874 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
5878 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
5882 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
5886 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
5890 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
5898 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
5899 return NDR_ERR_SUCCESS;
5902 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
5905 level = ndr_print_get_switch_value(ndr, r);
5906 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
5909 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
5913 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
5917 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
5921 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
5925 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
5929 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
5938 static enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
5940 if (ndr_flags & NDR_SCALARS) {
5941 NDR_CHECK(ndr_push_align(ndr, 4));
5943 uint32_t _flags_save_string = ndr->flags;
5944 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5945 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
5946 ndr->flags = _flags_save_string;
5949 if (ndr_flags & NDR_BUFFERS) {
5951 return NDR_ERR_SUCCESS;
5954 static enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
5956 if (ndr_flags & NDR_SCALARS) {
5957 NDR_CHECK(ndr_pull_align(ndr, 4));
5959 uint32_t _flags_save_string = ndr->flags;
5960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5961 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
5962 ndr->flags = _flags_save_string;
5965 if (ndr_flags & NDR_BUFFERS) {
5967 return NDR_ERR_SUCCESS;
5970 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
5972 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
5974 ndr_print_string(ndr, "directory_name", r->directory_name);
5978 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
5980 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
5981 if (ndr_flags & NDR_SCALARS) {
5982 int level = ndr_push_get_switch_value(ndr, r);
5985 NDR_CHECK(ndr_push_align(ndr, 4));
5986 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5987 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
5991 NDR_CHECK(ndr_push_align(ndr, 4));
5992 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5993 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
5998 if (ndr_flags & NDR_BUFFERS) {
5999 int level = ndr_push_get_switch_value(ndr, r);
6000 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
6010 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
6011 return NDR_ERR_SUCCESS;
6014 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
6016 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
6018 level = ndr_pull_get_switch_value(ndr, r);
6019 if (ndr_flags & NDR_SCALARS) {
6022 NDR_CHECK(ndr_pull_align(ndr, 4));
6023 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
6024 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
6028 NDR_CHECK(ndr_pull_align(ndr, 4));
6029 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
6030 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
6035 if (ndr_flags & NDR_BUFFERS) {
6036 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
6046 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
6047 return NDR_ERR_SUCCESS;
6050 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
6053 level = ndr_print_get_switch_value(ndr, r);
6054 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
6057 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
6061 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
6067 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
6069 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
6072 static enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
6074 if (ndr_flags & NDR_SCALARS) {
6075 NDR_CHECK(ndr_push_align(ndr, 4));
6077 uint32_t _flags_save_string = ndr->flags;
6078 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6079 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
6080 ndr->flags = _flags_save_string;
6083 if (ndr_flags & NDR_BUFFERS) {
6085 uint32_t _flags_save_string = ndr->flags;
6086 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6087 if (r->print_processor_name) {
6088 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
6089 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
6091 ndr->flags = _flags_save_string;
6094 return NDR_ERR_SUCCESS;
6097 static enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
6099 uint32_t _ptr_print_processor_name;
6100 TALLOC_CTX *_mem_save_print_processor_name_0;
6101 if (ndr_flags & NDR_SCALARS) {
6102 NDR_CHECK(ndr_pull_align(ndr, 4));
6104 uint32_t _flags_save_string = ndr->flags;
6105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
6107 if (_ptr_print_processor_name) {
6108 NDR_PULL_ALLOC(ndr, r->print_processor_name);
6109 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
6111 r->print_processor_name = NULL;
6113 ndr->flags = _flags_save_string;
6116 if (ndr_flags & NDR_BUFFERS) {
6118 uint32_t _flags_save_string = ndr->flags;
6119 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6120 if (r->print_processor_name) {
6121 uint32_t _relative_save_offset;
6122 _relative_save_offset = ndr->offset;
6123 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
6124 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6125 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
6126 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
6127 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
6128 ndr->offset = _relative_save_offset;
6130 ndr->flags = _flags_save_string;
6133 return NDR_ERR_SUCCESS;
6136 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
6138 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
6140 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
6142 if (r->print_processor_name) {
6143 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
6149 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
6151 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
6152 if (ndr_flags & NDR_SCALARS) {
6153 int level = ndr_push_get_switch_value(ndr, r);
6156 NDR_CHECK(ndr_push_align(ndr, 4));
6157 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
6158 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
6166 if (ndr_flags & NDR_BUFFERS) {
6167 int level = ndr_push_get_switch_value(ndr, r);
6168 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
6171 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
6179 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
6180 return NDR_ERR_SUCCESS;
6183 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
6185 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
6187 level = ndr_pull_get_switch_value(ndr, r);
6188 if (ndr_flags & NDR_SCALARS) {
6191 NDR_CHECK(ndr_pull_align(ndr, 4));
6192 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
6193 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
6201 if (ndr_flags & NDR_BUFFERS) {
6202 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
6205 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
6213 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
6214 return NDR_ERR_SUCCESS;
6217 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
6220 level = ndr_print_get_switch_value(ndr, r);
6221 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
6224 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
6233 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
6235 if (ndr_flags & NDR_SCALARS) {
6236 NDR_CHECK(ndr_push_align(ndr, 4));
6237 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
6238 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
6239 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6241 if (ndr_flags & NDR_BUFFERS) {
6242 if (r->document_name) {
6243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
6244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
6246 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6248 if (r->output_file) {
6249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
6250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
6252 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6258 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6261 return NDR_ERR_SUCCESS;
6264 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
6266 uint32_t _ptr_document_name;
6267 TALLOC_CTX *_mem_save_document_name_0;
6268 uint32_t _ptr_output_file;
6269 TALLOC_CTX *_mem_save_output_file_0;
6270 uint32_t _ptr_datatype;
6271 TALLOC_CTX *_mem_save_datatype_0;
6272 if (ndr_flags & NDR_SCALARS) {
6273 NDR_CHECK(ndr_pull_align(ndr, 4));
6274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
6275 if (_ptr_document_name) {
6276 NDR_PULL_ALLOC(ndr, r->document_name);
6278 r->document_name = NULL;
6280 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
6281 if (_ptr_output_file) {
6282 NDR_PULL_ALLOC(ndr, r->output_file);
6284 r->output_file = NULL;
6286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6287 if (_ptr_datatype) {
6288 NDR_PULL_ALLOC(ndr, r->datatype);
6293 if (ndr_flags & NDR_BUFFERS) {
6294 if (r->document_name) {
6295 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6296 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
6297 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
6298 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
6299 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
6300 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
6302 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
6303 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
6304 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
6306 if (r->output_file) {
6307 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6308 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
6309 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
6310 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
6311 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
6312 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->output_file), ndr_get_array_length(ndr, &r->output_file));
6314 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
6315 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
6316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
6319 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6320 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
6321 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
6322 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
6323 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
6324 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->datatype), ndr_get_array_length(ndr, &r->datatype));
6326 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
6327 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
6328 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
6331 return NDR_ERR_SUCCESS;
6334 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
6336 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
6338 ndr_print_ptr(ndr, "document_name", r->document_name);
6340 if (r->document_name) {
6341 ndr_print_string(ndr, "document_name", r->document_name);
6344 ndr_print_ptr(ndr, "output_file", r->output_file);
6346 if (r->output_file) {
6347 ndr_print_string(ndr, "output_file", r->output_file);
6350 ndr_print_ptr(ndr, "datatype", r->datatype);
6353 ndr_print_string(ndr, "datatype", r->datatype);
6359 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
6361 if (ndr_flags & NDR_SCALARS) {
6362 int level = ndr_push_get_switch_value(ndr, r);
6363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6366 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6380 if (ndr_flags & NDR_BUFFERS) {
6381 int level = ndr_push_get_switch_value(ndr, r);
6385 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6400 return NDR_ERR_SUCCESS;
6403 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
6407 TALLOC_CTX *_mem_save_info1_0;
6408 level = ndr_pull_get_switch_value(ndr, r);
6409 if (ndr_flags & NDR_SCALARS) {
6410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6411 if (_level != level) {
6412 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6416 uint32_t _ptr_info1;
6417 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6419 NDR_PULL_ALLOC(ndr, r->info1);
6436 if (ndr_flags & NDR_BUFFERS) {
6440 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6441 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6442 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6458 return NDR_ERR_SUCCESS;
6461 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
6464 level = ndr_print_get_switch_value(ndr, r);
6465 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
6468 ndr_print_ptr(ndr, "info1", r->info1);
6471 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
6488 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
6490 if (ndr_flags & NDR_SCALARS) {
6491 NDR_CHECK(ndr_push_align(ndr, 4));
6492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
6493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
6494 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
6495 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
6496 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
6498 uint32_t _flags_save_string = ndr->flags;
6499 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6501 struct ndr_push *_ndr_extra_string;
6502 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
6503 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
6504 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
6506 ndr->flags = _flags_save_string;
6509 if (ndr_flags & NDR_BUFFERS) {
6511 return NDR_ERR_SUCCESS;
6514 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
6516 if (ndr_flags & NDR_SCALARS) {
6517 NDR_CHECK(ndr_pull_align(ndr, 4));
6518 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
6519 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
6520 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
6521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
6522 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
6524 uint32_t _flags_save_string = ndr->flags;
6525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6527 struct ndr_pull *_ndr_extra_string;
6528 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
6529 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
6530 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
6532 ndr->flags = _flags_save_string;
6535 if (ndr_flags & NDR_BUFFERS) {
6537 return NDR_ERR_SUCCESS;
6540 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
6542 ndr_print_struct(ndr, name, "spoolss_OSVersion");
6544 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);
6545 ndr_print_uint32(ndr, "major", r->major);
6546 ndr_print_uint32(ndr, "minor", r->minor);
6547 ndr_print_uint32(ndr, "build", r->build);
6548 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
6549 ndr_print_string(ndr, "extra_string", r->extra_string);
6553 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
6555 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
6558 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
6560 if (ndr_flags & NDR_SCALARS) {
6561 NDR_CHECK(ndr_push_align(ndr, 4));
6562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
6563 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
6564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
6565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
6566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
6568 uint32_t _flags_save_string = ndr->flags;
6569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6571 struct ndr_push *_ndr_extra_string;
6572 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
6573 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
6574 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
6576 ndr->flags = _flags_save_string;
6578 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
6579 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
6581 if (ndr_flags & NDR_BUFFERS) {
6583 return NDR_ERR_SUCCESS;
6586 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
6588 if (ndr_flags & NDR_SCALARS) {
6589 NDR_CHECK(ndr_pull_align(ndr, 4));
6590 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
6591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
6592 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
6593 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
6594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
6596 uint32_t _flags_save_string = ndr->flags;
6597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6599 struct ndr_pull *_ndr_extra_string;
6600 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
6601 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
6602 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
6604 ndr->flags = _flags_save_string;
6606 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
6607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
6609 if (ndr_flags & NDR_BUFFERS) {
6611 return NDR_ERR_SUCCESS;
6614 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
6616 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
6618 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);
6619 ndr_print_uint32(ndr, "major", r->major);
6620 ndr_print_uint32(ndr, "minor", r->minor);
6621 ndr_print_uint32(ndr, "build", r->build);
6622 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
6623 ndr_print_string(ndr, "extra_string", r->extra_string);
6624 ndr_print_uint32(ndr, "unknown2", r->unknown2);
6625 ndr_print_uint32(ndr, "unknown3", r->unknown3);
6629 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
6631 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
6634 static enum ndr_err_code ndr_push_spoolss_PrinterDataType(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterDataType r)
6636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6637 return NDR_ERR_SUCCESS;
6640 static enum ndr_err_code ndr_pull_spoolss_PrinterDataType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterDataType *r)
6643 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6645 return NDR_ERR_SUCCESS;
6648 _PUBLIC_ void ndr_print_spoolss_PrinterDataType(struct ndr_print *ndr, const char *name, enum spoolss_PrinterDataType r)
6650 const char *val = NULL;
6653 case SPOOLSS_PRINTER_DATA_TYPE_NULL: val = "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
6654 case SPOOLSS_PRINTER_DATA_TYPE_STRING: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
6655 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: val = "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
6656 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: val = "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
6657 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
6659 ndr_print_enum(ndr, name, "ENUM", val, r);
6662 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
6664 if (ndr_flags & NDR_SCALARS) {
6665 int level = ndr_push_get_switch_value(ndr, r);
6667 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
6670 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
6672 uint32_t _flags_save_string = ndr->flags;
6673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6674 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
6675 ndr->flags = _flags_save_string;
6679 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
6681 uint32_t _flags_save_DATA_BLOB = ndr->flags;
6682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
6683 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
6684 ndr->flags = _flags_save_DATA_BLOB;
6688 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
6689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
6692 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
6694 uint32_t _flags_save_string_array = ndr->flags;
6695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6696 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
6697 ndr->flags = _flags_save_string_array;
6703 uint32_t _flags_save_DATA_BLOB = ndr->flags;
6704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
6705 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
6706 ndr->flags = _flags_save_DATA_BLOB;
6712 if (ndr_flags & NDR_BUFFERS) {
6713 int level = ndr_push_get_switch_value(ndr, r);
6715 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
6718 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
6721 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
6724 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
6727 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
6735 return NDR_ERR_SUCCESS;
6738 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
6741 level = ndr_pull_get_switch_value(ndr, r);
6742 if (ndr_flags & NDR_SCALARS) {
6744 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
6747 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
6749 uint32_t _flags_save_string = ndr->flags;
6750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6751 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
6752 ndr->flags = _flags_save_string;
6756 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
6758 uint32_t _flags_save_DATA_BLOB = ndr->flags;
6759 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
6760 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
6761 ndr->flags = _flags_save_DATA_BLOB;
6765 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
6766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
6769 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
6771 uint32_t _flags_save_string_array = ndr->flags;
6772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6773 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
6774 ndr->flags = _flags_save_string_array;
6780 uint32_t _flags_save_DATA_BLOB = ndr->flags;
6781 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
6782 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
6783 ndr->flags = _flags_save_DATA_BLOB;
6789 if (ndr_flags & NDR_BUFFERS) {
6791 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
6794 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
6797 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
6800 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
6803 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
6811 return NDR_ERR_SUCCESS;
6814 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
6817 level = ndr_print_get_switch_value(ndr, r);
6818 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
6820 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
6823 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
6824 ndr_print_string(ndr, "string", r->string);
6827 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
6828 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
6831 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
6832 ndr_print_uint32(ndr, "value", r->value);
6835 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
6836 ndr_print_string_array(ndr, "string_array", r->string_array);
6840 ndr_print_DATA_BLOB(ndr, "data", r->data);
6846 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
6848 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
6851 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
6853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6854 return NDR_ERR_SUCCESS;
6857 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
6860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6862 return NDR_ERR_SUCCESS;
6865 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
6867 const char *val = NULL;
6870 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
6871 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
6872 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
6874 ndr_print_enum(ndr, name, "ENUM", val, r);
6877 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
6879 if (ndr_flags & NDR_SCALARS) {
6880 NDR_CHECK(ndr_push_align(ndr, 4));
6881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
6882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
6884 if (ndr_flags & NDR_BUFFERS) {
6886 return NDR_ERR_SUCCESS;
6889 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
6891 if (ndr_flags & NDR_SCALARS) {
6892 NDR_CHECK(ndr_pull_align(ndr, 4));
6893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
6894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
6896 if (ndr_flags & NDR_BUFFERS) {
6898 return NDR_ERR_SUCCESS;
6901 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
6903 ndr_print_struct(ndr, name, "spoolss_FormSize");
6905 ndr_print_uint32(ndr, "width", r->width);
6906 ndr_print_uint32(ndr, "height", r->height);
6910 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
6912 if (ndr_flags & NDR_SCALARS) {
6913 NDR_CHECK(ndr_push_align(ndr, 4));
6914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
6915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
6916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
6917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
6919 if (ndr_flags & NDR_BUFFERS) {
6921 return NDR_ERR_SUCCESS;
6924 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
6926 if (ndr_flags & NDR_SCALARS) {
6927 NDR_CHECK(ndr_pull_align(ndr, 4));
6928 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
6929 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
6930 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
6931 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
6933 if (ndr_flags & NDR_BUFFERS) {
6935 return NDR_ERR_SUCCESS;
6938 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
6940 ndr_print_struct(ndr, name, "spoolss_FormArea");
6942 ndr_print_uint32(ndr, "left", r->left);
6943 ndr_print_uint32(ndr, "top", r->top);
6944 ndr_print_uint32(ndr, "right", r->right);
6945 ndr_print_uint32(ndr, "bottom", r->bottom);
6949 static enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
6951 if (ndr_flags & NDR_SCALARS) {
6952 NDR_CHECK(ndr_push_align(ndr, 4));
6953 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
6955 uint32_t _flags_save_string = ndr->flags;
6956 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6957 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
6958 ndr->flags = _flags_save_string;
6960 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
6961 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
6963 if (ndr_flags & NDR_BUFFERS) {
6965 uint32_t _flags_save_string = ndr->flags;
6966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6968 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
6969 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
6971 ndr->flags = _flags_save_string;
6974 return NDR_ERR_SUCCESS;
6977 static enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
6979 uint32_t _ptr_form_name;
6980 TALLOC_CTX *_mem_save_form_name_0;
6981 if (ndr_flags & NDR_SCALARS) {
6982 NDR_CHECK(ndr_pull_align(ndr, 4));
6983 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
6985 uint32_t _flags_save_string = ndr->flags;
6986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6987 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
6988 if (_ptr_form_name) {
6989 NDR_PULL_ALLOC(ndr, r->form_name);
6990 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
6992 r->form_name = NULL;
6994 ndr->flags = _flags_save_string;
6996 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
6997 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
6999 if (ndr_flags & NDR_BUFFERS) {
7001 uint32_t _flags_save_string = ndr->flags;
7002 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7004 uint32_t _relative_save_offset;
7005 _relative_save_offset = ndr->offset;
7006 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
7007 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7008 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
7009 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
7010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
7011 ndr->offset = _relative_save_offset;
7013 ndr->flags = _flags_save_string;
7016 return NDR_ERR_SUCCESS;
7019 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
7021 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
7023 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
7024 ndr_print_ptr(ndr, "form_name", r->form_name);
7027 ndr_print_string(ndr, "form_name", r->form_name);
7030 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
7031 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
7035 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
7037 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
7038 if (ndr_flags & NDR_SCALARS) {
7039 int level = ndr_push_get_switch_value(ndr, r);
7042 NDR_CHECK(ndr_push_align(ndr, 4));
7043 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
7044 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
7052 if (ndr_flags & NDR_BUFFERS) {
7053 int level = ndr_push_get_switch_value(ndr, r);
7054 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
7057 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
7065 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
7066 return NDR_ERR_SUCCESS;
7069 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
7071 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
7073 level = ndr_pull_get_switch_value(ndr, r);
7074 if (ndr_flags & NDR_SCALARS) {
7077 NDR_CHECK(ndr_pull_align(ndr, 4));
7078 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
7079 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
7087 if (ndr_flags & NDR_BUFFERS) {
7088 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
7091 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
7099 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
7100 return NDR_ERR_SUCCESS;
7103 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
7106 level = ndr_print_get_switch_value(ndr, r);
7107 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
7110 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
7119 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
7121 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
7124 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
7126 if (ndr_flags & NDR_SCALARS) {
7127 NDR_CHECK(ndr_push_align(ndr, 4));
7128 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
7129 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
7130 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
7131 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
7133 if (ndr_flags & NDR_BUFFERS) {
7135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
7136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
7138 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7141 return NDR_ERR_SUCCESS;
7144 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
7146 uint32_t _ptr_form_name;
7147 TALLOC_CTX *_mem_save_form_name_0;
7148 if (ndr_flags & NDR_SCALARS) {
7149 NDR_CHECK(ndr_pull_align(ndr, 4));
7150 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
7151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
7152 if (_ptr_form_name) {
7153 NDR_PULL_ALLOC(ndr, r->form_name);
7155 r->form_name = NULL;
7157 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
7158 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
7160 if (ndr_flags & NDR_BUFFERS) {
7162 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7163 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
7164 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
7165 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
7166 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
7167 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->form_name), ndr_get_array_length(ndr, &r->form_name));
7169 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
7170 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
7171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
7174 return NDR_ERR_SUCCESS;
7177 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
7179 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
7181 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
7182 ndr_print_ptr(ndr, "form_name", r->form_name);
7185 ndr_print_string(ndr, "form_name", r->form_name);
7188 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
7189 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
7193 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
7195 if (ndr_flags & NDR_SCALARS) {
7196 int level = ndr_push_get_switch_value(ndr, r);
7197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7200 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7204 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7207 if (ndr_flags & NDR_BUFFERS) {
7208 int level = ndr_push_get_switch_value(ndr, r);
7212 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7217 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7220 return NDR_ERR_SUCCESS;
7223 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
7227 TALLOC_CTX *_mem_save_info1_0;
7228 level = ndr_pull_get_switch_value(ndr, r);
7229 if (ndr_flags & NDR_SCALARS) {
7230 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7231 if (_level != level) {
7232 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7236 uint32_t _ptr_info1;
7237 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7239 NDR_PULL_ALLOC(ndr, r->info1);
7246 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7249 if (ndr_flags & NDR_BUFFERS) {
7253 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7254 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7255 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7261 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7264 return NDR_ERR_SUCCESS;
7267 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
7270 level = ndr_print_get_switch_value(ndr, r);
7271 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
7274 ndr_print_ptr(ndr, "info1", r->info1);
7277 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
7283 ndr_print_bad_level(ndr, name, level);
7287 static enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
7289 if (ndr_flags & NDR_SCALARS) {
7290 NDR_CHECK(ndr_push_align(ndr, 4));
7292 uint32_t _flags_save_string = ndr->flags;
7293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7294 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
7295 ndr->flags = _flags_save_string;
7298 if (ndr_flags & NDR_BUFFERS) {
7300 uint32_t _flags_save_string = ndr->flags;
7301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7303 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
7304 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
7306 ndr->flags = _flags_save_string;
7309 return NDR_ERR_SUCCESS;
7312 static enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
7314 uint32_t _ptr_port_name;
7315 TALLOC_CTX *_mem_save_port_name_0;
7316 if (ndr_flags & NDR_SCALARS) {
7317 NDR_CHECK(ndr_pull_align(ndr, 4));
7319 uint32_t _flags_save_string = ndr->flags;
7320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7321 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
7322 if (_ptr_port_name) {
7323 NDR_PULL_ALLOC(ndr, r->port_name);
7324 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
7326 r->port_name = NULL;
7328 ndr->flags = _flags_save_string;
7331 if (ndr_flags & NDR_BUFFERS) {
7333 uint32_t _flags_save_string = ndr->flags;
7334 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7336 uint32_t _relative_save_offset;
7337 _relative_save_offset = ndr->offset;
7338 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
7339 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7340 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
7341 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
7342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
7343 ndr->offset = _relative_save_offset;
7345 ndr->flags = _flags_save_string;
7348 return NDR_ERR_SUCCESS;
7351 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
7353 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
7355 ndr_print_ptr(ndr, "port_name", r->port_name);
7358 ndr_print_string(ndr, "port_name", r->port_name);
7364 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7367 return NDR_ERR_SUCCESS;
7370 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7373 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7375 return NDR_ERR_SUCCESS;
7378 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
7380 ndr_print_uint32(ndr, name, r);
7382 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
7383 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
7384 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
7385 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
7389 static enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
7391 if (ndr_flags & NDR_SCALARS) {
7392 NDR_CHECK(ndr_push_align(ndr, 4));
7394 uint32_t _flags_save_string = ndr->flags;
7395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7396 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
7397 ndr->flags = _flags_save_string;
7400 uint32_t _flags_save_string = ndr->flags;
7401 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7402 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
7403 ndr->flags = _flags_save_string;
7406 uint32_t _flags_save_string = ndr->flags;
7407 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7408 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
7409 ndr->flags = _flags_save_string;
7411 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
7412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
7414 if (ndr_flags & NDR_BUFFERS) {
7416 uint32_t _flags_save_string = ndr->flags;
7417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7419 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
7420 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
7422 ndr->flags = _flags_save_string;
7425 uint32_t _flags_save_string = ndr->flags;
7426 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7427 if (r->monitor_name) {
7428 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
7429 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
7431 ndr->flags = _flags_save_string;
7434 uint32_t _flags_save_string = ndr->flags;
7435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7436 if (r->description) {
7437 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
7438 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
7440 ndr->flags = _flags_save_string;
7443 return NDR_ERR_SUCCESS;
7446 static enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
7448 uint32_t _ptr_port_name;
7449 TALLOC_CTX *_mem_save_port_name_0;
7450 uint32_t _ptr_monitor_name;
7451 TALLOC_CTX *_mem_save_monitor_name_0;
7452 uint32_t _ptr_description;
7453 TALLOC_CTX *_mem_save_description_0;
7454 if (ndr_flags & NDR_SCALARS) {
7455 NDR_CHECK(ndr_pull_align(ndr, 4));
7457 uint32_t _flags_save_string = ndr->flags;
7458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7459 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
7460 if (_ptr_port_name) {
7461 NDR_PULL_ALLOC(ndr, r->port_name);
7462 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
7464 r->port_name = NULL;
7466 ndr->flags = _flags_save_string;
7469 uint32_t _flags_save_string = ndr->flags;
7470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7471 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7472 if (_ptr_monitor_name) {
7473 NDR_PULL_ALLOC(ndr, r->monitor_name);
7474 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
7476 r->monitor_name = NULL;
7478 ndr->flags = _flags_save_string;
7481 uint32_t _flags_save_string = ndr->flags;
7482 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7483 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
7484 if (_ptr_description) {
7485 NDR_PULL_ALLOC(ndr, r->description);
7486 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
7488 r->description = NULL;
7490 ndr->flags = _flags_save_string;
7492 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
7493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
7495 if (ndr_flags & NDR_BUFFERS) {
7497 uint32_t _flags_save_string = ndr->flags;
7498 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7500 uint32_t _relative_save_offset;
7501 _relative_save_offset = ndr->offset;
7502 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
7503 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7504 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
7505 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
7506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
7507 ndr->offset = _relative_save_offset;
7509 ndr->flags = _flags_save_string;
7512 uint32_t _flags_save_string = ndr->flags;
7513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7514 if (r->monitor_name) {
7515 uint32_t _relative_save_offset;
7516 _relative_save_offset = ndr->offset;
7517 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
7518 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7519 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7520 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
7521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7522 ndr->offset = _relative_save_offset;
7524 ndr->flags = _flags_save_string;
7527 uint32_t _flags_save_string = ndr->flags;
7528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7529 if (r->description) {
7530 uint32_t _relative_save_offset;
7531 _relative_save_offset = ndr->offset;
7532 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
7533 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
7534 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
7535 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
7536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
7537 ndr->offset = _relative_save_offset;
7539 ndr->flags = _flags_save_string;
7542 return NDR_ERR_SUCCESS;
7545 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
7547 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
7549 ndr_print_ptr(ndr, "port_name", r->port_name);
7552 ndr_print_string(ndr, "port_name", r->port_name);
7555 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7557 if (r->monitor_name) {
7558 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7561 ndr_print_ptr(ndr, "description", r->description);
7563 if (r->description) {
7564 ndr_print_string(ndr, "description", r->description);
7567 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
7568 ndr_print_uint32(ndr, "reserved", r->reserved);
7572 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
7574 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
7575 if (ndr_flags & NDR_SCALARS) {
7576 int level = ndr_push_get_switch_value(ndr, r);
7579 NDR_CHECK(ndr_push_align(ndr, 4));
7580 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
7581 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
7585 NDR_CHECK(ndr_push_align(ndr, 4));
7586 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
7587 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
7598 if (ndr_flags & NDR_BUFFERS) {
7599 int level = ndr_push_get_switch_value(ndr, r);
7600 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
7603 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
7607 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
7618 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
7619 return NDR_ERR_SUCCESS;
7622 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
7624 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
7626 level = ndr_pull_get_switch_value(ndr, r);
7627 if (ndr_flags & NDR_SCALARS) {
7630 NDR_CHECK(ndr_pull_align(ndr, 4));
7631 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
7632 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
7636 NDR_CHECK(ndr_pull_align(ndr, 4));
7637 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
7638 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
7649 if (ndr_flags & NDR_BUFFERS) {
7650 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
7653 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
7657 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
7668 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
7669 return NDR_ERR_SUCCESS;
7672 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
7675 level = ndr_print_get_switch_value(ndr, r);
7676 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
7679 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
7683 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
7695 static enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
7697 if (ndr_flags & NDR_SCALARS) {
7698 NDR_CHECK(ndr_push_align(ndr, 4));
7700 uint32_t _flags_save_string = ndr->flags;
7701 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7702 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
7703 ndr->flags = _flags_save_string;
7706 if (ndr_flags & NDR_BUFFERS) {
7708 uint32_t _flags_save_string = ndr->flags;
7709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7710 if (r->monitor_name) {
7711 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
7712 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
7714 ndr->flags = _flags_save_string;
7717 return NDR_ERR_SUCCESS;
7720 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
7722 uint32_t _ptr_monitor_name;
7723 TALLOC_CTX *_mem_save_monitor_name_0;
7724 if (ndr_flags & NDR_SCALARS) {
7725 NDR_CHECK(ndr_pull_align(ndr, 4));
7727 uint32_t _flags_save_string = ndr->flags;
7728 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7729 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7730 if (_ptr_monitor_name) {
7731 NDR_PULL_ALLOC(ndr, r->monitor_name);
7732 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
7734 r->monitor_name = NULL;
7736 ndr->flags = _flags_save_string;
7739 if (ndr_flags & NDR_BUFFERS) {
7741 uint32_t _flags_save_string = ndr->flags;
7742 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7743 if (r->monitor_name) {
7744 uint32_t _relative_save_offset;
7745 _relative_save_offset = ndr->offset;
7746 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
7747 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7748 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7749 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
7750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7751 ndr->offset = _relative_save_offset;
7753 ndr->flags = _flags_save_string;
7756 return NDR_ERR_SUCCESS;
7759 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
7761 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
7763 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7765 if (r->monitor_name) {
7766 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7772 static enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
7774 if (ndr_flags & NDR_SCALARS) {
7775 NDR_CHECK(ndr_push_align(ndr, 4));
7777 uint32_t _flags_save_string = ndr->flags;
7778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7779 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
7780 ndr->flags = _flags_save_string;
7783 uint32_t _flags_save_string = ndr->flags;
7784 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7785 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
7786 ndr->flags = _flags_save_string;
7789 uint32_t _flags_save_string = ndr->flags;
7790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7791 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
7792 ndr->flags = _flags_save_string;
7795 if (ndr_flags & NDR_BUFFERS) {
7797 uint32_t _flags_save_string = ndr->flags;
7798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7799 if (r->monitor_name) {
7800 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
7801 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
7803 ndr->flags = _flags_save_string;
7806 uint32_t _flags_save_string = ndr->flags;
7807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7808 if (r->environment) {
7809 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
7810 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
7812 ndr->flags = _flags_save_string;
7815 uint32_t _flags_save_string = ndr->flags;
7816 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7818 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
7819 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
7821 ndr->flags = _flags_save_string;
7824 return NDR_ERR_SUCCESS;
7827 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
7829 uint32_t _ptr_monitor_name;
7830 TALLOC_CTX *_mem_save_monitor_name_0;
7831 uint32_t _ptr_environment;
7832 TALLOC_CTX *_mem_save_environment_0;
7833 uint32_t _ptr_dll_name;
7834 TALLOC_CTX *_mem_save_dll_name_0;
7835 if (ndr_flags & NDR_SCALARS) {
7836 NDR_CHECK(ndr_pull_align(ndr, 4));
7838 uint32_t _flags_save_string = ndr->flags;
7839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7841 if (_ptr_monitor_name) {
7842 NDR_PULL_ALLOC(ndr, r->monitor_name);
7843 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
7845 r->monitor_name = NULL;
7847 ndr->flags = _flags_save_string;
7850 uint32_t _flags_save_string = ndr->flags;
7851 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7852 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
7853 if (_ptr_environment) {
7854 NDR_PULL_ALLOC(ndr, r->environment);
7855 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
7857 r->environment = NULL;
7859 ndr->flags = _flags_save_string;
7862 uint32_t _flags_save_string = ndr->flags;
7863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
7865 if (_ptr_dll_name) {
7866 NDR_PULL_ALLOC(ndr, r->dll_name);
7867 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
7871 ndr->flags = _flags_save_string;
7874 if (ndr_flags & NDR_BUFFERS) {
7876 uint32_t _flags_save_string = ndr->flags;
7877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7878 if (r->monitor_name) {
7879 uint32_t _relative_save_offset;
7880 _relative_save_offset = ndr->offset;
7881 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
7882 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7883 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7884 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
7885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7886 ndr->offset = _relative_save_offset;
7888 ndr->flags = _flags_save_string;
7891 uint32_t _flags_save_string = ndr->flags;
7892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7893 if (r->environment) {
7894 uint32_t _relative_save_offset;
7895 _relative_save_offset = ndr->offset;
7896 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
7897 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
7898 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
7899 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
7900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
7901 ndr->offset = _relative_save_offset;
7903 ndr->flags = _flags_save_string;
7906 uint32_t _flags_save_string = ndr->flags;
7907 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7909 uint32_t _relative_save_offset;
7910 _relative_save_offset = ndr->offset;
7911 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
7912 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7913 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
7914 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
7915 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
7916 ndr->offset = _relative_save_offset;
7918 ndr->flags = _flags_save_string;
7921 return NDR_ERR_SUCCESS;
7924 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
7926 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
7928 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7930 if (r->monitor_name) {
7931 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7934 ndr_print_ptr(ndr, "environment", r->environment);
7936 if (r->environment) {
7937 ndr_print_string(ndr, "environment", r->environment);
7940 ndr_print_ptr(ndr, "dll_name", r->dll_name);
7943 ndr_print_string(ndr, "dll_name", r->dll_name);
7949 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
7951 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
7952 if (ndr_flags & NDR_SCALARS) {
7953 int level = ndr_push_get_switch_value(ndr, r);
7956 NDR_CHECK(ndr_push_align(ndr, 4));
7957 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
7958 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
7962 NDR_CHECK(ndr_push_align(ndr, 4));
7963 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
7964 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
7972 if (ndr_flags & NDR_BUFFERS) {
7973 int level = ndr_push_get_switch_value(ndr, r);
7974 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
7977 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
7981 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
7989 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
7990 return NDR_ERR_SUCCESS;
7993 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
7995 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
7997 level = ndr_pull_get_switch_value(ndr, r);
7998 if (ndr_flags & NDR_SCALARS) {
8001 NDR_CHECK(ndr_pull_align(ndr, 4));
8002 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
8003 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
8007 NDR_CHECK(ndr_pull_align(ndr, 4));
8008 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
8009 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
8017 if (ndr_flags & NDR_BUFFERS) {
8018 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
8021 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
8025 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
8033 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
8034 return NDR_ERR_SUCCESS;
8037 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
8040 level = ndr_print_get_switch_value(ndr, r);
8041 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
8044 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
8048 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
8057 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
8059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8060 return NDR_ERR_SUCCESS;
8063 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
8066 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8068 return NDR_ERR_SUCCESS;
8071 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
8073 ndr_print_uint32(ndr, name, r);
8075 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
8076 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
8077 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
8078 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
8079 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
8080 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
8081 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
8082 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
8083 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
8084 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
8085 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
8086 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
8087 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
8088 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
8089 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
8090 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
8091 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
8092 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
8093 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
8094 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
8098 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
8100 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
8101 return NDR_ERR_SUCCESS;
8104 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
8107 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
8109 return NDR_ERR_SUCCESS;
8112 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
8114 const char *val = NULL;
8117 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
8118 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
8119 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
8120 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
8121 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
8122 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
8123 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
8124 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
8125 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
8126 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
8127 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
8128 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
8129 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
8130 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
8131 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
8132 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
8133 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
8134 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
8135 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
8136 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
8137 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
8138 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
8139 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
8140 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
8141 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
8142 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
8144 ndr_print_enum(ndr, name, "ENUM", val, r);
8147 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
8149 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
8150 return NDR_ERR_SUCCESS;
8153 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
8156 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
8158 return NDR_ERR_SUCCESS;
8161 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
8163 const char *val = NULL;
8166 case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
8167 case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
8169 ndr_print_enum(ndr, name, "ENUM", val, r);
8172 static enum ndr_err_code ndr_push_spoolss_NotifyOptionsArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionsArray *r)
8174 uint32_t cntr_fields_1;
8175 if (ndr_flags & NDR_SCALARS) {
8176 NDR_CHECK(ndr_push_align(ndr, 4));
8177 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
8178 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
8179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
8180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
8181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8182 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
8184 if (ndr_flags & NDR_BUFFERS) {
8186 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8187 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
8188 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
8192 return NDR_ERR_SUCCESS;
8195 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionsArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionsArray *r)
8197 uint32_t _ptr_fields;
8198 uint32_t cntr_fields_1;
8199 TALLOC_CTX *_mem_save_fields_0;
8200 TALLOC_CTX *_mem_save_fields_1;
8201 if (ndr_flags & NDR_SCALARS) {
8202 NDR_CHECK(ndr_pull_align(ndr, 4));
8203 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
8204 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
8205 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
8206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
8207 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8208 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
8210 NDR_PULL_ALLOC(ndr, r->fields);
8215 if (ndr_flags & NDR_BUFFERS) {
8217 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
8218 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
8219 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
8220 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
8221 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
8222 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
8223 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
8224 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
8226 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
8227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
8230 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
8233 return NDR_ERR_SUCCESS;
8236 _PUBLIC_ void ndr_print_spoolss_NotifyOptionsArray(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionsArray *r)
8238 uint32_t cntr_fields_1;
8239 ndr_print_struct(ndr, name, "spoolss_NotifyOptionsArray");
8241 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
8242 ndr_print_uint16(ndr, "u1", r->u1);
8243 ndr_print_uint32(ndr, "u2", r->u2);
8244 ndr_print_uint32(ndr, "u3", r->u3);
8245 ndr_print_uint32(ndr, "count", r->count);
8246 ndr_print_ptr(ndr, "fields", r->fields);
8249 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
8251 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
8253 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
8254 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
8264 static enum ndr_err_code ndr_push_spoolss_NotifyOptionsContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionsContainer *r)
8266 uint32_t cntr_options_1;
8267 if (ndr_flags & NDR_SCALARS) {
8268 NDR_CHECK(ndr_push_align(ndr, 4));
8269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
8270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
8271 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8272 NDR_CHECK(ndr_push_unique_ptr(ndr, r->options));
8274 if (ndr_flags & NDR_BUFFERS) {
8276 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8277 for (cntr_options_1 = 0; cntr_options_1 < r->count; cntr_options_1++) {
8278 NDR_CHECK(ndr_push_spoolss_NotifyOptionsArray(ndr, NDR_SCALARS, &r->options[cntr_options_1]));
8280 for (cntr_options_1 = 0; cntr_options_1 < r->count; cntr_options_1++) {
8281 NDR_CHECK(ndr_push_spoolss_NotifyOptionsArray(ndr, NDR_BUFFERS, &r->options[cntr_options_1]));
8285 return NDR_ERR_SUCCESS;
8288 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionsContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionsContainer *r)
8290 uint32_t _ptr_options;
8291 uint32_t cntr_options_1;
8292 TALLOC_CTX *_mem_save_options_0;
8293 TALLOC_CTX *_mem_save_options_1;
8294 if (ndr_flags & NDR_SCALARS) {
8295 NDR_CHECK(ndr_pull_align(ndr, 4));
8296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
8297 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
8298 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8299 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
8301 NDR_PULL_ALLOC(ndr, r->options);
8306 if (ndr_flags & NDR_BUFFERS) {
8308 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
8309 NDR_PULL_SET_MEM_CTX(ndr, r->options, 0);
8310 NDR_CHECK(ndr_pull_array_size(ndr, &r->options));
8311 NDR_PULL_ALLOC_N(ndr, r->options, ndr_get_array_size(ndr, &r->options));
8312 _mem_save_options_1 = NDR_PULL_GET_MEM_CTX(ndr);
8313 NDR_PULL_SET_MEM_CTX(ndr, r->options, 0);
8314 for (cntr_options_1 = 0; cntr_options_1 < r->count; cntr_options_1++) {
8315 NDR_CHECK(ndr_pull_spoolss_NotifyOptionsArray(ndr, NDR_SCALARS, &r->options[cntr_options_1]));
8317 for (cntr_options_1 = 0; cntr_options_1 < r->count; cntr_options_1++) {
8318 NDR_CHECK(ndr_pull_spoolss_NotifyOptionsArray(ndr, NDR_BUFFERS, &r->options[cntr_options_1]));
8320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_1, 0);
8321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
8324 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->options, r->count));
8327 return NDR_ERR_SUCCESS;
8330 _PUBLIC_ void ndr_print_spoolss_NotifyOptionsContainer(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionsContainer *r)
8332 uint32_t cntr_options_1;
8333 ndr_print_struct(ndr, name, "spoolss_NotifyOptionsContainer");
8335 ndr_print_uint32(ndr, "version", r->version);
8336 ndr_print_uint32(ndr, "flags", r->flags);
8337 ndr_print_uint32(ndr, "count", r->count);
8338 ndr_print_ptr(ndr, "options", r->options);
8341 ndr->print(ndr, "%s: ARRAY(%d)", "options", (int)r->count);
8343 for (cntr_options_1=0;cntr_options_1<r->count;cntr_options_1++) {
8345 if (asprintf(&idx_1, "[%d]", cntr_options_1) != -1) {
8346 ndr_print_spoolss_NotifyOptionsArray(ndr, "options", &r->options[cntr_options_1]);
8356 static enum ndr_err_code ndr_push_spoolss_NotifyUTF16String(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyUTF16String *r)
8358 if (ndr_flags & NDR_SCALARS) {
8359 NDR_CHECK(ndr_push_align(ndr, 4));
8360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8361 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
8363 if (ndr_flags & NDR_BUFFERS) {
8365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
8366 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
8369 return NDR_ERR_SUCCESS;
8372 static enum ndr_err_code ndr_pull_spoolss_NotifyUTF16String(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyUTF16String *r)
8374 uint32_t _ptr_string;
8375 TALLOC_CTX *_mem_save_string_0;
8376 if (ndr_flags & NDR_SCALARS) {
8377 NDR_CHECK(ndr_pull_align(ndr, 4));
8378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
8379 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
8381 NDR_PULL_ALLOC(ndr, r->string);
8386 if (ndr_flags & NDR_BUFFERS) {
8388 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
8389 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
8390 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
8391 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
8392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
8395 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
8398 return NDR_ERR_SUCCESS;
8401 _PUBLIC_ void ndr_print_spoolss_NotifyUTF16String(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyUTF16String *r)
8403 ndr_print_struct(ndr, name, "spoolss_NotifyUTF16String");
8405 ndr_print_uint32(ndr, "size", r->size);
8406 ndr_print_ptr(ndr, "string", r->string);
8409 ndr_print_string(ndr, "string", r->string);
8415 static enum ndr_err_code ndr_push_spoolss_NotifyDOSString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyDOSString *r)
8417 if (ndr_flags & NDR_SCALARS) {
8418 NDR_CHECK(ndr_push_align(ndr, 4));
8419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8420 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
8422 if (ndr_flags & NDR_BUFFERS) {
8424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8425 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size, sizeof(uint8_t), CH_DOS));
8428 return NDR_ERR_SUCCESS;
8431 static enum ndr_err_code ndr_pull_spoolss_NotifyDOSString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyDOSString *r)
8433 uint32_t _ptr_string;
8434 TALLOC_CTX *_mem_save_string_0;
8435 if (ndr_flags & NDR_SCALARS) {
8436 NDR_CHECK(ndr_pull_align(ndr, 4));
8437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
8438 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
8440 NDR_PULL_ALLOC(ndr, r->string);
8445 if (ndr_flags & NDR_BUFFERS) {
8447 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
8448 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
8449 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
8450 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint8_t), CH_DOS));
8451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
8454 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size));
8457 return NDR_ERR_SUCCESS;
8460 _PUBLIC_ void ndr_print_spoolss_NotifyDOSString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyDOSString *r)
8462 ndr_print_struct(ndr, name, "spoolss_NotifyDOSString");
8464 ndr_print_uint32(ndr, "size", r->size);
8465 ndr_print_ptr(ndr, "string", r->string);
8468 ndr_print_string(ndr, "string", r->string);
8474 static enum ndr_err_code ndr_push_spoolss_NotifyBlobData(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyBlobData *r)
8476 uint32_t cntr_data_0;
8477 if (ndr_flags & NDR_SCALARS) {
8478 NDR_CHECK(ndr_push_align(ndr, 2));
8479 for (cntr_data_0 = 0; cntr_data_0 < 8; cntr_data_0++) {
8480 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_0]));
8483 if (ndr_flags & NDR_BUFFERS) {
8485 return NDR_ERR_SUCCESS;
8488 static enum ndr_err_code ndr_pull_spoolss_NotifyBlobData(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyBlobData *r)
8490 uint32_t cntr_data_0;
8491 if (ndr_flags & NDR_SCALARS) {
8492 NDR_CHECK(ndr_pull_align(ndr, 2));
8493 for (cntr_data_0 = 0; cntr_data_0 < 8; cntr_data_0++) {
8494 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_0]));
8497 if (ndr_flags & NDR_BUFFERS) {
8499 return NDR_ERR_SUCCESS;
8502 _PUBLIC_ void ndr_print_spoolss_NotifyBlobData(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyBlobData *r)
8504 uint32_t cntr_data_0;
8505 ndr_print_struct(ndr, name, "spoolss_NotifyBlobData");
8507 ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)8);
8509 for (cntr_data_0=0;cntr_data_0<8;cntr_data_0++) {
8511 if (asprintf(&idx_0, "[%d]", cntr_data_0) != -1) {
8512 ndr_print_uint16(ndr, "data", r->data[cntr_data_0]);
8520 static enum ndr_err_code ndr_push_spoolss_NotifyBlob(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyBlob *r)
8522 if (ndr_flags & NDR_SCALARS) {
8523 NDR_CHECK(ndr_push_align(ndr, 4));
8524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
8525 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
8527 if (ndr_flags & NDR_BUFFERS) {
8529 NDR_CHECK(ndr_push_spoolss_NotifyBlobData(ndr, NDR_SCALARS, r->data));
8532 return NDR_ERR_SUCCESS;
8535 static enum ndr_err_code ndr_pull_spoolss_NotifyBlob(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyBlob *r)
8538 TALLOC_CTX *_mem_save_data_0;
8539 if (ndr_flags & NDR_SCALARS) {
8540 NDR_CHECK(ndr_pull_align(ndr, 4));
8541 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
8542 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
8544 NDR_PULL_ALLOC(ndr, r->data);
8549 if (ndr_flags & NDR_BUFFERS) {
8551 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
8552 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
8553 NDR_CHECK(ndr_pull_spoolss_NotifyBlobData(ndr, NDR_SCALARS, r->data));
8554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
8557 return NDR_ERR_SUCCESS;
8560 _PUBLIC_ void ndr_print_spoolss_NotifyBlob(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyBlob *r)
8562 ndr_print_struct(ndr, name, "spoolss_NotifyBlob");
8564 ndr_print_uint32(ndr, "len", r->len);
8565 ndr_print_ptr(ndr, "data", r->data);
8568 ndr_print_spoolss_NotifyBlobData(ndr, "data", r->data);
8574 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
8576 if (ndr_flags & NDR_SCALARS) {
8577 int level = ndr_push_get_switch_value(ndr, r);
8578 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
8581 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->integer));
8585 NDR_CHECK(ndr_push_spoolss_NotifyUTF16String(ndr, NDR_SCALARS, &r->utf16_string));
8589 NDR_CHECK(ndr_push_spoolss_NotifyDOSString(ndr, NDR_SCALARS, &r->ascii_string));
8593 NDR_CHECK(ndr_push_spoolss_NotifyBlob(ndr, NDR_SCALARS, &r->blob));
8597 NDR_CHECK(ndr_push_spoolss_NotifyDOSString(ndr, NDR_SCALARS, &r->ascii_string));
8601 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8604 if (ndr_flags & NDR_BUFFERS) {
8605 int level = ndr_push_get_switch_value(ndr, r);
8611 NDR_CHECK(ndr_push_spoolss_NotifyUTF16String(ndr, NDR_BUFFERS, &r->utf16_string));
8615 NDR_CHECK(ndr_push_spoolss_NotifyDOSString(ndr, NDR_BUFFERS, &r->ascii_string));
8619 NDR_CHECK(ndr_push_spoolss_NotifyBlob(ndr, NDR_BUFFERS, &r->blob));
8623 NDR_CHECK(ndr_push_spoolss_NotifyDOSString(ndr, NDR_BUFFERS, &r->ascii_string));
8627 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8630 return NDR_ERR_SUCCESS;
8633 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
8637 level = ndr_pull_get_switch_value(ndr, r);
8638 if (ndr_flags & NDR_SCALARS) {
8639 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
8640 if (_level != level) {
8641 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
8645 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->integer));
8649 NDR_CHECK(ndr_pull_spoolss_NotifyUTF16String(ndr, NDR_SCALARS, &r->utf16_string));
8653 NDR_CHECK(ndr_pull_spoolss_NotifyDOSString(ndr, NDR_SCALARS, &r->ascii_string));
8657 NDR_CHECK(ndr_pull_spoolss_NotifyBlob(ndr, NDR_SCALARS, &r->blob));
8661 NDR_CHECK(ndr_pull_spoolss_NotifyDOSString(ndr, NDR_SCALARS, &r->ascii_string));
8665 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8668 if (ndr_flags & NDR_BUFFERS) {
8674 NDR_CHECK(ndr_pull_spoolss_NotifyUTF16String(ndr, NDR_BUFFERS, &r->utf16_string));
8678 NDR_CHECK(ndr_pull_spoolss_NotifyDOSString(ndr, NDR_BUFFERS, &r->ascii_string));
8682 NDR_CHECK(ndr_pull_spoolss_NotifyBlob(ndr, NDR_BUFFERS, &r->blob));
8686 NDR_CHECK(ndr_pull_spoolss_NotifyDOSString(ndr, NDR_BUFFERS, &r->ascii_string));
8690 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8693 return NDR_ERR_SUCCESS;
8696 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
8699 level = ndr_print_get_switch_value(ndr, r);
8700 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
8703 ndr_print_dlong(ndr, "integer", r->integer);
8707 ndr_print_spoolss_NotifyUTF16String(ndr, "utf16_string", &r->utf16_string);
8711 ndr_print_spoolss_NotifyDOSString(ndr, "ascii_string", &r->ascii_string);
8715 ndr_print_spoolss_NotifyBlob(ndr, "blob", &r->blob);
8719 ndr_print_spoolss_NotifyDOSString(ndr, "ascii_string", &r->ascii_string);
8723 ndr_print_bad_level(ndr, name, level);
8727 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
8729 if (ndr_flags & NDR_SCALARS) {
8730 NDR_CHECK(ndr_push_align(ndr, 4));
8731 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
8732 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
8733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->variable_type));
8734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
8735 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
8736 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
8738 if (ndr_flags & NDR_BUFFERS) {
8739 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
8741 return NDR_ERR_SUCCESS;
8744 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
8746 if (ndr_flags & NDR_SCALARS) {
8747 NDR_CHECK(ndr_pull_align(ndr, 4));
8748 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
8749 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
8750 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->variable_type));
8751 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
8752 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
8753 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
8755 if (ndr_flags & NDR_BUFFERS) {
8756 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
8758 return NDR_ERR_SUCCESS;
8761 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
8763 ndr_print_struct(ndr, name, "spoolss_Notify");
8765 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
8766 ndr_print_spoolss_Field(ndr, "field", r->field);
8767 ndr_print_uint32(ndr, "variable_type", r->variable_type);
8768 ndr_print_uint32(ndr, "job_id", r->job_id);
8769 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
8770 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
8774 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
8776 uint32_t cntr_notifies_0;
8777 if (ndr_flags & NDR_SCALARS) {
8778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8779 NDR_CHECK(ndr_push_align(ndr, 4));
8780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
8781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
8782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8783 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
8784 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
8787 if (ndr_flags & NDR_BUFFERS) {
8788 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
8789 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
8792 return NDR_ERR_SUCCESS;
8795 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
8797 uint32_t cntr_notifies_0;
8798 TALLOC_CTX *_mem_save_notifies_0;
8799 if (ndr_flags & NDR_SCALARS) {
8800 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
8801 NDR_CHECK(ndr_pull_align(ndr, 4));
8802 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
8803 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
8804 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8805 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
8806 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
8807 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
8808 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
8809 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
8811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
8813 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
8816 if (ndr_flags & NDR_BUFFERS) {
8817 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
8818 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
8819 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
8820 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
8822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
8824 return NDR_ERR_SUCCESS;
8827 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
8829 uint32_t cntr_notifies_0;
8830 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
8832 ndr_print_uint32(ndr, "version", r->version);
8833 ndr_print_uint32(ndr, "flags", r->flags);
8834 ndr_print_uint32(ndr, "count", r->count);
8835 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
8837 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
8839 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
8840 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
8848 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
8850 if (ndr_flags & NDR_SCALARS) {
8851 NDR_CHECK(ndr_push_align(ndr, 4));
8852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8853 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
8854 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
8855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
8856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
8857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
8858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->processor));
8860 if (ndr_flags & NDR_BUFFERS) {
8862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
8863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
8865 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
8869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8870 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
8871 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8874 return NDR_ERR_SUCCESS;
8877 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
8879 uint32_t _ptr_client;
8880 TALLOC_CTX *_mem_save_client_0;
8882 TALLOC_CTX *_mem_save_user_0;
8883 if (ndr_flags & NDR_SCALARS) {
8884 NDR_CHECK(ndr_pull_align(ndr, 4));
8885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
8886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
8888 NDR_PULL_ALLOC(ndr, r->client);
8892 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
8894 NDR_PULL_ALLOC(ndr, r->user);
8898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
8899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
8900 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
8901 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->processor));
8903 if (ndr_flags & NDR_BUFFERS) {
8905 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
8906 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
8907 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
8908 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
8909 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
8910 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client), ndr_get_array_length(ndr, &r->client));
8912 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
8913 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
8914 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
8917 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
8918 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
8919 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
8920 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
8921 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
8922 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user));
8924 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
8925 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
8926 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
8929 return NDR_ERR_SUCCESS;
8932 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
8934 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
8936 ndr_print_uint32(ndr, "size", r->size);
8937 ndr_print_ptr(ndr, "client", r->client);
8940 ndr_print_string(ndr, "client", r->client);
8943 ndr_print_ptr(ndr, "user", r->user);
8946 ndr_print_string(ndr, "user", r->user);
8949 ndr_print_uint32(ndr, "build", r->build);
8950 ndr_print_uint32(ndr, "major", r->major);
8951 ndr_print_uint32(ndr, "minor", r->minor);
8952 ndr_print_uint32(ndr, "processor", r->processor);
8956 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
8958 if (ndr_flags & NDR_SCALARS) {
8959 int level = ndr_push_get_switch_value(ndr, r);
8960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
8963 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
8967 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8970 if (ndr_flags & NDR_BUFFERS) {
8971 int level = ndr_push_get_switch_value(ndr, r);
8975 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
8980 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8983 return NDR_ERR_SUCCESS;
8986 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
8990 TALLOC_CTX *_mem_save_level1_0;
8991 level = ndr_pull_get_switch_value(ndr, r);
8992 if (ndr_flags & NDR_SCALARS) {
8993 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
8994 if (_level != level) {
8995 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
8999 uint32_t _ptr_level1;
9000 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
9002 NDR_PULL_ALLOC(ndr, r->level1);
9009 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9012 if (ndr_flags & NDR_BUFFERS) {
9016 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
9017 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
9018 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
9019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
9024 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9027 return NDR_ERR_SUCCESS;
9030 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
9033 level = ndr_print_get_switch_value(ndr, r);
9034 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
9037 ndr_print_ptr(ndr, "level1", r->level1);
9040 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
9046 ndr_print_bad_level(ndr, name, level);
9050 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
9052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
9053 return NDR_ERR_SUCCESS;
9056 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
9059 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
9061 return NDR_ERR_SUCCESS;
9064 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
9066 ndr_print_uint32(ndr, name, r);
9068 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
9069 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
9070 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
9074 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
9076 if (flags & NDR_IN) {
9077 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
9078 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
9080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
9081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
9083 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9086 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
9088 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
9090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
9092 if (flags & NDR_OUT) {
9093 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
9095 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
9097 if (r->out.needed == NULL) {
9098 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
9101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
9102 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9104 return NDR_ERR_SUCCESS;
9107 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
9109 uint32_t _ptr_server;
9110 uint32_t _ptr_buffer;
9112 TALLOC_CTX *_mem_save_server_0;
9113 TALLOC_CTX *_mem_save_buffer_0;
9114 TALLOC_CTX *_mem_save_info_0;
9115 TALLOC_CTX *_mem_save_needed_0;
9116 if (flags & NDR_IN) {
9117 ZERO_STRUCT(r->out);
9119 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
9120 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
9122 NDR_PULL_ALLOC(ndr, r->in.server);
9124 r->in.server = NULL;
9127 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9128 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
9129 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
9130 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
9131 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
9132 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
9134 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
9135 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
9136 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
9138 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
9141 NDR_PULL_ALLOC(ndr, r->in.buffer);
9143 r->in.buffer = NULL;
9146 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9147 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
9148 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
9149 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
9151 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
9152 NDR_PULL_ALLOC(ndr, r->out.needed);
9153 ZERO_STRUCTP(r->out.needed);
9155 if (flags & NDR_OUT) {
9156 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
9158 NDR_PULL_ALLOC(ndr, r->out.info);
9163 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9164 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
9165 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
9166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
9168 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9169 NDR_PULL_ALLOC(ndr, r->out.needed);
9171 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
9172 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
9173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
9174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
9175 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.count));
9176 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9178 return NDR_ERR_SUCCESS;
9181 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
9183 uint32_t cntr_info_0;
9184 if (flags & NDR_IN) {
9185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9186 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
9188 if (flags & NDR_OUT) {
9189 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
9190 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
9191 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
9193 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
9194 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
9197 return NDR_ERR_SUCCESS;
9200 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
9202 uint32_t cntr_info_0;
9203 TALLOC_CTX *_mem_save_info_0;
9204 if (flags & NDR_IN) {
9205 ZERO_STRUCT(r->out);
9207 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9208 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
9210 if (flags & NDR_OUT) {
9211 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
9212 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9213 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
9214 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
9215 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
9216 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
9218 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
9219 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
9221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
9223 return NDR_ERR_SUCCESS;
9226 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
9228 uint32_t cntr_info_1;
9229 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
9231 if (flags & NDR_SET_VALUES) {
9232 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9234 if (flags & NDR_IN) {
9235 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
9237 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
9238 ndr_print_ptr(ndr, "server", r->in.server);
9241 ndr_print_string(ndr, "server", r->in.server);
9244 ndr_print_uint32(ndr, "level", r->in.level);
9245 ndr_print_ptr(ndr, "buffer", r->in.buffer);
9248 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
9251 ndr_print_uint32(ndr, "offered", r->in.offered);
9254 if (flags & NDR_OUT) {
9255 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
9257 ndr_print_ptr(ndr, "info", r->out.info);
9260 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count);
9262 for (cntr_info_1=0;cntr_info_1<r->out.count;cntr_info_1++) {
9264 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
9265 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
9266 ndr_print_spoolss_PrinterInfo(ndr, "info", &r->out.info[cntr_info_1]);
9273 ndr_print_ptr(ndr, "needed", r->out.needed);
9275 ndr_print_uint32(ndr, "needed", *r->out.needed);
9277 ndr_print_uint32(ndr, "count", r->out.count);
9278 ndr_print_WERROR(ndr, "result", r->out.result);
9284 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
9286 if (flags & NDR_IN) {
9287 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
9288 if (r->in.printername) {
9289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
9290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
9292 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9294 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
9295 if (r->in.datatype) {
9296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, 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->in.datatype, CH_UTF16)));
9299 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9301 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
9302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.access_mask));
9304 if (flags & NDR_OUT) {
9305 if (r->out.handle == NULL) {
9306 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9308 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
9309 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9311 return NDR_ERR_SUCCESS;
9314 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
9316 uint32_t _ptr_printername;
9317 uint32_t _ptr_datatype;
9318 TALLOC_CTX *_mem_save_printername_0;
9319 TALLOC_CTX *_mem_save_datatype_0;
9320 TALLOC_CTX *_mem_save_handle_0;
9321 if (flags & NDR_IN) {
9322 ZERO_STRUCT(r->out);
9324 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
9325 if (_ptr_printername) {
9326 NDR_PULL_ALLOC(ndr, r->in.printername);
9328 r->in.printername = NULL;
9330 if (r->in.printername) {
9331 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
9332 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
9333 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
9334 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
9335 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
9336 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.printername), ndr_get_array_length(ndr, &r->in.printername));
9338 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
9339 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
9340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
9342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
9343 if (_ptr_datatype) {
9344 NDR_PULL_ALLOC(ndr, r->in.datatype);
9346 r->in.datatype = NULL;
9348 if (r->in.datatype) {
9349 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9350 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
9351 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
9352 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
9353 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
9354 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.datatype), ndr_get_array_length(ndr, &r->in.datatype));
9356 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
9357 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
9358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
9360 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
9361 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.access_mask));
9362 NDR_PULL_ALLOC(ndr, r->out.handle);
9363 ZERO_STRUCTP(r->out.handle);
9365 if (flags & NDR_OUT) {
9366 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9367 NDR_PULL_ALLOC(ndr, r->out.handle);
9369 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9370 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
9371 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
9372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
9373 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9375 return NDR_ERR_SUCCESS;
9378 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
9380 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
9382 if (flags & NDR_SET_VALUES) {
9383 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9385 if (flags & NDR_IN) {
9386 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
9388 ndr_print_ptr(ndr, "printername", r->in.printername);
9390 if (r->in.printername) {
9391 ndr_print_string(ndr, "printername", r->in.printername);
9394 ndr_print_ptr(ndr, "datatype", r->in.datatype);
9396 if (r->in.datatype) {
9397 ndr_print_string(ndr, "datatype", r->in.datatype);
9400 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
9401 ndr_print_uint32(ndr, "access_mask", r->in.access_mask);
9404 if (flags & NDR_OUT) {
9405 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
9407 ndr_print_ptr(ndr, "handle", r->out.handle);
9409 ndr_print_policy_handle(ndr, "handle", r->out.handle);
9411 ndr_print_WERROR(ndr, "result", r->out.result);
9417 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
9419 if (flags & NDR_IN) {
9420 if (r->in.handle == NULL) {
9421 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9423 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
9424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
9425 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
9427 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
9429 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
9431 if (flags & NDR_OUT) {
9432 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9434 return NDR_ERR_SUCCESS;
9437 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
9440 TALLOC_CTX *_mem_save_handle_0;
9441 TALLOC_CTX *_mem_save_ctr_0;
9442 if (flags & NDR_IN) {
9443 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9444 NDR_PULL_ALLOC(ndr, r->in.handle);
9446 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9447 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
9448 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
9449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
9450 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
9451 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
9453 NDR_PULL_ALLOC(ndr, r->in.ctr);
9458 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
9459 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
9460 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
9461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
9463 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
9465 if (flags & NDR_OUT) {
9466 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9468 return NDR_ERR_SUCCESS;
9471 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
9473 ndr_print_struct(ndr, name, "spoolss_SetJob");
9475 if (flags & NDR_SET_VALUES) {
9476 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9478 if (flags & NDR_IN) {
9479 ndr_print_struct(ndr, "in", "spoolss_SetJob");
9481 ndr_print_ptr(ndr, "handle", r->in.handle);
9483 ndr_print_policy_handle(ndr, "handle", r->in.handle);
9485 ndr_print_uint32(ndr, "job_id", r->in.job_id);
9486 ndr_print_ptr(ndr, "ctr", r->in.ctr);
9489 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
9492 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
9495 if (flags & NDR_OUT) {
9496 ndr_print_struct(ndr, "out", "spoolss_SetJob");
9498 ndr_print_WERROR(ndr, "result", r->out.result);
9504 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
9506 if (flags & NDR_IN) {
9507 if (r->in.handle == NULL) {
9508 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9510 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
9511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
9512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9513 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
9515 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
9517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
9519 if (flags & NDR_OUT) {
9520 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
9523 struct ndr_push *_ndr_info;
9524 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
9525 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
9526 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9527 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
9530 if (r->out.needed == NULL) {
9531 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
9534 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9536 return NDR_ERR_SUCCESS;
9539 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
9541 uint32_t _ptr_buffer;
9543 TALLOC_CTX *_mem_save_handle_0;
9544 TALLOC_CTX *_mem_save_buffer_0;
9545 TALLOC_CTX *_mem_save_info_0;
9546 TALLOC_CTX *_mem_save_needed_0;
9547 if (flags & NDR_IN) {
9548 ZERO_STRUCT(r->out);
9550 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9551 NDR_PULL_ALLOC(ndr, r->in.handle);
9553 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9554 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
9555 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
9556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
9557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
9558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
9561 NDR_PULL_ALLOC(ndr, r->in.buffer);
9563 r->in.buffer = NULL;
9566 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9567 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
9568 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
9569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
9571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
9572 NDR_PULL_ALLOC(ndr, r->out.needed);
9573 ZERO_STRUCTP(r->out.needed);
9575 if (flags & NDR_OUT) {
9576 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
9578 NDR_PULL_ALLOC(ndr, r->out.info);
9583 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9584 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
9586 struct ndr_pull *_ndr_info;
9587 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
9588 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
9589 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9590 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
9592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
9594 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9595 NDR_PULL_ALLOC(ndr, r->out.needed);
9597 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
9598 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
9599 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
9600 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
9601 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9603 return NDR_ERR_SUCCESS;
9606 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
9608 ndr_print_struct(ndr, name, "spoolss_GetJob");
9610 if (flags & NDR_SET_VALUES) {
9611 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9613 if (flags & NDR_IN) {
9614 ndr_print_struct(ndr, "in", "spoolss_GetJob");
9616 ndr_print_ptr(ndr, "handle", r->in.handle);
9618 ndr_print_policy_handle(ndr, "handle", r->in.handle);
9620 ndr_print_uint32(ndr, "job_id", r->in.job_id);
9621 ndr_print_uint32(ndr, "level", r->in.level);
9622 ndr_print_ptr(ndr, "buffer", r->in.buffer);
9625 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
9628 ndr_print_uint32(ndr, "offered", r->in.offered);
9631 if (flags & NDR_OUT) {
9632 ndr_print_struct(ndr, "out", "spoolss_GetJob");
9634 ndr_print_ptr(ndr, "info", r->out.info);
9637 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
9638 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
9641 ndr_print_ptr(ndr, "needed", r->out.needed);
9643 ndr_print_uint32(ndr, "needed", *r->out.needed);
9645 ndr_print_WERROR(ndr, "result", r->out.result);
9651 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
9653 if (flags & NDR_IN) {
9654 if (r->in.handle == NULL) {
9655 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9657 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
9658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
9659 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
9660 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9661 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
9663 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
9665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
9667 if (flags & NDR_OUT) {
9668 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
9670 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
9672 if (r->out.needed == NULL) {
9673 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
9676 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
9677 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9679 return NDR_ERR_SUCCESS;
9682 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
9684 uint32_t _ptr_buffer;
9686 TALLOC_CTX *_mem_save_handle_0;
9687 TALLOC_CTX *_mem_save_buffer_0;
9688 TALLOC_CTX *_mem_save_info_0;
9689 TALLOC_CTX *_mem_save_needed_0;
9690 if (flags & NDR_IN) {
9691 ZERO_STRUCT(r->out);
9693 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9694 NDR_PULL_ALLOC(ndr, r->in.handle);
9696 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9697 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
9698 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
9699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
9700 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
9701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
9702 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9703 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
9705 NDR_PULL_ALLOC(ndr, r->in.buffer);
9707 r->in.buffer = NULL;
9710 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9711 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
9712 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
9713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
9715 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
9716 NDR_PULL_ALLOC(ndr, r->out.needed);
9717 ZERO_STRUCTP(r->out.needed);
9719 if (flags & NDR_OUT) {
9720 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
9722 NDR_PULL_ALLOC(ndr, r->out.info);
9727 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9728 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
9729 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
9730 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
9732 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9733 NDR_PULL_ALLOC(ndr, r->out.needed);
9735 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
9736 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
9737 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
9738 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
9739 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.count));
9740 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9742 return NDR_ERR_SUCCESS;
9745 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
9747 uint32_t cntr_info_0;
9748 if (flags & NDR_IN) {
9749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
9752 if (flags & NDR_OUT) {
9753 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
9754 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
9755 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
9757 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
9758 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
9761 return NDR_ERR_SUCCESS;
9764 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
9766 uint32_t cntr_info_0;
9767 TALLOC_CTX *_mem_save_info_0;
9768 if (flags & NDR_IN) {
9769 ZERO_STRUCT(r->out);
9771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
9774 if (flags & NDR_OUT) {
9775 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
9776 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9777 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
9778 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
9779 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
9780 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
9782 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
9783 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
9785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
9787 return NDR_ERR_SUCCESS;
9790 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
9792 uint32_t cntr_info_1;
9793 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
9795 if (flags & NDR_SET_VALUES) {
9796 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9798 if (flags & NDR_IN) {
9799 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
9801 ndr_print_ptr(ndr, "handle", r->in.handle);
9803 ndr_print_policy_handle(ndr, "handle", r->in.handle);
9805 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
9806 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
9807 ndr_print_uint32(ndr, "level", r->in.level);
9808 ndr_print_ptr(ndr, "buffer", r->in.buffer);
9811 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
9814 ndr_print_uint32(ndr, "offered", r->in.offered);
9817 if (flags & NDR_OUT) {
9818 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
9820 ndr_print_ptr(ndr, "info", r->out.info);
9823 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count);
9825 for (cntr_info_1=0;cntr_info_1<r->out.count;cntr_info_1++) {
9827 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
9828 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
9829 ndr_print_spoolss_JobInfo(ndr, "info", &r->out.info[cntr_info_1]);
9836 ndr_print_ptr(ndr, "needed", r->out.needed);
9838 ndr_print_uint32(ndr, "needed", *r->out.needed);
9840 ndr_print_uint32(ndr, "count", r->out.count);
9841 ndr_print_WERROR(ndr, "result", r->out.result);
9847 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
9849 if (flags & NDR_IN) {
9851 if (flags & NDR_OUT) {
9852 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9854 return NDR_ERR_SUCCESS;
9857 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
9859 if (flags & NDR_IN) {
9861 if (flags & NDR_OUT) {
9862 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9864 return NDR_ERR_SUCCESS;
9867 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
9869 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
9871 if (flags & NDR_SET_VALUES) {
9872 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9874 if (flags & NDR_IN) {
9875 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
9879 if (flags & NDR_OUT) {
9880 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
9882 ndr_print_WERROR(ndr, "result", r->out.result);
9888 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
9890 if (flags & NDR_IN) {
9891 if (r->in.handle == NULL) {
9892 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9894 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
9896 if (flags & NDR_OUT) {
9897 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9899 return NDR_ERR_SUCCESS;
9902 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
9904 TALLOC_CTX *_mem_save_handle_0;
9905 if (flags & NDR_IN) {
9906 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9907 NDR_PULL_ALLOC(ndr, r->in.handle);
9909 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9910 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
9911 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
9912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
9914 if (flags & NDR_OUT) {
9915 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9917 return NDR_ERR_SUCCESS;
9920 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
9922 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
9924 if (flags & NDR_SET_VALUES) {
9925 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9927 if (flags & NDR_IN) {
9928 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
9930 ndr_print_ptr(ndr, "handle", r->in.handle);
9932 ndr_print_policy_handle(ndr, "handle", r->in.handle);
9936 if (flags & NDR_OUT) {
9937 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
9939 ndr_print_WERROR(ndr, "result", r->out.result);
9945 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
9947 if (flags & NDR_IN) {
9948 if (r->in.handle == NULL) {
9949 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9951 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
9952 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9953 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
9954 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
9955 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
9956 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.secdesc_ctr));
9957 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
9959 if (flags & NDR_OUT) {
9960 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9962 return NDR_ERR_SUCCESS;
9965 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
9967 TALLOC_CTX *_mem_save_handle_0;
9968 if (flags & NDR_IN) {
9969 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9970 NDR_PULL_ALLOC(ndr, r->in.handle);
9972 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
9973 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
9974 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
9975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
9976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9977 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
9978 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
9979 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
9980 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.secdesc_ctr));
9981 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
9983 if (flags & NDR_OUT) {
9984 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9986 return NDR_ERR_SUCCESS;
9989 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
9991 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
9993 if (flags & NDR_SET_VALUES) {
9994 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9996 if (flags & NDR_IN) {
9997 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
9999 ndr_print_ptr(ndr, "handle", r->in.handle);
10001 ndr_print_policy_handle(ndr, "handle", r->in.handle);
10003 ndr_print_uint32(ndr, "level", r->in.level);
10004 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
10005 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->in.info);
10006 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
10007 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", &r->in.secdesc_ctr);
10008 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
10011 if (flags & NDR_OUT) {
10012 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
10014 ndr_print_WERROR(ndr, "result", r->out.result);
10020 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
10022 if (flags & NDR_IN) {
10023 if (r->in.handle == NULL) {
10024 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10026 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
10027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10028 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
10029 if (r->in.buffer) {
10030 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
10032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
10034 if (flags & NDR_OUT) {
10035 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
10038 struct ndr_push *_ndr_info;
10039 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
10040 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
10041 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10042 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
10045 if (r->out.needed == NULL) {
10046 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
10049 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10051 return NDR_ERR_SUCCESS;
10054 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
10056 uint32_t _ptr_buffer;
10057 uint32_t _ptr_info;
10058 TALLOC_CTX *_mem_save_handle_0;
10059 TALLOC_CTX *_mem_save_buffer_0;
10060 TALLOC_CTX *_mem_save_info_0;
10061 TALLOC_CTX *_mem_save_needed_0;
10062 if (flags & NDR_IN) {
10063 ZERO_STRUCT(r->out);
10065 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10066 NDR_PULL_ALLOC(ndr, r->in.handle);
10068 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
10069 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
10070 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
10071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
10072 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
10075 NDR_PULL_ALLOC(ndr, r->in.buffer);
10077 r->in.buffer = NULL;
10079 if (r->in.buffer) {
10080 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
10081 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
10082 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
10083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
10085 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
10086 NDR_PULL_ALLOC(ndr, r->out.needed);
10087 ZERO_STRUCTP(r->out.needed);
10089 if (flags & NDR_OUT) {
10090 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
10092 NDR_PULL_ALLOC(ndr, r->out.info);
10094 r->out.info = NULL;
10097 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10098 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
10100 struct ndr_pull *_ndr_info;
10101 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
10102 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
10103 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10104 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
10106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
10108 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10109 NDR_PULL_ALLOC(ndr, r->out.needed);
10111 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
10112 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
10113 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
10114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
10115 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10117 return NDR_ERR_SUCCESS;
10120 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
10122 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
10124 if (flags & NDR_SET_VALUES) {
10125 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10127 if (flags & NDR_IN) {
10128 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
10130 ndr_print_ptr(ndr, "handle", r->in.handle);
10132 ndr_print_policy_handle(ndr, "handle", r->in.handle);
10134 ndr_print_uint32(ndr, "level", r->in.level);
10135 ndr_print_ptr(ndr, "buffer", r->in.buffer);
10137 if (r->in.buffer) {
10138 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
10141 ndr_print_uint32(ndr, "offered", r->in.offered);
10144 if (flags & NDR_OUT) {
10145 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
10147 ndr_print_ptr(ndr, "info", r->out.info);
10150 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10151 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
10154 ndr_print_ptr(ndr, "needed", r->out.needed);
10156 ndr_print_uint32(ndr, "needed", *r->out.needed);
10158 ndr_print_WERROR(ndr, "result", r->out.result);
10164 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
10166 if (flags & NDR_IN) {
10168 if (flags & NDR_OUT) {
10169 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10171 return NDR_ERR_SUCCESS;
10174 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
10176 if (flags & NDR_IN) {
10178 if (flags & NDR_OUT) {
10179 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10181 return NDR_ERR_SUCCESS;
10184 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
10186 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
10188 if (flags & NDR_SET_VALUES) {
10189 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10191 if (flags & NDR_IN) {
10192 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
10196 if (flags & NDR_OUT) {
10197 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
10199 ndr_print_WERROR(ndr, "result", r->out.result);
10205 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
10207 if (flags & NDR_IN) {
10208 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
10209 if (r->in.server) {
10210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
10211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
10213 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10215 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
10216 if (r->in.environment) {
10217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
10218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
10220 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10223 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
10224 if (r->in.buffer) {
10225 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
10227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
10229 if (flags & NDR_OUT) {
10230 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
10232 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
10234 if (r->out.needed == NULL) {
10235 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
10238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
10239 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10241 return NDR_ERR_SUCCESS;
10244 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
10246 uint32_t _ptr_server;
10247 uint32_t _ptr_environment;
10248 uint32_t _ptr_buffer;
10249 uint32_t _ptr_info;
10250 TALLOC_CTX *_mem_save_server_0;
10251 TALLOC_CTX *_mem_save_environment_0;
10252 TALLOC_CTX *_mem_save_buffer_0;
10253 TALLOC_CTX *_mem_save_info_0;
10254 TALLOC_CTX *_mem_save_needed_0;
10255 if (flags & NDR_IN) {
10256 ZERO_STRUCT(r->out);
10258 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
10260 NDR_PULL_ALLOC(ndr, r->in.server);
10262 r->in.server = NULL;
10264 if (r->in.server) {
10265 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10266 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
10267 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
10268 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
10269 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
10270 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
10272 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
10273 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
10274 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
10276 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
10277 if (_ptr_environment) {
10278 NDR_PULL_ALLOC(ndr, r->in.environment);
10280 r->in.environment = NULL;
10282 if (r->in.environment) {
10283 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
10284 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
10285 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
10286 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
10287 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
10288 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
10290 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
10291 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
10292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
10294 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
10297 NDR_PULL_ALLOC(ndr, r->in.buffer);
10299 r->in.buffer = NULL;
10301 if (r->in.buffer) {
10302 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
10303 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
10304 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
10305 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
10307 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
10308 NDR_PULL_ALLOC(ndr, r->out.needed);
10309 ZERO_STRUCTP(r->out.needed);
10311 if (flags & NDR_OUT) {
10312 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
10314 NDR_PULL_ALLOC(ndr, r->out.info);
10316 r->out.info = NULL;
10319 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10320 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
10321 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
10322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
10324 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10325 NDR_PULL_ALLOC(ndr, r->out.needed);
10327 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
10328 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
10329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
10330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
10331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.count));
10332 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10334 return NDR_ERR_SUCCESS;
10337 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
10339 uint32_t cntr_info_0;
10340 if (flags & NDR_IN) {
10341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
10344 if (flags & NDR_OUT) {
10345 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
10346 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
10347 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
10349 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
10350 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
10353 return NDR_ERR_SUCCESS;
10356 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
10358 uint32_t cntr_info_0;
10359 TALLOC_CTX *_mem_save_info_0;
10360 if (flags & NDR_IN) {
10361 ZERO_STRUCT(r->out);
10363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
10366 if (flags & NDR_OUT) {
10367 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
10368 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10369 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
10370 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
10371 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
10372 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
10374 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
10375 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
10377 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
10379 return NDR_ERR_SUCCESS;
10382 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
10384 uint32_t cntr_info_1;
10385 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
10387 if (flags & NDR_SET_VALUES) {
10388 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10390 if (flags & NDR_IN) {
10391 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
10393 ndr_print_ptr(ndr, "server", r->in.server);
10395 if (r->in.server) {
10396 ndr_print_string(ndr, "server", r->in.server);
10399 ndr_print_ptr(ndr, "environment", r->in.environment);
10401 if (r->in.environment) {
10402 ndr_print_string(ndr, "environment", r->in.environment);
10405 ndr_print_uint32(ndr, "level", r->in.level);
10406 ndr_print_ptr(ndr, "buffer", r->in.buffer);
10408 if (r->in.buffer) {
10409 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
10412 ndr_print_uint32(ndr, "offered", r->in.offered);
10415 if (flags & NDR_OUT) {
10416 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
10418 ndr_print_ptr(ndr, "info", r->out.info);
10421 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count);
10423 for (cntr_info_1=0;cntr_info_1<r->out.count;cntr_info_1++) {
10425 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
10426 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
10427 ndr_print_spoolss_DriverInfo(ndr, "info", &r->out.info[cntr_info_1]);
10434 ndr_print_ptr(ndr, "needed", r->out.needed);
10436 ndr_print_uint32(ndr, "needed", *r->out.needed);
10438 ndr_print_uint32(ndr, "count", r->out.count);
10439 ndr_print_WERROR(ndr, "result", r->out.result);
10445 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
10447 if (flags & NDR_IN) {
10449 if (flags & NDR_OUT) {
10450 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10452 return NDR_ERR_SUCCESS;
10455 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
10457 if (flags & NDR_IN) {
10459 if (flags & NDR_OUT) {
10460 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10462 return NDR_ERR_SUCCESS;
10465 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
10467 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
10469 if (flags & NDR_SET_VALUES) {
10470 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10472 if (flags & NDR_IN) {
10473 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
10477 if (flags & NDR_OUT) {
10478 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
10480 ndr_print_WERROR(ndr, "result", r->out.result);
10486 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
10488 if (flags & NDR_IN) {
10489 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
10490 if (r->in.server) {
10491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
10492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
10494 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10496 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
10497 if (r->in.environment) {
10498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
10499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
10501 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10504 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
10505 if (r->in.buffer) {
10506 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
10508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
10510 if (flags & NDR_OUT) {
10511 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
10514 struct ndr_push *_ndr_info;
10515 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
10516 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
10517 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
10518 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
10521 if (r->out.needed == NULL) {
10522 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
10525 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10527 return NDR_ERR_SUCCESS;
10530 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
10532 uint32_t _ptr_server;
10533 uint32_t _ptr_environment;
10534 uint32_t _ptr_buffer;
10535 uint32_t _ptr_info;
10536 TALLOC_CTX *_mem_save_server_0;
10537 TALLOC_CTX *_mem_save_environment_0;
10538 TALLOC_CTX *_mem_save_buffer_0;
10539 TALLOC_CTX *_mem_save_info_0;
10540 TALLOC_CTX *_mem_save_needed_0;
10541 if (flags & NDR_IN) {
10542 ZERO_STRUCT(r->out);
10544 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
10546 NDR_PULL_ALLOC(ndr, r->in.server);
10548 r->in.server = NULL;
10550 if (r->in.server) {
10551 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10552 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
10553 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
10554 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
10555 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
10556 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
10558 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
10559 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
10560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
10562 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
10563 if (_ptr_environment) {
10564 NDR_PULL_ALLOC(ndr, r->in.environment);
10566 r->in.environment = NULL;
10568 if (r->in.environment) {
10569 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
10570 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
10571 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
10572 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
10573 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
10574 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
10576 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
10577 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
10578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
10580 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
10583 NDR_PULL_ALLOC(ndr, r->in.buffer);
10585 r->in.buffer = NULL;
10587 if (r->in.buffer) {
10588 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
10589 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
10590 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
10591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
10593 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
10594 NDR_PULL_ALLOC(ndr, r->out.needed);
10595 ZERO_STRUCTP(r->out.needed);
10597 if (flags & NDR_OUT) {
10598 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
10600 NDR_PULL_ALLOC(ndr, r->out.info);
10602 r->out.info = NULL;
10605 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10606 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
10608 struct ndr_pull *_ndr_info;
10609 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
10610 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
10611 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
10612 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
10614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
10616 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10617 NDR_PULL_ALLOC(ndr, r->out.needed);
10619 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
10620 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
10621 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
10622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
10623 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10625 return NDR_ERR_SUCCESS;
10628 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
10630 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
10632 if (flags & NDR_SET_VALUES) {
10633 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10635 if (flags & NDR_IN) {
10636 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
10638 ndr_print_ptr(ndr, "server", r->in.server);
10640 if (r->in.server) {
10641 ndr_print_string(ndr, "server", r->in.server);
10644 ndr_print_ptr(ndr, "environment", r->in.environment);
10646 if (r->in.environment) {
10647 ndr_print_string(ndr, "environment", r->in.environment);
10650 ndr_print_uint32(ndr, "level", r->in.level);
10651 ndr_print_ptr(ndr, "buffer", r->in.buffer);
10653 if (r->in.buffer) {
10654 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
10657 ndr_print_uint32(ndr, "offered", r->in.offered);
10660 if (flags & NDR_OUT) {
10661 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
10663 ndr_print_ptr(ndr, "info", r->out.info);
10666 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10667 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
10670 ndr_print_ptr(ndr, "needed", r->out.needed);
10672 ndr_print_uint32(ndr, "needed", *r->out.needed);
10674 ndr_print_WERROR(ndr, "result", r->out.result);
10680 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
10682 if (flags & NDR_IN) {
10683 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
10684 if (r->in.server) {
10685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
10686 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10687 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
10688 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
10691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
10693 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
10695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
10697 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10699 if (flags & NDR_OUT) {
10700 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10702 return NDR_ERR_SUCCESS;
10705 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
10707 uint32_t _ptr_server;
10708 TALLOC_CTX *_mem_save_server_0;
10709 if (flags & NDR_IN) {
10710 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
10712 NDR_PULL_ALLOC(ndr, r->in.server);
10714 r->in.server = NULL;
10716 if (r->in.server) {
10717 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10718 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
10719 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
10720 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
10721 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
10722 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
10724 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
10725 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
10726 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
10728 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
10729 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
10730 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
10731 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
10733 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
10734 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
10735 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
10736 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
10737 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
10738 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.driver), ndr_get_array_length(ndr, &r->in.driver));
10740 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
10741 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
10743 if (flags & NDR_OUT) {
10744 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10746 return NDR_ERR_SUCCESS;
10749 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
10751 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
10753 if (flags & NDR_SET_VALUES) {
10754 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10756 if (flags & NDR_IN) {
10757 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
10759 ndr_print_ptr(ndr, "server", r->in.server);
10761 if (r->in.server) {
10762 ndr_print_string(ndr, "server", r->in.server);
10765 ndr_print_string(ndr, "architecture", r->in.architecture);
10766 ndr_print_string(ndr, "driver", r->in.driver);
10769 if (flags & NDR_OUT) {
10770 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
10772 ndr_print_WERROR(ndr, "result", r->out.result);
10778 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
10780 if (flags & NDR_IN) {
10781 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
10782 if (r->in.server) {
10783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
10784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
10786 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
10789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
10791 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
10793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
10795 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));
10796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
10797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
10799 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));
10801 if (flags & NDR_OUT) {
10802 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10804 return NDR_ERR_SUCCESS;
10807 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
10809 uint32_t _ptr_server;
10810 TALLOC_CTX *_mem_save_server_0;
10811 if (flags & NDR_IN) {
10812 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
10814 NDR_PULL_ALLOC(ndr, r->in.server);
10816 r->in.server = NULL;
10818 if (r->in.server) {
10819 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10820 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
10821 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
10822 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
10823 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
10824 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
10826 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
10827 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
10828 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
10830 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
10831 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
10832 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
10833 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
10835 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
10836 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
10837 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
10838 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
10839 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
10840 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.path_name), ndr_get_array_length(ndr, &r->in.path_name));
10842 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
10843 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path_name, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t), CH_UTF16));
10844 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
10845 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
10846 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
10847 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.print_processor_name), ndr_get_array_length(ndr, &r->in.print_processor_name));
10849 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
10850 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t), CH_UTF16));
10852 if (flags & NDR_OUT) {
10853 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10855 return NDR_ERR_SUCCESS;
10858 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
10860 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
10862 if (flags & NDR_SET_VALUES) {
10863 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10865 if (flags & NDR_IN) {
10866 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
10868 ndr_print_ptr(ndr, "server", r->in.server);
10870 if (r->in.server) {
10871 ndr_print_string(ndr, "server", r->in.server);
10874 ndr_print_string(ndr, "architecture", r->in.architecture);
10875 ndr_print_string(ndr, "path_name", r->in.path_name);
10876 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
10879 if (flags & NDR_OUT) {
10880 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
10882 ndr_print_WERROR(ndr, "result", r->out.result);
10888 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
10890 if (flags & NDR_IN) {
10891 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
10892 if (r->in.servername) {
10893 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
10894 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10895 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
10896 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10898 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
10899 if (r->in.environment) {
10900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
10901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
10903 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10906 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
10907 if (r->in.buffer) {
10908 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
10910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
10912 if (flags & NDR_OUT) {
10913 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
10915 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
10917 if (r->out.needed == NULL) {
10918 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10920 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
10921 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
10922 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10924 return NDR_ERR_SUCCESS;
10927 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
10929 uint32_t _ptr_servername;
10930 uint32_t _ptr_environment;
10931 uint32_t _ptr_buffer;
10932 uint32_t _ptr_info;
10933 TALLOC_CTX *_mem_save_servername_0;
10934 TALLOC_CTX *_mem_save_environment_0;
10935 TALLOC_CTX *_mem_save_buffer_0;
10936 TALLOC_CTX *_mem_save_info_0;
10937 TALLOC_CTX *_mem_save_needed_0;
10938 if (flags & NDR_IN) {
10939 ZERO_STRUCT(r->out);
10941 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
10942 if (_ptr_servername) {
10943 NDR_PULL_ALLOC(ndr, r->in.servername);
10945 r->in.servername = NULL;
10947 if (r->in.servername) {
10948 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
10949 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
10950 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
10951 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
10952 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
10953 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
10955 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
10956 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
10957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
10959 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
10960 if (_ptr_environment) {
10961 NDR_PULL_ALLOC(ndr, r->in.environment);
10963 r->in.environment = NULL;
10965 if (r->in.environment) {
10966 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
10967 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
10968 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
10969 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
10970 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
10971 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
10973 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
10974 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
10975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
10977 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10978 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
10980 NDR_PULL_ALLOC(ndr, r->in.buffer);
10982 r->in.buffer = NULL;
10984 if (r->in.buffer) {
10985 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
10986 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
10987 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
10988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
10990 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
10991 NDR_PULL_ALLOC(ndr, r->out.needed);
10992 ZERO_STRUCTP(r->out.needed);
10994 if (flags & NDR_OUT) {
10995 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
10997 NDR_PULL_ALLOC(ndr, r->out.info);
10999 r->out.info = NULL;
11002 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11003 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
11004 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
11005 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
11007 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11008 NDR_PULL_ALLOC(ndr, r->out.needed);
11010 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
11011 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
11012 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
11013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
11014 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.count));
11015 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11017 return NDR_ERR_SUCCESS;
11020 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
11022 uint32_t cntr_info_0;
11023 if (flags & NDR_IN) {
11024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
11027 if (flags & NDR_OUT) {
11028 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
11029 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
11030 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
11032 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
11033 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
11036 return NDR_ERR_SUCCESS;
11039 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
11041 uint32_t cntr_info_0;
11042 TALLOC_CTX *_mem_save_info_0;
11043 if (flags & NDR_IN) {
11044 ZERO_STRUCT(r->out);
11046 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11047 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
11049 if (flags & NDR_OUT) {
11050 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
11051 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11052 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
11053 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
11054 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
11055 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
11057 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
11058 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
11060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
11062 return NDR_ERR_SUCCESS;
11065 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
11067 uint32_t cntr_info_1;
11068 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
11070 if (flags & NDR_SET_VALUES) {
11071 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11073 if (flags & NDR_IN) {
11074 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
11076 ndr_print_ptr(ndr, "servername", r->in.servername);
11078 if (r->in.servername) {
11079 ndr_print_string(ndr, "servername", r->in.servername);
11082 ndr_print_ptr(ndr, "environment", r->in.environment);
11084 if (r->in.environment) {
11085 ndr_print_string(ndr, "environment", r->in.environment);
11088 ndr_print_uint32(ndr, "level", r->in.level);
11089 ndr_print_ptr(ndr, "buffer", r->in.buffer);
11091 if (r->in.buffer) {
11092 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
11095 ndr_print_uint32(ndr, "offered", r->in.offered);
11098 if (flags & NDR_OUT) {
11099 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
11101 ndr_print_ptr(ndr, "info", r->out.info);
11104 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count);
11106 for (cntr_info_1=0;cntr_info_1<r->out.count;cntr_info_1++) {
11108 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
11109 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
11110 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &r->out.info[cntr_info_1]);
11117 ndr_print_ptr(ndr, "needed", r->out.needed);
11119 ndr_print_uint32(ndr, "needed", *r->out.needed);
11121 ndr_print_uint32(ndr, "count", r->out.count);
11122 ndr_print_WERROR(ndr, "result", r->out.result);
11128 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
11130 if (flags & NDR_IN) {
11132 if (flags & NDR_OUT) {
11133 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11135 return NDR_ERR_SUCCESS;
11138 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
11140 if (flags & NDR_IN) {
11142 if (flags & NDR_OUT) {
11143 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11145 return NDR_ERR_SUCCESS;
11148 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
11150 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
11152 if (flags & NDR_SET_VALUES) {
11153 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11155 if (flags & NDR_IN) {
11156 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
11160 if (flags & NDR_OUT) {
11161 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
11163 ndr_print_WERROR(ndr, "result", r->out.result);
11169 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
11171 if (flags & NDR_IN) {
11172 if (r->in.handle == NULL) {
11173 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11175 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11177 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
11178 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
11180 if (flags & NDR_OUT) {
11181 if (r->out.job_id == NULL) {
11182 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
11185 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11187 return NDR_ERR_SUCCESS;
11190 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
11192 TALLOC_CTX *_mem_save_handle_0;
11193 TALLOC_CTX *_mem_save_job_id_0;
11194 if (flags & NDR_IN) {
11195 ZERO_STRUCT(r->out);
11197 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11198 NDR_PULL_ALLOC(ndr, r->in.handle);
11200 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11201 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
11202 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
11204 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11205 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
11206 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
11207 NDR_PULL_ALLOC(ndr, r->out.job_id);
11208 ZERO_STRUCTP(r->out.job_id);
11210 if (flags & NDR_OUT) {
11211 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11212 NDR_PULL_ALLOC(ndr, r->out.job_id);
11214 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
11215 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
11216 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
11217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
11218 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11220 return NDR_ERR_SUCCESS;
11223 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
11225 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
11227 if (flags & NDR_SET_VALUES) {
11228 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11230 if (flags & NDR_IN) {
11231 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
11233 ndr_print_ptr(ndr, "handle", r->in.handle);
11235 ndr_print_policy_handle(ndr, "handle", r->in.handle);
11237 ndr_print_uint32(ndr, "level", r->in.level);
11238 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
11239 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
11242 if (flags & NDR_OUT) {
11243 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
11245 ndr_print_ptr(ndr, "job_id", r->out.job_id);
11247 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
11249 ndr_print_WERROR(ndr, "result", r->out.result);
11255 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
11257 if (flags & NDR_IN) {
11258 if (r->in.handle == NULL) {
11259 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11261 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11263 if (flags & NDR_OUT) {
11264 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11266 return NDR_ERR_SUCCESS;
11269 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
11271 TALLOC_CTX *_mem_save_handle_0;
11272 if (flags & NDR_IN) {
11273 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11274 NDR_PULL_ALLOC(ndr, r->in.handle);
11276 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11277 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
11278 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
11281 if (flags & NDR_OUT) {
11282 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11284 return NDR_ERR_SUCCESS;
11287 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
11289 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
11291 if (flags & NDR_SET_VALUES) {
11292 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11294 if (flags & NDR_IN) {
11295 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
11297 ndr_print_ptr(ndr, "handle", r->in.handle);
11299 ndr_print_policy_handle(ndr, "handle", r->in.handle);
11303 if (flags & NDR_OUT) {
11304 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
11306 ndr_print_WERROR(ndr, "result", r->out.result);
11312 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
11314 if (flags & NDR_IN) {
11315 if (r->in.handle == NULL) {
11316 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11318 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11319 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
11320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
11322 if (flags & NDR_OUT) {
11323 if (r->out.num_written == NULL) {
11324 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
11327 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11329 return NDR_ERR_SUCCESS;
11332 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
11334 TALLOC_CTX *_mem_save_handle_0;
11335 TALLOC_CTX *_mem_save_num_written_0;
11336 if (flags & NDR_IN) {
11337 ZERO_STRUCT(r->out);
11339 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11340 NDR_PULL_ALLOC(ndr, r->in.handle);
11342 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11343 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
11344 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
11346 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
11347 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
11348 NDR_PULL_ALLOC(ndr, r->out.num_written);
11349 ZERO_STRUCTP(r->out.num_written);
11351 if (flags & NDR_OUT) {
11352 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11353 NDR_PULL_ALLOC(ndr, r->out.num_written);
11355 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
11356 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
11357 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
11358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
11359 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11361 return NDR_ERR_SUCCESS;
11364 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
11366 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
11368 if (flags & NDR_SET_VALUES) {
11369 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11371 if (flags & NDR_IN) {
11372 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
11374 ndr_print_ptr(ndr, "handle", r->in.handle);
11376 ndr_print_policy_handle(ndr, "handle", r->in.handle);
11378 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
11379 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
11382 if (flags & NDR_OUT) {
11383 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
11385 ndr_print_ptr(ndr, "num_written", r->out.num_written);
11387 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
11389 ndr_print_WERROR(ndr, "result", r->out.result);
11395 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
11397 if (flags & NDR_IN) {
11398 if (r->in.handle == NULL) {
11399 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11401 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11403 if (flags & NDR_OUT) {
11404 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11406 return NDR_ERR_SUCCESS;
11409 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
11411 TALLOC_CTX *_mem_save_handle_0;
11412 if (flags & NDR_IN) {
11413 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11414 NDR_PULL_ALLOC(ndr, r->in.handle);
11416 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11417 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
11418 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11419 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
11421 if (flags & NDR_OUT) {
11422 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11424 return NDR_ERR_SUCCESS;
11427 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
11429 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
11431 if (flags & NDR_SET_VALUES) {
11432 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11434 if (flags & NDR_IN) {
11435 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
11437 ndr_print_ptr(ndr, "handle", r->in.handle);
11439 ndr_print_policy_handle(ndr, "handle", r->in.handle);
11443 if (flags & NDR_OUT) {
11444 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
11446 ndr_print_WERROR(ndr, "result", r->out.result);
11452 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
11454 if (flags & NDR_IN) {
11455 if (r->in.handle == NULL) {
11456 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11458 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11460 if (flags & NDR_OUT) {
11461 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11463 return NDR_ERR_SUCCESS;
11466 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
11468 TALLOC_CTX *_mem_save_handle_0;
11469 if (flags & NDR_IN) {
11470 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11471 NDR_PULL_ALLOC(ndr, r->in.handle);
11473 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11474 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
11475 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
11478 if (flags & NDR_OUT) {
11479 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11481 return NDR_ERR_SUCCESS;
11484 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
11486 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
11488 if (flags & NDR_SET_VALUES) {
11489 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11491 if (flags & NDR_IN) {
11492 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
11494 ndr_print_ptr(ndr, "handle", r->in.handle);
11496 ndr_print_policy_handle(ndr, "handle", r->in.handle);
11500 if (flags & NDR_OUT) {
11501 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
11503 ndr_print_WERROR(ndr, "result", r->out.result);
11509 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
11511 if (flags & NDR_IN) {
11512 if (r->in.handle == NULL) {
11513 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11515 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
11518 if (flags & NDR_OUT) {
11519 if (r->out.data == NULL) {
11520 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
11523 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
11524 if (r->out._data_size == NULL) {
11525 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
11528 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11530 return NDR_ERR_SUCCESS;
11533 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
11535 TALLOC_CTX *_mem_save_handle_0;
11536 TALLOC_CTX *_mem_save__data_size_0;
11537 if (flags & NDR_IN) {
11538 ZERO_STRUCT(r->out);
11540 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11541 NDR_PULL_ALLOC(ndr, r->in.handle);
11543 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11544 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
11545 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
11547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
11548 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
11549 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
11550 NDR_PULL_ALLOC(ndr, r->out._data_size);
11551 ZERO_STRUCTP(r->out._data_size);
11553 if (flags & NDR_OUT) {
11554 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
11555 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11556 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
11558 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
11559 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11560 NDR_PULL_ALLOC(ndr, r->out._data_size);
11562 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
11563 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
11564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
11565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
11566 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11568 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
11571 return NDR_ERR_SUCCESS;
11574 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
11576 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
11578 if (flags & NDR_SET_VALUES) {
11579 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11581 if (flags & NDR_IN) {
11582 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
11584 ndr_print_ptr(ndr, "handle", r->in.handle);
11586 ndr_print_policy_handle(ndr, "handle", r->in.handle);
11588 ndr_print_uint32(ndr, "data_size", r->in.data_size);
11591 if (flags & NDR_OUT) {
11592 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
11594 ndr_print_ptr(ndr, "data", r->out.data);
11596 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
11598 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
11600 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
11602 ndr_print_WERROR(ndr, "result", r->out.result);
11608 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
11610 if (flags & NDR_IN) {
11611 if (r->in.handle == NULL) {
11612 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11614 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11616 if (flags & NDR_OUT) {
11617 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11619 return NDR_ERR_SUCCESS;
11622 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
11624 TALLOC_CTX *_mem_save_handle_0;
11625 if (flags & NDR_IN) {
11626 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11627 NDR_PULL_ALLOC(ndr, r->in.handle);
11629 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11630 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
11631 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11632 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
11634 if (flags & NDR_OUT) {
11635 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11637 return NDR_ERR_SUCCESS;
11640 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
11642 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
11644 if (flags & NDR_SET_VALUES) {
11645 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11647 if (flags & NDR_IN) {
11648 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
11650 ndr_print_ptr(ndr, "handle", r->in.handle);
11652 ndr_print_policy_handle(ndr, "handle", r->in.handle);
11656 if (flags & NDR_OUT) {
11657 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
11659 ndr_print_WERROR(ndr, "result", r->out.result);
11665 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
11667 if (flags & NDR_IN) {
11668 if (r->in.handle == NULL) {
11669 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11671 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11673 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
11674 if (r->in.buffer) {
11675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
11676 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
11678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
11680 if (flags & NDR_OUT) {
11681 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
11682 if (r->out.buffer) {
11683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
11684 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
11686 if (r->out.needed == NULL) {
11687 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
11690 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11692 return NDR_ERR_SUCCESS;
11695 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
11697 uint32_t _ptr_buffer;
11698 TALLOC_CTX *_mem_save_handle_0;
11699 TALLOC_CTX *_mem_save_buffer_0;
11700 TALLOC_CTX *_mem_save_needed_0;
11701 if (flags & NDR_IN) {
11702 ZERO_STRUCT(r->out);
11704 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11705 NDR_PULL_ALLOC(ndr, r->in.handle);
11707 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11708 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
11709 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
11711 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11712 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
11714 NDR_PULL_ALLOC(ndr, r->in.buffer);
11716 r->in.buffer = NULL;
11718 if (r->in.buffer) {
11719 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
11720 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
11721 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
11722 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
11723 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
11724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
11726 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
11727 NDR_PULL_ALLOC(ndr, r->out.needed);
11728 ZERO_STRUCTP(r->out.needed);
11729 if (r->in.buffer) {
11730 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
11733 if (flags & NDR_OUT) {
11734 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
11736 NDR_PULL_ALLOC(ndr, r->out.buffer);
11738 r->out.buffer = NULL;
11740 if (r->out.buffer) {
11741 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
11742 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
11743 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
11744 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
11745 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
11746 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
11748 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11749 NDR_PULL_ALLOC(ndr, r->out.needed);
11751 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
11752 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
11753 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
11754 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
11755 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11756 if (r->out.buffer) {
11757 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
11760 return NDR_ERR_SUCCESS;
11763 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
11765 ndr_print_struct(ndr, name, "spoolss_AddJob");
11767 if (flags & NDR_SET_VALUES) {
11768 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11770 if (flags & NDR_IN) {
11771 ndr_print_struct(ndr, "in", "spoolss_AddJob");
11773 ndr_print_ptr(ndr, "handle", r->in.handle);
11775 ndr_print_policy_handle(ndr, "handle", r->in.handle);
11777 ndr_print_uint32(ndr, "level", r->in.level);
11778 ndr_print_ptr(ndr, "buffer", r->in.buffer);
11780 if (r->in.buffer) {
11781 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
11784 ndr_print_uint32(ndr, "offered", r->in.offered);
11787 if (flags & NDR_OUT) {
11788 ndr_print_struct(ndr, "out", "spoolss_AddJob");
11790 ndr_print_ptr(ndr, "buffer", r->out.buffer);
11792 if (r->out.buffer) {
11793 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
11796 ndr_print_ptr(ndr, "needed", r->out.needed);
11798 ndr_print_uint32(ndr, "needed", *r->out.needed);
11800 ndr_print_WERROR(ndr, "result", r->out.result);
11806 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
11808 if (flags & NDR_IN) {
11809 if (r->in.handle == NULL) {
11810 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11812 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
11815 if (flags & NDR_OUT) {
11816 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11818 return NDR_ERR_SUCCESS;
11821 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
11823 TALLOC_CTX *_mem_save_handle_0;
11824 if (flags & NDR_IN) {
11825 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11826 NDR_PULL_ALLOC(ndr, r->in.handle);
11828 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11829 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
11830 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
11832 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
11834 if (flags & NDR_OUT) {
11835 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11837 return NDR_ERR_SUCCESS;
11840 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
11842 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
11844 if (flags & NDR_SET_VALUES) {
11845 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11847 if (flags & NDR_IN) {
11848 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
11850 ndr_print_ptr(ndr, "handle", r->in.handle);
11852 ndr_print_policy_handle(ndr, "handle", r->in.handle);
11854 ndr_print_uint32(ndr, "jobid", r->in.jobid);
11857 if (flags & NDR_OUT) {
11858 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
11860 ndr_print_WERROR(ndr, "result", r->out.result);
11866 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
11868 if (flags & NDR_IN) {
11869 if (r->in.handle == NULL) {
11870 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11872 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
11874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
11876 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));
11877 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
11879 if (flags & NDR_OUT) {
11880 if (r->out.type == NULL) {
11881 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11883 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, *r->out.type));
11884 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
11885 if (r->out.needed == NULL) {
11886 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11888 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
11889 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11891 return NDR_ERR_SUCCESS;
11894 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
11896 TALLOC_CTX *_mem_save_handle_0;
11897 TALLOC_CTX *_mem_save_type_0;
11898 TALLOC_CTX *_mem_save_needed_0;
11899 if (flags & NDR_IN) {
11900 ZERO_STRUCT(r->out);
11902 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11903 NDR_PULL_ALLOC(ndr, r->in.handle);
11905 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
11906 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
11907 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
11908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
11909 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
11910 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
11911 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
11912 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
11914 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
11915 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
11916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
11917 NDR_PULL_ALLOC(ndr, r->out.type);
11918 ZERO_STRUCTP(r->out.type);
11919 NDR_PULL_ALLOC(ndr, r->out.needed);
11920 ZERO_STRUCTP(r->out.needed);
11922 if (flags & NDR_OUT) {
11923 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11924 NDR_PULL_ALLOC(ndr, r->out.type);
11926 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
11927 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
11928 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->out.type));
11929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
11930 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.data));
11931 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11932 NDR_PULL_ALLOC(ndr, r->out.needed);
11934 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
11935 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
11936 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
11937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
11938 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11940 return NDR_ERR_SUCCESS;
11943 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
11945 if (flags & NDR_IN) {
11946 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
11948 if (flags & NDR_OUT) {
11949 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
11950 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
11952 return NDR_ERR_SUCCESS;
11955 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
11957 if (flags & NDR_IN) {
11958 ZERO_STRUCT(r->out);
11960 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
11962 if (flags & NDR_OUT) {
11963 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.data, r->in.type));
11964 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
11966 return NDR_ERR_SUCCESS;
11969 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
11971 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
11973 if (flags & NDR_SET_VALUES) {
11974 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11976 if (flags & NDR_IN) {
11977 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
11979 ndr_print_ptr(ndr, "handle", r->in.handle);
11981 ndr_print_policy_handle(ndr, "handle", r->in.handle);
11983 ndr_print_string(ndr, "value_name", r->in.value_name);
11984 ndr_print_uint32(ndr, "offered", r->in.offered);
11987 if (flags & NDR_OUT) {
11988 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
11990 ndr_print_ptr(ndr, "type", r->out.type);
11992 ndr_print_spoolss_PrinterDataType(ndr, "type", *r->out.type);
11994 ndr_print_set_switch_value(ndr, &r->out.data, *r->out.type);
11995 ndr_print_spoolss_PrinterData(ndr, "data", &r->out.data);
11996 ndr_print_ptr(ndr, "needed", r->out.needed);
11998 ndr_print_uint32(ndr, "needed", *r->out.needed);
12000 ndr_print_WERROR(ndr, "result", r->out.result);
12006 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
12008 if (flags & NDR_IN) {
12009 if (r->in.handle == NULL) {
12010 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12012 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
12014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
12016 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));
12017 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
12018 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
12019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
12021 if (flags & NDR_OUT) {
12022 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12024 return NDR_ERR_SUCCESS;
12027 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
12029 if (flags & NDR_IN) {
12030 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
12032 if (flags & NDR_OUT) {
12033 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
12034 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
12036 return NDR_ERR_SUCCESS;
12039 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
12041 TALLOC_CTX *_mem_save_handle_0;
12042 if (flags & NDR_IN) {
12043 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12044 NDR_PULL_ALLOC(ndr, r->in.handle);
12046 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12047 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
12048 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
12050 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
12051 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
12052 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
12053 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
12055 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
12056 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
12057 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
12059 struct ndr_pull *_ndr_data;
12060 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
12061 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
12062 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
12063 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
12065 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
12067 if (flags & NDR_OUT) {
12068 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12070 return NDR_ERR_SUCCESS;
12073 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
12075 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
12077 if (flags & NDR_SET_VALUES) {
12078 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12080 if (flags & NDR_IN) {
12081 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
12083 ndr_print_ptr(ndr, "handle", r->in.handle);
12085 ndr_print_policy_handle(ndr, "handle", r->in.handle);
12087 ndr_print_string(ndr, "value_name", r->in.value_name);
12088 ndr_print_spoolss_PrinterDataType(ndr, "type", r->in.type);
12089 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
12090 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
12091 ndr_print_uint32(ndr, "_offered", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(&r->in.data, r->in.type, ndr->iconv_convenience, flags):r->in._offered);
12094 if (flags & NDR_OUT) {
12095 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
12097 ndr_print_WERROR(ndr, "result", r->out.result);
12103 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
12105 if (flags & NDR_IN) {
12107 if (flags & NDR_OUT) {
12108 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12110 return NDR_ERR_SUCCESS;
12113 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
12115 if (flags & NDR_IN) {
12117 if (flags & NDR_OUT) {
12118 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12120 return NDR_ERR_SUCCESS;
12123 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
12125 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
12127 if (flags & NDR_SET_VALUES) {
12128 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12130 if (flags & NDR_IN) {
12131 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
12135 if (flags & NDR_OUT) {
12136 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
12138 ndr_print_WERROR(ndr, "result", r->out.result);
12144 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
12146 if (flags & NDR_IN) {
12147 if (r->in.handle == NULL) {
12148 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12150 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12152 if (flags & NDR_OUT) {
12153 if (r->out.handle == NULL) {
12154 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12156 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
12157 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12159 return NDR_ERR_SUCCESS;
12162 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
12164 TALLOC_CTX *_mem_save_handle_0;
12165 if (flags & NDR_IN) {
12166 ZERO_STRUCT(r->out);
12168 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12169 NDR_PULL_ALLOC(ndr, r->in.handle);
12171 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12172 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
12173 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
12175 NDR_PULL_ALLOC(ndr, r->out.handle);
12176 *r->out.handle = *r->in.handle;
12178 if (flags & NDR_OUT) {
12179 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12180 NDR_PULL_ALLOC(ndr, r->out.handle);
12182 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12183 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
12184 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
12185 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
12186 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12188 return NDR_ERR_SUCCESS;
12191 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
12193 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
12195 if (flags & NDR_SET_VALUES) {
12196 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12198 if (flags & NDR_IN) {
12199 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
12201 ndr_print_ptr(ndr, "handle", r->in.handle);
12203 ndr_print_policy_handle(ndr, "handle", r->in.handle);
12207 if (flags & NDR_OUT) {
12208 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
12210 ndr_print_ptr(ndr, "handle", r->out.handle);
12212 ndr_print_policy_handle(ndr, "handle", r->out.handle);
12214 ndr_print_WERROR(ndr, "result", r->out.result);
12220 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
12222 if (flags & NDR_IN) {
12223 if (r->in.handle == NULL) {
12224 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12226 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12228 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
12229 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
12231 if (flags & NDR_OUT) {
12232 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12234 return NDR_ERR_SUCCESS;
12237 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
12239 TALLOC_CTX *_mem_save_handle_0;
12240 if (flags & NDR_IN) {
12241 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12242 NDR_PULL_ALLOC(ndr, r->in.handle);
12244 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12245 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
12246 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
12248 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12249 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
12250 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
12252 if (flags & NDR_OUT) {
12253 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12255 return NDR_ERR_SUCCESS;
12258 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
12260 ndr_print_struct(ndr, name, "spoolss_AddForm");
12262 if (flags & NDR_SET_VALUES) {
12263 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12265 if (flags & NDR_IN) {
12266 ndr_print_struct(ndr, "in", "spoolss_AddForm");
12268 ndr_print_ptr(ndr, "handle", r->in.handle);
12270 ndr_print_policy_handle(ndr, "handle", r->in.handle);
12272 ndr_print_uint32(ndr, "level", r->in.level);
12273 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
12274 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
12277 if (flags & NDR_OUT) {
12278 ndr_print_struct(ndr, "out", "spoolss_AddForm");
12280 ndr_print_WERROR(ndr, "result", r->out.result);
12286 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
12288 if (flags & NDR_IN) {
12289 if (r->in.handle == NULL) {
12290 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12292 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12293 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
12294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
12296 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));
12298 if (flags & NDR_OUT) {
12299 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12301 return NDR_ERR_SUCCESS;
12304 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
12306 TALLOC_CTX *_mem_save_handle_0;
12307 if (flags & NDR_IN) {
12308 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12309 NDR_PULL_ALLOC(ndr, r->in.handle);
12311 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12312 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
12313 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12314 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
12315 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
12316 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
12317 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
12318 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.form_name), ndr_get_array_length(ndr, &r->in.form_name));
12320 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
12321 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t), CH_UTF16));
12323 if (flags & NDR_OUT) {
12324 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12326 return NDR_ERR_SUCCESS;
12329 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
12331 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
12333 if (flags & NDR_SET_VALUES) {
12334 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12336 if (flags & NDR_IN) {
12337 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
12339 ndr_print_ptr(ndr, "handle", r->in.handle);
12341 ndr_print_policy_handle(ndr, "handle", r->in.handle);
12343 ndr_print_string(ndr, "form_name", r->in.form_name);
12346 if (flags & NDR_OUT) {
12347 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
12349 ndr_print_WERROR(ndr, "result", r->out.result);
12355 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
12357 if (flags & NDR_IN) {
12358 if (r->in.handle == NULL) {
12359 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12361 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
12363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
12365 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));
12366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12367 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
12368 if (r->in.buffer) {
12369 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
12371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
12373 if (flags & NDR_OUT) {
12374 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
12377 struct ndr_push *_ndr_info;
12378 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
12379 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
12380 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12381 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
12384 if (r->out.needed == NULL) {
12385 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
12388 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12390 return NDR_ERR_SUCCESS;
12393 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
12395 uint32_t _ptr_buffer;
12396 uint32_t _ptr_info;
12397 TALLOC_CTX *_mem_save_handle_0;
12398 TALLOC_CTX *_mem_save_buffer_0;
12399 TALLOC_CTX *_mem_save_info_0;
12400 TALLOC_CTX *_mem_save_needed_0;
12401 if (flags & NDR_IN) {
12402 ZERO_STRUCT(r->out);
12404 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12405 NDR_PULL_ALLOC(ndr, r->in.handle);
12407 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12408 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
12409 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
12411 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
12412 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
12413 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
12414 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.form_name), ndr_get_array_length(ndr, &r->in.form_name));
12416 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
12417 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t), CH_UTF16));
12418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12419 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
12421 NDR_PULL_ALLOC(ndr, r->in.buffer);
12423 r->in.buffer = NULL;
12425 if (r->in.buffer) {
12426 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
12427 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
12428 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
12429 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
12431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
12432 NDR_PULL_ALLOC(ndr, r->out.needed);
12433 ZERO_STRUCTP(r->out.needed);
12435 if (flags & NDR_OUT) {
12436 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12438 NDR_PULL_ALLOC(ndr, r->out.info);
12440 r->out.info = NULL;
12443 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12444 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
12446 struct ndr_pull *_ndr_info;
12447 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
12448 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
12449 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12450 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
12452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
12454 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12455 NDR_PULL_ALLOC(ndr, r->out.needed);
12457 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
12458 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
12459 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
12460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
12461 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12463 return NDR_ERR_SUCCESS;
12466 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
12468 ndr_print_struct(ndr, name, "spoolss_GetForm");
12470 if (flags & NDR_SET_VALUES) {
12471 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12473 if (flags & NDR_IN) {
12474 ndr_print_struct(ndr, "in", "spoolss_GetForm");
12476 ndr_print_ptr(ndr, "handle", r->in.handle);
12478 ndr_print_policy_handle(ndr, "handle", r->in.handle);
12480 ndr_print_string(ndr, "form_name", r->in.form_name);
12481 ndr_print_uint32(ndr, "level", r->in.level);
12482 ndr_print_ptr(ndr, "buffer", r->in.buffer);
12484 if (r->in.buffer) {
12485 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
12488 ndr_print_uint32(ndr, "offered", r->in.offered);
12491 if (flags & NDR_OUT) {
12492 ndr_print_struct(ndr, "out", "spoolss_GetForm");
12494 ndr_print_ptr(ndr, "info", r->out.info);
12497 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
12498 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
12501 ndr_print_ptr(ndr, "needed", r->out.needed);
12503 ndr_print_uint32(ndr, "needed", *r->out.needed);
12505 ndr_print_WERROR(ndr, "result", r->out.result);
12511 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
12513 if (flags & NDR_IN) {
12514 if (r->in.handle == NULL) {
12515 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12517 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
12519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
12521 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));
12522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12523 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
12524 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
12526 if (flags & NDR_OUT) {
12527 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12529 return NDR_ERR_SUCCESS;
12532 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
12534 TALLOC_CTX *_mem_save_handle_0;
12535 if (flags & NDR_IN) {
12536 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12537 NDR_PULL_ALLOC(ndr, r->in.handle);
12539 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12540 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
12541 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
12543 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
12544 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
12545 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
12546 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.form_name), ndr_get_array_length(ndr, &r->in.form_name));
12548 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
12549 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t), CH_UTF16));
12550 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12551 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
12552 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
12554 if (flags & NDR_OUT) {
12555 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12557 return NDR_ERR_SUCCESS;
12560 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
12562 ndr_print_struct(ndr, name, "spoolss_SetForm");
12564 if (flags & NDR_SET_VALUES) {
12565 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12567 if (flags & NDR_IN) {
12568 ndr_print_struct(ndr, "in", "spoolss_SetForm");
12570 ndr_print_ptr(ndr, "handle", r->in.handle);
12572 ndr_print_policy_handle(ndr, "handle", r->in.handle);
12574 ndr_print_string(ndr, "form_name", r->in.form_name);
12575 ndr_print_uint32(ndr, "level", r->in.level);
12576 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
12577 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
12580 if (flags & NDR_OUT) {
12581 ndr_print_struct(ndr, "out", "spoolss_SetForm");
12583 ndr_print_WERROR(ndr, "result", r->out.result);
12589 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
12591 if (flags & NDR_IN) {
12592 if (r->in.handle == NULL) {
12593 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12595 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12597 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
12598 if (r->in.buffer) {
12599 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
12601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
12603 if (flags & NDR_OUT) {
12604 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
12606 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
12608 if (r->out.needed == NULL) {
12609 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
12612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
12613 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12615 return NDR_ERR_SUCCESS;
12618 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
12620 uint32_t _ptr_buffer;
12621 uint32_t _ptr_info;
12622 TALLOC_CTX *_mem_save_handle_0;
12623 TALLOC_CTX *_mem_save_buffer_0;
12624 TALLOC_CTX *_mem_save_info_0;
12625 TALLOC_CTX *_mem_save_needed_0;
12626 if (flags & NDR_IN) {
12627 ZERO_STRUCT(r->out);
12629 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12630 NDR_PULL_ALLOC(ndr, r->in.handle);
12632 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12633 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
12634 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12635 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
12636 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
12639 NDR_PULL_ALLOC(ndr, r->in.buffer);
12641 r->in.buffer = NULL;
12643 if (r->in.buffer) {
12644 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
12645 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
12646 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
12647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
12649 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
12650 NDR_PULL_ALLOC(ndr, r->out.needed);
12651 ZERO_STRUCTP(r->out.needed);
12653 if (flags & NDR_OUT) {
12654 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12656 NDR_PULL_ALLOC(ndr, r->out.info);
12658 r->out.info = NULL;
12661 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12662 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
12663 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
12664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
12666 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12667 NDR_PULL_ALLOC(ndr, r->out.needed);
12669 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
12670 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
12671 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
12672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
12673 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.count));
12674 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12676 return NDR_ERR_SUCCESS;
12679 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
12681 uint32_t cntr_info_0;
12682 if (flags & NDR_IN) {
12683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12686 if (flags & NDR_OUT) {
12687 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
12688 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
12689 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
12691 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
12692 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
12695 return NDR_ERR_SUCCESS;
12698 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
12700 uint32_t cntr_info_0;
12701 TALLOC_CTX *_mem_save_info_0;
12702 if (flags & NDR_IN) {
12703 ZERO_STRUCT(r->out);
12705 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12706 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
12708 if (flags & NDR_OUT) {
12709 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
12710 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12711 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
12712 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
12713 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
12714 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
12716 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
12717 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
12719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
12721 return NDR_ERR_SUCCESS;
12724 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
12726 uint32_t cntr_info_1;
12727 ndr_print_struct(ndr, name, "spoolss_EnumForms");
12729 if (flags & NDR_SET_VALUES) {
12730 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12732 if (flags & NDR_IN) {
12733 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
12735 ndr_print_ptr(ndr, "handle", r->in.handle);
12737 ndr_print_policy_handle(ndr, "handle", r->in.handle);
12739 ndr_print_uint32(ndr, "level", r->in.level);
12740 ndr_print_ptr(ndr, "buffer", r->in.buffer);
12742 if (r->in.buffer) {
12743 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
12746 ndr_print_uint32(ndr, "offered", r->in.offered);
12749 if (flags & NDR_OUT) {
12750 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
12752 ndr_print_ptr(ndr, "info", r->out.info);
12755 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count);
12757 for (cntr_info_1=0;cntr_info_1<r->out.count;cntr_info_1++) {
12759 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
12760 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
12761 ndr_print_spoolss_FormInfo(ndr, "info", &r->out.info[cntr_info_1]);
12768 ndr_print_ptr(ndr, "needed", r->out.needed);
12770 ndr_print_uint32(ndr, "needed", *r->out.needed);
12772 ndr_print_uint32(ndr, "count", r->out.count);
12773 ndr_print_WERROR(ndr, "result", r->out.result);
12779 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
12781 if (flags & NDR_IN) {
12782 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
12783 if (r->in.servername) {
12784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
12785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12786 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
12787 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12790 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
12791 if (r->in.buffer) {
12792 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
12794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
12796 if (flags & NDR_OUT) {
12797 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
12799 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
12801 if (r->out.needed == NULL) {
12802 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12804 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
12805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
12806 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12808 return NDR_ERR_SUCCESS;
12811 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
12813 uint32_t _ptr_servername;
12814 uint32_t _ptr_buffer;
12815 uint32_t _ptr_info;
12816 TALLOC_CTX *_mem_save_servername_0;
12817 TALLOC_CTX *_mem_save_buffer_0;
12818 TALLOC_CTX *_mem_save_info_0;
12819 TALLOC_CTX *_mem_save_needed_0;
12820 if (flags & NDR_IN) {
12821 ZERO_STRUCT(r->out);
12823 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
12824 if (_ptr_servername) {
12825 NDR_PULL_ALLOC(ndr, r->in.servername);
12827 r->in.servername = NULL;
12829 if (r->in.servername) {
12830 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
12831 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
12832 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
12833 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
12834 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
12835 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
12837 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
12838 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
12839 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
12841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12842 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
12844 NDR_PULL_ALLOC(ndr, r->in.buffer);
12846 r->in.buffer = NULL;
12848 if (r->in.buffer) {
12849 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
12850 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
12851 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
12852 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
12854 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
12855 NDR_PULL_ALLOC(ndr, r->out.needed);
12856 ZERO_STRUCTP(r->out.needed);
12858 if (flags & NDR_OUT) {
12859 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12861 NDR_PULL_ALLOC(ndr, r->out.info);
12863 r->out.info = NULL;
12866 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12867 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
12868 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
12869 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
12871 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12872 NDR_PULL_ALLOC(ndr, r->out.needed);
12874 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
12875 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
12876 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
12877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
12878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.count));
12879 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12881 return NDR_ERR_SUCCESS;
12884 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
12886 uint32_t cntr_info_0;
12887 if (flags & NDR_IN) {
12888 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12891 if (flags & NDR_OUT) {
12892 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
12893 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
12894 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
12896 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
12897 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
12900 return NDR_ERR_SUCCESS;
12903 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
12905 uint32_t cntr_info_0;
12906 TALLOC_CTX *_mem_save_info_0;
12907 if (flags & NDR_IN) {
12908 ZERO_STRUCT(r->out);
12910 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12911 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
12913 if (flags & NDR_OUT) {
12914 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
12915 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12916 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
12917 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
12918 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
12919 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
12921 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
12922 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
12924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
12926 return NDR_ERR_SUCCESS;
12929 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
12931 uint32_t cntr_info_1;
12932 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
12934 if (flags & NDR_SET_VALUES) {
12935 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12937 if (flags & NDR_IN) {
12938 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
12940 ndr_print_ptr(ndr, "servername", r->in.servername);
12942 if (r->in.servername) {
12943 ndr_print_string(ndr, "servername", r->in.servername);
12946 ndr_print_uint32(ndr, "level", r->in.level);
12947 ndr_print_ptr(ndr, "buffer", r->in.buffer);
12949 if (r->in.buffer) {
12950 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
12953 ndr_print_uint32(ndr, "offered", r->in.offered);
12956 if (flags & NDR_OUT) {
12957 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
12959 ndr_print_ptr(ndr, "info", r->out.info);
12962 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count);
12964 for (cntr_info_1=0;cntr_info_1<r->out.count;cntr_info_1++) {
12966 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
12967 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
12968 ndr_print_spoolss_PortInfo(ndr, "info", &r->out.info[cntr_info_1]);
12975 ndr_print_ptr(ndr, "needed", r->out.needed);
12977 ndr_print_uint32(ndr, "needed", *r->out.needed);
12979 ndr_print_uint32(ndr, "count", r->out.count);
12980 ndr_print_WERROR(ndr, "result", r->out.result);
12986 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
12988 if (flags & NDR_IN) {
12989 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
12990 if (r->in.servername) {
12991 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
12992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12993 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
12994 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12997 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
12998 if (r->in.buffer) {
12999 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
13001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
13003 if (flags & NDR_OUT) {
13004 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
13006 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
13008 if (r->out.needed == NULL) {
13009 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
13012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
13013 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13015 return NDR_ERR_SUCCESS;
13018 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
13020 uint32_t _ptr_servername;
13021 uint32_t _ptr_buffer;
13022 uint32_t _ptr_info;
13023 TALLOC_CTX *_mem_save_servername_0;
13024 TALLOC_CTX *_mem_save_buffer_0;
13025 TALLOC_CTX *_mem_save_info_0;
13026 TALLOC_CTX *_mem_save_needed_0;
13027 if (flags & NDR_IN) {
13028 ZERO_STRUCT(r->out);
13030 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
13031 if (_ptr_servername) {
13032 NDR_PULL_ALLOC(ndr, r->in.servername);
13034 r->in.servername = NULL;
13036 if (r->in.servername) {
13037 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
13038 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
13039 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
13040 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
13041 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
13042 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
13044 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
13045 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
13046 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
13048 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13049 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
13051 NDR_PULL_ALLOC(ndr, r->in.buffer);
13053 r->in.buffer = NULL;
13055 if (r->in.buffer) {
13056 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
13057 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
13058 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
13059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
13061 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
13062 NDR_PULL_ALLOC(ndr, r->out.needed);
13063 ZERO_STRUCTP(r->out.needed);
13065 if (flags & NDR_OUT) {
13066 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
13068 NDR_PULL_ALLOC(ndr, r->out.info);
13070 r->out.info = NULL;
13073 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13074 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
13075 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
13076 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
13078 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13079 NDR_PULL_ALLOC(ndr, r->out.needed);
13081 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
13082 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
13083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
13084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
13085 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.count));
13086 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13088 return NDR_ERR_SUCCESS;
13091 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
13093 uint32_t cntr_info_0;
13094 if (flags & NDR_IN) {
13095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13098 if (flags & NDR_OUT) {
13099 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
13100 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
13101 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
13103 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
13104 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
13107 return NDR_ERR_SUCCESS;
13110 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
13112 uint32_t cntr_info_0;
13113 TALLOC_CTX *_mem_save_info_0;
13114 if (flags & NDR_IN) {
13115 ZERO_STRUCT(r->out);
13117 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
13120 if (flags & NDR_OUT) {
13121 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
13122 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13123 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
13124 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
13125 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
13126 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
13128 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
13129 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
13131 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
13133 return NDR_ERR_SUCCESS;
13136 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
13138 uint32_t cntr_info_1;
13139 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
13141 if (flags & NDR_SET_VALUES) {
13142 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13144 if (flags & NDR_IN) {
13145 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
13147 ndr_print_ptr(ndr, "servername", r->in.servername);
13149 if (r->in.servername) {
13150 ndr_print_string(ndr, "servername", r->in.servername);
13153 ndr_print_uint32(ndr, "level", r->in.level);
13154 ndr_print_ptr(ndr, "buffer", r->in.buffer);
13156 if (r->in.buffer) {
13157 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
13160 ndr_print_uint32(ndr, "offered", r->in.offered);
13163 if (flags & NDR_OUT) {
13164 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
13166 ndr_print_ptr(ndr, "info", r->out.info);
13169 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count);
13171 for (cntr_info_1=0;cntr_info_1<r->out.count;cntr_info_1++) {
13173 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
13174 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
13175 ndr_print_spoolss_MonitorInfo(ndr, "info", &r->out.info[cntr_info_1]);
13182 ndr_print_ptr(ndr, "needed", r->out.needed);
13184 ndr_print_uint32(ndr, "needed", *r->out.needed);
13186 ndr_print_uint32(ndr, "count", r->out.count);
13187 ndr_print_WERROR(ndr, "result", r->out.result);
13193 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
13195 if (flags & NDR_IN) {
13196 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13197 if (r->in.server_name) {
13198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13201 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));
13203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
13204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
13205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
13207 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));
13209 if (flags & NDR_OUT) {
13210 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13212 return NDR_ERR_SUCCESS;
13215 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
13217 uint32_t _ptr_server_name;
13218 TALLOC_CTX *_mem_save_server_name_0;
13219 if (flags & NDR_IN) {
13220 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13221 if (_ptr_server_name) {
13222 NDR_PULL_ALLOC(ndr, r->in.server_name);
13224 r->in.server_name = NULL;
13226 if (r->in.server_name) {
13227 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13228 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13229 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13230 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13231 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13232 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
13234 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13235 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
13236 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
13239 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
13240 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
13241 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
13242 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.monitor_name), ndr_get_array_length(ndr, &r->in.monitor_name));
13244 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
13245 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.monitor_name, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t), CH_UTF16));
13247 if (flags & NDR_OUT) {
13248 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13250 return NDR_ERR_SUCCESS;
13253 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
13255 ndr_print_struct(ndr, name, "spoolss_AddPort");
13257 if (flags & NDR_SET_VALUES) {
13258 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13260 if (flags & NDR_IN) {
13261 ndr_print_struct(ndr, "in", "spoolss_AddPort");
13263 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13265 if (r->in.server_name) {
13266 ndr_print_string(ndr, "server_name", r->in.server_name);
13269 ndr_print_uint32(ndr, "unknown", r->in.unknown);
13270 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
13273 if (flags & NDR_OUT) {
13274 ndr_print_struct(ndr, "out", "spoolss_AddPort");
13276 ndr_print_WERROR(ndr, "result", r->out.result);
13282 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
13284 if (flags & NDR_IN) {
13286 if (flags & NDR_OUT) {
13287 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13289 return NDR_ERR_SUCCESS;
13292 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
13294 if (flags & NDR_IN) {
13296 if (flags & NDR_OUT) {
13297 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13299 return NDR_ERR_SUCCESS;
13302 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
13304 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
13306 if (flags & NDR_SET_VALUES) {
13307 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13309 if (flags & NDR_IN) {
13310 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
13314 if (flags & NDR_OUT) {
13315 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
13317 ndr_print_WERROR(ndr, "result", r->out.result);
13323 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
13325 if (flags & NDR_IN) {
13327 if (flags & NDR_OUT) {
13328 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13330 return NDR_ERR_SUCCESS;
13333 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
13335 if (flags & NDR_IN) {
13337 if (flags & NDR_OUT) {
13338 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13340 return NDR_ERR_SUCCESS;
13343 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
13345 ndr_print_struct(ndr, name, "spoolss_DeletePort");
13347 if (flags & NDR_SET_VALUES) {
13348 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13350 if (flags & NDR_IN) {
13351 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
13355 if (flags & NDR_OUT) {
13356 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
13358 ndr_print_WERROR(ndr, "result", r->out.result);
13364 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
13366 if (flags & NDR_IN) {
13368 if (flags & NDR_OUT) {
13369 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13371 return NDR_ERR_SUCCESS;
13374 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
13376 if (flags & NDR_IN) {
13378 if (flags & NDR_OUT) {
13379 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13381 return NDR_ERR_SUCCESS;
13384 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
13386 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
13388 if (flags & NDR_SET_VALUES) {
13389 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13391 if (flags & NDR_IN) {
13392 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
13396 if (flags & NDR_OUT) {
13397 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
13399 ndr_print_WERROR(ndr, "result", r->out.result);
13405 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
13407 if (flags & NDR_IN) {
13409 if (flags & NDR_OUT) {
13410 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13412 return NDR_ERR_SUCCESS;
13415 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
13417 if (flags & NDR_IN) {
13419 if (flags & NDR_OUT) {
13420 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13422 return NDR_ERR_SUCCESS;
13425 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
13427 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
13429 if (flags & NDR_SET_VALUES) {
13430 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13432 if (flags & NDR_IN) {
13433 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
13437 if (flags & NDR_OUT) {
13438 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
13440 ndr_print_WERROR(ndr, "result", r->out.result);
13446 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
13448 if (flags & NDR_IN) {
13450 if (flags & NDR_OUT) {
13451 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13453 return NDR_ERR_SUCCESS;
13456 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
13458 if (flags & NDR_IN) {
13460 if (flags & NDR_OUT) {
13461 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13463 return NDR_ERR_SUCCESS;
13466 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
13468 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
13470 if (flags & NDR_SET_VALUES) {
13471 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13473 if (flags & NDR_IN) {
13474 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
13478 if (flags & NDR_OUT) {
13479 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
13481 ndr_print_WERROR(ndr, "result", r->out.result);
13487 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
13489 if (flags & NDR_IN) {
13491 if (flags & NDR_OUT) {
13492 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13494 return NDR_ERR_SUCCESS;
13497 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
13499 if (flags & NDR_IN) {
13501 if (flags & NDR_OUT) {
13502 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13504 return NDR_ERR_SUCCESS;
13507 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
13509 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
13511 if (flags & NDR_SET_VALUES) {
13512 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13514 if (flags & NDR_IN) {
13515 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
13519 if (flags & NDR_OUT) {
13520 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
13522 ndr_print_WERROR(ndr, "result", r->out.result);
13528 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
13530 if (flags & NDR_IN) {
13532 if (flags & NDR_OUT) {
13533 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13535 return NDR_ERR_SUCCESS;
13538 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
13540 if (flags & NDR_IN) {
13542 if (flags & NDR_OUT) {
13543 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13545 return NDR_ERR_SUCCESS;
13548 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
13550 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
13552 if (flags & NDR_SET_VALUES) {
13553 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13555 if (flags & NDR_IN) {
13556 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
13560 if (flags & NDR_OUT) {
13561 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
13563 ndr_print_WERROR(ndr, "result", r->out.result);
13569 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
13571 if (flags & NDR_IN) {
13573 if (flags & NDR_OUT) {
13574 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13576 return NDR_ERR_SUCCESS;
13579 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
13581 if (flags & NDR_IN) {
13583 if (flags & NDR_OUT) {
13584 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13586 return NDR_ERR_SUCCESS;
13589 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
13591 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
13593 if (flags & NDR_SET_VALUES) {
13594 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13596 if (flags & NDR_IN) {
13597 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
13601 if (flags & NDR_OUT) {
13602 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
13604 ndr_print_WERROR(ndr, "result", r->out.result);
13610 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
13612 if (flags & NDR_IN) {
13614 if (flags & NDR_OUT) {
13615 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13617 return NDR_ERR_SUCCESS;
13620 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
13622 if (flags & NDR_IN) {
13624 if (flags & NDR_OUT) {
13625 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13627 return NDR_ERR_SUCCESS;
13630 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
13632 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
13634 if (flags & NDR_SET_VALUES) {
13635 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13637 if (flags & NDR_IN) {
13638 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
13642 if (flags & NDR_OUT) {
13643 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
13645 ndr_print_WERROR(ndr, "result", r->out.result);
13651 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
13653 if (flags & NDR_IN) {
13655 if (flags & NDR_OUT) {
13656 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13658 return NDR_ERR_SUCCESS;
13661 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
13663 if (flags & NDR_IN) {
13665 if (flags & NDR_OUT) {
13666 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13668 return NDR_ERR_SUCCESS;
13671 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
13673 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
13675 if (flags & NDR_SET_VALUES) {
13676 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13678 if (flags & NDR_IN) {
13679 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
13683 if (flags & NDR_OUT) {
13684 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
13686 ndr_print_WERROR(ndr, "result", r->out.result);
13692 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
13694 if (flags & NDR_IN) {
13696 if (flags & NDR_OUT) {
13697 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13699 return NDR_ERR_SUCCESS;
13702 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
13704 if (flags & NDR_IN) {
13706 if (flags & NDR_OUT) {
13707 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13709 return NDR_ERR_SUCCESS;
13712 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
13714 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
13716 if (flags & NDR_SET_VALUES) {
13717 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13719 if (flags & NDR_IN) {
13720 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
13724 if (flags & NDR_OUT) {
13725 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
13727 ndr_print_WERROR(ndr, "result", r->out.result);
13733 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
13735 if (flags & NDR_IN) {
13737 if (flags & NDR_OUT) {
13738 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13740 return NDR_ERR_SUCCESS;
13743 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
13745 if (flags & NDR_IN) {
13747 if (flags & NDR_OUT) {
13748 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13750 return NDR_ERR_SUCCESS;
13753 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
13755 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
13757 if (flags & NDR_SET_VALUES) {
13758 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13760 if (flags & NDR_IN) {
13761 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
13765 if (flags & NDR_OUT) {
13766 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
13768 ndr_print_WERROR(ndr, "result", r->out.result);
13774 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
13776 if (flags & NDR_IN) {
13778 if (flags & NDR_OUT) {
13779 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13781 return NDR_ERR_SUCCESS;
13784 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
13786 if (flags & NDR_IN) {
13788 if (flags & NDR_OUT) {
13789 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13791 return NDR_ERR_SUCCESS;
13794 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
13796 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
13798 if (flags & NDR_SET_VALUES) {
13799 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13801 if (flags & NDR_IN) {
13802 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
13806 if (flags & NDR_OUT) {
13807 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
13809 ndr_print_WERROR(ndr, "result", r->out.result);
13815 static enum ndr_err_code ndr_push_spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
13817 if (flags & NDR_IN) {
13819 if (flags & NDR_OUT) {
13820 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13822 return NDR_ERR_SUCCESS;
13825 static enum ndr_err_code ndr_pull_spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrintProcDataTypes *r)
13827 if (flags & NDR_IN) {
13829 if (flags & NDR_OUT) {
13830 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13832 return NDR_ERR_SUCCESS;
13835 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
13837 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
13839 if (flags & NDR_SET_VALUES) {
13840 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13842 if (flags & NDR_IN) {
13843 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
13847 if (flags & NDR_OUT) {
13848 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
13850 ndr_print_WERROR(ndr, "result", r->out.result);
13856 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
13858 if (flags & NDR_IN) {
13860 if (flags & NDR_OUT) {
13861 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13863 return NDR_ERR_SUCCESS;
13866 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
13868 if (flags & NDR_IN) {
13870 if (flags & NDR_OUT) {
13871 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13873 return NDR_ERR_SUCCESS;
13876 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
13878 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
13880 if (flags & NDR_SET_VALUES) {
13881 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13883 if (flags & NDR_IN) {
13884 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
13888 if (flags & NDR_OUT) {
13889 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
13891 ndr_print_WERROR(ndr, "result", r->out.result);
13897 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
13899 if (flags & NDR_IN) {
13900 if (r->in.handle == NULL) {
13901 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13903 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
13904 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
13905 if (r->in.architecture) {
13906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
13907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
13909 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13912 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
13913 if (r->in.buffer) {
13914 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
13916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
13917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
13918 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
13920 if (flags & NDR_OUT) {
13921 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
13923 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
13925 if (r->out.needed == NULL) {
13926 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
13929 if (r->out.server_major_version == NULL) {
13930 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13932 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
13933 if (r->out.server_minor_version == NULL) {
13934 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
13937 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13939 return NDR_ERR_SUCCESS;
13942 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
13944 uint32_t _ptr_architecture;
13945 uint32_t _ptr_buffer;
13946 uint32_t _ptr_info;
13947 TALLOC_CTX *_mem_save_handle_0;
13948 TALLOC_CTX *_mem_save_architecture_0;
13949 TALLOC_CTX *_mem_save_buffer_0;
13950 TALLOC_CTX *_mem_save_info_0;
13951 TALLOC_CTX *_mem_save_needed_0;
13952 TALLOC_CTX *_mem_save_server_major_version_0;
13953 TALLOC_CTX *_mem_save_server_minor_version_0;
13954 if (flags & NDR_IN) {
13955 ZERO_STRUCT(r->out);
13957 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13958 NDR_PULL_ALLOC(ndr, r->in.handle);
13960 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13961 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
13962 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
13963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
13964 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13965 if (_ptr_architecture) {
13966 NDR_PULL_ALLOC(ndr, r->in.architecture);
13968 r->in.architecture = NULL;
13970 if (r->in.architecture) {
13971 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13972 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
13973 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
13974 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
13975 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
13976 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
13978 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
13979 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
13980 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13982 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13983 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
13985 NDR_PULL_ALLOC(ndr, r->in.buffer);
13987 r->in.buffer = NULL;
13989 if (r->in.buffer) {
13990 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
13991 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
13992 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
13993 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
13995 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
13996 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
13997 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
13998 NDR_PULL_ALLOC(ndr, r->out.needed);
13999 ZERO_STRUCTP(r->out.needed);
14000 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
14001 ZERO_STRUCTP(r->out.server_major_version);
14002 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
14003 ZERO_STRUCTP(r->out.server_minor_version);
14005 if (flags & NDR_OUT) {
14006 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14008 NDR_PULL_ALLOC(ndr, r->out.info);
14010 r->out.info = NULL;
14013 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14014 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14015 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
14016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14018 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14019 NDR_PULL_ALLOC(ndr, r->out.needed);
14021 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
14022 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
14023 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
14024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
14025 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14026 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
14028 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
14029 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
14030 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
14031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
14032 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14033 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
14035 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
14036 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
14037 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
14038 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
14039 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14041 return NDR_ERR_SUCCESS;
14044 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
14046 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
14048 if (flags & NDR_SET_VALUES) {
14049 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14051 if (flags & NDR_IN) {
14052 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
14054 ndr_print_ptr(ndr, "handle", r->in.handle);
14056 ndr_print_policy_handle(ndr, "handle", r->in.handle);
14058 ndr_print_ptr(ndr, "architecture", r->in.architecture);
14060 if (r->in.architecture) {
14061 ndr_print_string(ndr, "architecture", r->in.architecture);
14064 ndr_print_uint32(ndr, "level", r->in.level);
14065 ndr_print_ptr(ndr, "buffer", r->in.buffer);
14067 if (r->in.buffer) {
14068 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
14071 ndr_print_uint32(ndr, "offered", r->in.offered);
14072 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
14073 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
14076 if (flags & NDR_OUT) {
14077 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
14079 ndr_print_ptr(ndr, "info", r->out.info);
14082 ndr_print_DATA_BLOB(ndr, "info", *r->out.info);
14085 ndr_print_ptr(ndr, "needed", r->out.needed);
14087 ndr_print_uint32(ndr, "needed", *r->out.needed);
14089 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
14091 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
14093 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
14095 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
14097 ndr_print_WERROR(ndr, "result", r->out.result);
14103 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
14105 if (flags & NDR_IN) {
14107 if (flags & NDR_OUT) {
14108 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14110 return NDR_ERR_SUCCESS;
14113 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
14115 if (flags & NDR_IN) {
14117 if (flags & NDR_OUT) {
14118 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14120 return NDR_ERR_SUCCESS;
14123 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
14125 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
14127 if (flags & NDR_SET_VALUES) {
14128 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14130 if (flags & NDR_IN) {
14131 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
14135 if (flags & NDR_OUT) {
14136 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
14138 ndr_print_WERROR(ndr, "result", r->out.result);
14144 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
14146 if (flags & NDR_IN) {
14148 if (flags & NDR_OUT) {
14149 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14151 return NDR_ERR_SUCCESS;
14154 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
14156 if (flags & NDR_IN) {
14158 if (flags & NDR_OUT) {
14159 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14161 return NDR_ERR_SUCCESS;
14164 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
14166 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
14168 if (flags & NDR_SET_VALUES) {
14169 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14171 if (flags & NDR_IN) {
14172 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
14176 if (flags & NDR_OUT) {
14177 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
14179 ndr_print_WERROR(ndr, "result", r->out.result);
14185 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
14187 if (flags & NDR_IN) {
14188 if (r->in.handle == NULL) {
14189 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14191 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14193 if (flags & NDR_OUT) {
14194 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14196 return NDR_ERR_SUCCESS;
14199 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
14201 TALLOC_CTX *_mem_save_handle_0;
14202 if (flags & NDR_IN) {
14203 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14204 NDR_PULL_ALLOC(ndr, r->in.handle);
14206 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14207 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14208 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14209 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14211 if (flags & NDR_OUT) {
14212 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14214 return NDR_ERR_SUCCESS;
14217 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
14219 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
14221 if (flags & NDR_SET_VALUES) {
14222 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14224 if (flags & NDR_IN) {
14225 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
14227 ndr_print_ptr(ndr, "handle", r->in.handle);
14229 ndr_print_policy_handle(ndr, "handle", r->in.handle);
14233 if (flags & NDR_OUT) {
14234 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
14236 ndr_print_WERROR(ndr, "result", r->out.result);
14242 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
14244 if (flags & NDR_IN) {
14246 if (flags & NDR_OUT) {
14247 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14249 return NDR_ERR_SUCCESS;
14252 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
14254 if (flags & NDR_IN) {
14256 if (flags & NDR_OUT) {
14257 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14259 return NDR_ERR_SUCCESS;
14262 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
14264 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
14266 if (flags & NDR_SET_VALUES) {
14267 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14269 if (flags & NDR_IN) {
14270 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
14274 if (flags & NDR_OUT) {
14275 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
14277 ndr_print_WERROR(ndr, "result", r->out.result);
14283 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
14285 if (flags & NDR_IN) {
14286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14287 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14288 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14289 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));
14290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
14291 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
14292 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown1));
14293 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown2));
14295 if (flags & NDR_OUT) {
14296 if (r->out.handle == NULL) {
14297 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14299 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
14300 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14302 return NDR_ERR_SUCCESS;
14305 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
14307 TALLOC_CTX *_mem_save_handle_0;
14308 if (flags & NDR_IN) {
14309 ZERO_STRUCT(r->out);
14311 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14312 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14313 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14314 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
14316 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14317 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
14318 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
14319 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
14320 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown1));
14321 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown2));
14322 NDR_PULL_ALLOC(ndr, r->out.handle);
14323 ZERO_STRUCTP(r->out.handle);
14325 if (flags & NDR_OUT) {
14326 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14327 NDR_PULL_ALLOC(ndr, r->out.handle);
14329 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14330 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
14331 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
14332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14333 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14335 return NDR_ERR_SUCCESS;
14338 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
14340 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
14342 if (flags & NDR_SET_VALUES) {
14343 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14345 if (flags & NDR_IN) {
14346 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
14348 ndr_print_string(ndr, "server_name", r->in.server_name);
14349 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
14350 ndr_print_winreg_Type(ndr, "type", r->in.type);
14351 ndr_print_uint32(ndr, "unknown1", r->in.unknown1);
14352 ndr_print_uint32(ndr, "unknown2", r->in.unknown2);
14355 if (flags & NDR_OUT) {
14356 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
14358 ndr_print_ptr(ndr, "handle", r->out.handle);
14360 ndr_print_policy_handle(ndr, "handle", r->out.handle);
14362 ndr_print_WERROR(ndr, "result", r->out.result);
14368 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
14370 if (flags & NDR_IN) {
14371 if (r->in.handle == NULL) {
14372 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14374 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14375 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
14376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
14377 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
14378 if (r->in.buffer) {
14379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
14380 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
14383 if (flags & NDR_OUT) {
14384 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14386 return NDR_ERR_SUCCESS;
14389 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
14391 uint32_t _ptr_buffer;
14392 TALLOC_CTX *_mem_save_handle_0;
14393 TALLOC_CTX *_mem_save_buffer_0;
14394 if (flags & NDR_IN) {
14395 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14396 NDR_PULL_ALLOC(ndr, r->in.handle);
14398 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14399 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14400 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14402 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
14403 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
14404 if (r->in.bufsize > 512) {
14405 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
14407 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
14409 NDR_PULL_ALLOC(ndr, r->in.buffer);
14411 r->in.buffer = NULL;
14413 if (r->in.buffer) {
14414 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
14415 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
14416 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
14417 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
14418 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
14419 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
14421 if (r->in.buffer) {
14422 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
14425 if (flags & NDR_OUT) {
14426 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14428 return NDR_ERR_SUCCESS;
14431 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
14433 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
14435 if (flags & NDR_SET_VALUES) {
14436 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14438 if (flags & NDR_IN) {
14439 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
14441 ndr_print_ptr(ndr, "handle", r->in.handle);
14443 ndr_print_policy_handle(ndr, "handle", r->in.handle);
14445 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
14446 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
14447 ndr_print_ptr(ndr, "buffer", r->in.buffer);
14449 if (r->in.buffer) {
14450 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
14455 if (flags & NDR_OUT) {
14456 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
14458 ndr_print_WERROR(ndr, "result", r->out.result);
14464 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
14466 if (flags & NDR_IN) {
14467 if (r->in.handle == NULL) {
14468 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14470 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14472 if (flags & NDR_OUT) {
14473 if (r->out.handle == NULL) {
14474 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14476 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
14477 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14479 return NDR_ERR_SUCCESS;
14482 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
14484 TALLOC_CTX *_mem_save_handle_0;
14485 if (flags & NDR_IN) {
14486 ZERO_STRUCT(r->out);
14488 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14489 NDR_PULL_ALLOC(ndr, r->in.handle);
14491 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14492 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14493 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14494 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14495 NDR_PULL_ALLOC(ndr, r->out.handle);
14496 *r->out.handle = *r->in.handle;
14498 if (flags & NDR_OUT) {
14499 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14500 NDR_PULL_ALLOC(ndr, r->out.handle);
14502 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14503 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
14504 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
14505 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14506 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14508 return NDR_ERR_SUCCESS;
14511 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
14513 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
14515 if (flags & NDR_SET_VALUES) {
14516 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14518 if (flags & NDR_IN) {
14519 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
14521 ndr_print_ptr(ndr, "handle", r->in.handle);
14523 ndr_print_policy_handle(ndr, "handle", r->in.handle);
14527 if (flags & NDR_OUT) {
14528 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
14530 ndr_print_ptr(ndr, "handle", r->out.handle);
14532 ndr_print_policy_handle(ndr, "handle", r->out.handle);
14534 ndr_print_WERROR(ndr, "result", r->out.result);
14540 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
14542 if (flags & NDR_IN) {
14544 if (flags & NDR_OUT) {
14545 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14547 return NDR_ERR_SUCCESS;
14550 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
14552 if (flags & NDR_IN) {
14554 if (flags & NDR_OUT) {
14555 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14557 return NDR_ERR_SUCCESS;
14560 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
14562 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
14564 if (flags & NDR_SET_VALUES) {
14565 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14567 if (flags & NDR_IN) {
14568 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
14572 if (flags & NDR_OUT) {
14573 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
14575 ndr_print_WERROR(ndr, "result", r->out.result);
14581 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
14583 if (flags & NDR_IN) {
14585 if (flags & NDR_OUT) {
14586 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14588 return NDR_ERR_SUCCESS;
14591 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
14593 if (flags & NDR_IN) {
14595 if (flags & NDR_OUT) {
14596 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14598 return NDR_ERR_SUCCESS;
14601 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
14603 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
14605 if (flags & NDR_SET_VALUES) {
14606 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14608 if (flags & NDR_IN) {
14609 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
14613 if (flags & NDR_OUT) {
14614 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
14616 ndr_print_WERROR(ndr, "result", r->out.result);
14622 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
14624 if (flags & NDR_IN) {
14626 if (flags & NDR_OUT) {
14627 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14629 return NDR_ERR_SUCCESS;
14632 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
14634 if (flags & NDR_IN) {
14636 if (flags & NDR_OUT) {
14637 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14639 return NDR_ERR_SUCCESS;
14642 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
14644 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
14646 if (flags & NDR_SET_VALUES) {
14647 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14649 if (flags & NDR_IN) {
14650 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
14654 if (flags & NDR_OUT) {
14655 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
14657 ndr_print_WERROR(ndr, "result", r->out.result);
14663 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
14665 if (flags & NDR_IN) {
14667 if (flags & NDR_OUT) {
14668 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14670 return NDR_ERR_SUCCESS;
14673 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
14675 if (flags & NDR_IN) {
14677 if (flags & NDR_OUT) {
14678 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14680 return NDR_ERR_SUCCESS;
14683 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
14685 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
14687 if (flags & NDR_SET_VALUES) {
14688 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14690 if (flags & NDR_IN) {
14691 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
14695 if (flags & NDR_OUT) {
14696 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
14698 ndr_print_WERROR(ndr, "result", r->out.result);
14704 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
14706 if (flags & NDR_IN) {
14707 if (r->in.handle == NULL) {
14708 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14710 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
14713 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.str));
14715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.str, CH_UTF16)));
14716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.str, CH_UTF16)));
14718 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.str, ndr_charset_length(r->in.str, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
14721 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.t1));
14723 NDR_CHECK(ndr_push_spoolss_NotifyOptionsContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.t1));
14726 if (flags & NDR_OUT) {
14727 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14729 return NDR_ERR_SUCCESS;
14732 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
14736 TALLOC_CTX *_mem_save_handle_0;
14737 TALLOC_CTX *_mem_save_str_0;
14738 TALLOC_CTX *_mem_save_t1_0;
14739 if (flags & NDR_IN) {
14740 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14741 NDR_PULL_ALLOC(ndr, r->in.handle);
14743 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14744 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14745 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14746 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14747 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14748 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
14749 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_str));
14751 NDR_PULL_ALLOC(ndr, r->in.str);
14756 _mem_save_str_0 = NDR_PULL_GET_MEM_CTX(ndr);
14757 NDR_PULL_SET_MEM_CTX(ndr, r->in.str, 0);
14758 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.str));
14759 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.str));
14760 if (ndr_get_array_length(ndr, &r->in.str) > ndr_get_array_size(ndr, &r->in.str)) {
14761 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.str), ndr_get_array_length(ndr, &r->in.str));
14763 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.str), sizeof(uint16_t)));
14764 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.str, ndr_get_array_length(ndr, &r->in.str), sizeof(uint16_t), CH_UTF16));
14765 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_str_0, 0);
14767 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
14768 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_t1));
14770 NDR_PULL_ALLOC(ndr, r->in.t1);
14775 _mem_save_t1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14776 NDR_PULL_SET_MEM_CTX(ndr, r->in.t1, 0);
14777 NDR_CHECK(ndr_pull_spoolss_NotifyOptionsContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.t1));
14778 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_t1_0, 0);
14781 if (flags & NDR_OUT) {
14782 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14784 return NDR_ERR_SUCCESS;
14787 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
14789 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
14791 if (flags & NDR_SET_VALUES) {
14792 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14794 if (flags & NDR_IN) {
14795 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
14797 ndr_print_ptr(ndr, "handle", r->in.handle);
14799 ndr_print_policy_handle(ndr, "handle", r->in.handle);
14801 ndr_print_uint32(ndr, "flags", r->in.flags);
14802 ndr_print_uint32(ndr, "options", r->in.options);
14803 ndr_print_ptr(ndr, "str", r->in.str);
14806 ndr_print_string(ndr, "str", r->in.str);
14809 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
14810 ndr_print_ptr(ndr, "t1", r->in.t1);
14813 ndr_print_spoolss_NotifyOptionsContainer(ndr, "t1", r->in.t1);
14818 if (flags & NDR_OUT) {
14819 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
14821 ndr_print_WERROR(ndr, "result", r->out.result);
14827 static enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotification *r)
14829 if (flags & NDR_IN) {
14831 if (flags & NDR_OUT) {
14832 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14834 return NDR_ERR_SUCCESS;
14837 static enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotification *r)
14839 if (flags & NDR_IN) {
14841 if (flags & NDR_OUT) {
14842 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14844 return NDR_ERR_SUCCESS;
14847 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotification *r)
14849 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotification");
14851 if (flags & NDR_SET_VALUES) {
14852 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14854 if (flags & NDR_IN) {
14855 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotification");
14859 if (flags & NDR_OUT) {
14860 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotification");
14862 ndr_print_WERROR(ndr, "result", r->out.result);
14868 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindNextPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindNextPrinterChangeNotifyEx *r)
14870 if (flags & NDR_IN) {
14871 if (r->in.handle == NULL) {
14872 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14874 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
14876 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.container));
14877 if (r->in.container) {
14878 NDR_CHECK(ndr_push_spoolss_NotifyOptionsContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.container));
14881 if (flags & NDR_OUT) {
14882 if (r->out.info == NULL) {
14883 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14885 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
14886 if (*r->out.info) {
14887 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
14889 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14891 return NDR_ERR_SUCCESS;
14894 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindNextPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindNextPrinterChangeNotifyEx *r)
14896 uint32_t _ptr_container;
14897 uint32_t _ptr_info;
14898 TALLOC_CTX *_mem_save_handle_0;
14899 TALLOC_CTX *_mem_save_container_0;
14900 TALLOC_CTX *_mem_save_info_0;
14901 TALLOC_CTX *_mem_save_info_1;
14902 if (flags & NDR_IN) {
14903 ZERO_STRUCT(r->out);
14905 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14906 NDR_PULL_ALLOC(ndr, r->in.handle);
14908 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14909 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14910 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14912 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
14913 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_container));
14914 if (_ptr_container) {
14915 NDR_PULL_ALLOC(ndr, r->in.container);
14917 r->in.container = NULL;
14919 if (r->in.container) {
14920 _mem_save_container_0 = NDR_PULL_GET_MEM_CTX(ndr);
14921 NDR_PULL_SET_MEM_CTX(ndr, r->in.container, 0);
14922 NDR_CHECK(ndr_pull_spoolss_NotifyOptionsContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.container));
14923 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_container_0, 0);
14925 NDR_PULL_ALLOC(ndr, r->out.info);
14926 ZERO_STRUCTP(r->out.info);
14928 if (flags & NDR_OUT) {
14929 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14930 NDR_PULL_ALLOC(ndr, r->out.info);
14932 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14933 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
14934 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14936 NDR_PULL_ALLOC(ndr, *r->out.info);
14938 *r->out.info = NULL;
14940 if (*r->out.info) {
14941 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14942 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
14943 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
14944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
14946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
14947 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14949 return NDR_ERR_SUCCESS;
14952 _PUBLIC_ void ndr_print_spoolss_RemoteFindNextPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindNextPrinterChangeNotifyEx *r)
14954 ndr_print_struct(ndr, name, "spoolss_RemoteFindNextPrinterChangeNotifyEx");
14956 if (flags & NDR_SET_VALUES) {
14957 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14959 if (flags & NDR_IN) {
14960 ndr_print_struct(ndr, "in", "spoolss_RemoteFindNextPrinterChangeNotifyEx");
14962 ndr_print_ptr(ndr, "handle", r->in.handle);
14964 ndr_print_policy_handle(ndr, "handle", r->in.handle);
14966 ndr_print_uint32(ndr, "change_low", r->in.change_low);
14967 ndr_print_ptr(ndr, "container", r->in.container);
14969 if (r->in.container) {
14970 ndr_print_spoolss_NotifyOptionsContainer(ndr, "container", r->in.container);
14975 if (flags & NDR_OUT) {
14976 ndr_print_struct(ndr, "out", "spoolss_RemoteFindNextPrinterChangeNotifyEx");
14978 ndr_print_ptr(ndr, "info", r->out.info);
14980 ndr_print_ptr(ndr, "info", *r->out.info);
14982 if (*r->out.info) {
14983 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
14987 ndr_print_WERROR(ndr, "result", r->out.result);
14993 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
14995 if (flags & NDR_IN) {
14997 if (flags & NDR_OUT) {
14998 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15000 return NDR_ERR_SUCCESS;
15003 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
15005 if (flags & NDR_IN) {
15007 if (flags & NDR_OUT) {
15008 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15010 return NDR_ERR_SUCCESS;
15013 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
15015 ndr_print_struct(ndr, name, "spoolss_44");
15017 if (flags & NDR_SET_VALUES) {
15018 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15020 if (flags & NDR_IN) {
15021 ndr_print_struct(ndr, "in", "spoolss_44");
15025 if (flags & NDR_OUT) {
15026 ndr_print_struct(ndr, "out", "spoolss_44");
15028 ndr_print_WERROR(ndr, "result", r->out.result);
15034 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
15036 if (flags & NDR_IN) {
15037 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
15038 if (r->in.printername) {
15039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
15040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
15042 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15044 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
15045 if (r->in.datatype) {
15046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
15047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
15049 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15051 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
15052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.access_mask));
15053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15054 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
15055 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
15057 if (flags & NDR_OUT) {
15058 if (r->out.handle == NULL) {
15059 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15061 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
15062 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15064 return NDR_ERR_SUCCESS;
15067 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
15069 uint32_t _ptr_printername;
15070 uint32_t _ptr_datatype;
15071 TALLOC_CTX *_mem_save_printername_0;
15072 TALLOC_CTX *_mem_save_datatype_0;
15073 TALLOC_CTX *_mem_save_handle_0;
15074 if (flags & NDR_IN) {
15075 ZERO_STRUCT(r->out);
15077 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
15078 if (_ptr_printername) {
15079 NDR_PULL_ALLOC(ndr, r->in.printername);
15081 r->in.printername = NULL;
15083 if (r->in.printername) {
15084 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
15085 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
15086 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
15087 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
15088 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
15089 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.printername), ndr_get_array_length(ndr, &r->in.printername));
15091 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
15092 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
15093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
15095 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
15096 if (_ptr_datatype) {
15097 NDR_PULL_ALLOC(ndr, r->in.datatype);
15099 r->in.datatype = NULL;
15101 if (r->in.datatype) {
15102 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15103 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
15104 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
15105 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
15106 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
15107 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.datatype), ndr_get_array_length(ndr, &r->in.datatype));
15109 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
15110 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
15111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
15113 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
15114 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.access_mask));
15115 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15116 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
15117 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
15118 NDR_PULL_ALLOC(ndr, r->out.handle);
15119 ZERO_STRUCTP(r->out.handle);
15121 if (flags & NDR_OUT) {
15122 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15123 NDR_PULL_ALLOC(ndr, r->out.handle);
15125 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15126 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
15127 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
15128 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15129 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15131 return NDR_ERR_SUCCESS;
15134 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
15136 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
15138 if (flags & NDR_SET_VALUES) {
15139 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15141 if (flags & NDR_IN) {
15142 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
15144 ndr_print_ptr(ndr, "printername", r->in.printername);
15146 if (r->in.printername) {
15147 ndr_print_string(ndr, "printername", r->in.printername);
15150 ndr_print_ptr(ndr, "datatype", r->in.datatype);
15152 if (r->in.datatype) {
15153 ndr_print_string(ndr, "datatype", r->in.datatype);
15156 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
15157 ndr_print_uint32(ndr, "access_mask", r->in.access_mask);
15158 ndr_print_uint32(ndr, "level", r->in.level);
15159 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
15160 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
15163 if (flags & NDR_OUT) {
15164 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
15166 ndr_print_ptr(ndr, "handle", r->out.handle);
15168 ndr_print_policy_handle(ndr, "handle", r->out.handle);
15170 ndr_print_WERROR(ndr, "result", r->out.result);
15176 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
15178 if (flags & NDR_IN) {
15179 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
15180 if (r->in.server) {
15181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15182 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15183 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15184 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15186 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.info));
15189 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.info, r->in.level));
15190 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
15192 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
15193 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.secdesc));
15194 if (r->in.secdesc) {
15195 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
15197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.ulevel));
15198 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.ulevel));
15199 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
15201 if (flags & NDR_OUT) {
15202 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15204 return NDR_ERR_SUCCESS;
15207 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
15209 uint32_t _ptr_server;
15210 uint32_t _ptr_info;
15211 uint32_t _ptr_secdesc;
15212 TALLOC_CTX *_mem_save_server_0;
15213 TALLOC_CTX *_mem_save_info_0;
15214 TALLOC_CTX *_mem_save_secdesc_0;
15215 if (flags & NDR_IN) {
15216 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
15218 NDR_PULL_ALLOC(ndr, r->in.server);
15220 r->in.server = NULL;
15222 if (r->in.server) {
15223 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
15224 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
15225 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
15226 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
15227 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
15228 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
15230 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
15231 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
15232 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
15234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15237 NDR_PULL_ALLOC(ndr, r->in.info);
15242 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15243 NDR_PULL_SET_MEM_CTX(ndr, r->in.info, 0);
15244 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.info, r->in.level));
15245 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info));
15246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15248 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
15249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
15250 if (_ptr_secdesc) {
15251 NDR_PULL_ALLOC(ndr, r->in.secdesc);
15253 r->in.secdesc = NULL;
15255 if (r->in.secdesc) {
15256 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
15257 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc, 0);
15258 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc));
15259 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
15261 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.ulevel));
15262 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.ulevel));
15263 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
15265 if (flags & NDR_OUT) {
15266 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15268 return NDR_ERR_SUCCESS;
15271 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
15273 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
15275 if (flags & NDR_SET_VALUES) {
15276 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15278 if (flags & NDR_IN) {
15279 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
15281 ndr_print_ptr(ndr, "server", r->in.server);
15283 if (r->in.server) {
15284 ndr_print_string(ndr, "server", r->in.server);
15287 ndr_print_uint32(ndr, "level", r->in.level);
15288 ndr_print_ptr(ndr, "info", r->in.info);
15291 ndr_print_set_switch_value(ndr, r->in.info, r->in.level);
15292 ndr_print_spoolss_PrinterInfo(ndr, "info", r->in.info);
15295 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
15296 ndr_print_ptr(ndr, "secdesc", r->in.secdesc);
15298 if (r->in.secdesc) {
15299 ndr_print_security_descriptor(ndr, "secdesc", r->in.secdesc);
15302 ndr_print_uint32(ndr, "ulevel", r->in.ulevel);
15303 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.ulevel);
15304 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
15307 if (flags & NDR_OUT) {
15308 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
15310 ndr_print_WERROR(ndr, "result", r->out.result);
15316 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
15318 if (flags & NDR_IN) {
15320 if (flags & NDR_OUT) {
15321 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15323 return NDR_ERR_SUCCESS;
15326 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
15328 if (flags & NDR_IN) {
15330 if (flags & NDR_OUT) {
15331 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15333 return NDR_ERR_SUCCESS;
15336 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
15338 ndr_print_struct(ndr, name, "spoolss_47");
15340 if (flags & NDR_SET_VALUES) {
15341 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15343 if (flags & NDR_IN) {
15344 ndr_print_struct(ndr, "in", "spoolss_47");
15348 if (flags & NDR_OUT) {
15349 ndr_print_struct(ndr, "out", "spoolss_47");
15351 ndr_print_WERROR(ndr, "result", r->out.result);
15357 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
15359 if (flags & NDR_IN) {
15360 if (r->in.handle == NULL) {
15361 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15363 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
15365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
15366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
15368 if (flags & NDR_OUT) {
15369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
15370 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
15371 if (r->out.value_needed == NULL) {
15372 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
15375 if (r->out.printerdata_type == NULL) {
15376 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.printerdata_type));
15379 if (r->out.buffer == NULL) {
15380 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15382 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.buffer));
15383 if (r->out.data_needed == NULL) {
15384 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
15387 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15389 return NDR_ERR_SUCCESS;
15392 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
15394 TALLOC_CTX *_mem_save_handle_0;
15395 TALLOC_CTX *_mem_save_value_needed_0;
15396 TALLOC_CTX *_mem_save_printerdata_type_0;
15397 TALLOC_CTX *_mem_save_buffer_0;
15398 TALLOC_CTX *_mem_save_data_needed_0;
15399 if (flags & NDR_IN) {
15400 ZERO_STRUCT(r->out);
15402 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15403 NDR_PULL_ALLOC(ndr, r->in.handle);
15405 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15406 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15407 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
15410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
15411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
15412 NDR_PULL_ALLOC(ndr, r->out.value_needed);
15413 ZERO_STRUCTP(r->out.value_needed);
15414 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
15415 ZERO_STRUCTP(r->out.printerdata_type);
15416 NDR_PULL_ALLOC(ndr, r->out.buffer);
15417 ZERO_STRUCTP(r->out.buffer);
15418 NDR_PULL_ALLOC(ndr, r->out.data_needed);
15419 ZERO_STRUCTP(r->out.data_needed);
15421 if (flags & NDR_OUT) {
15422 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
15423 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.value_name, ndr_get_array_size(ndr, &r->out.value_name), sizeof(uint16_t), CH_UTF16));
15424 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15425 NDR_PULL_ALLOC(ndr, r->out.value_needed);
15427 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15428 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
15429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
15430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
15431 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15432 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
15434 _mem_save_printerdata_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
15435 NDR_PULL_SET_MEM_CTX(ndr, r->out.printerdata_type, LIBNDR_FLAG_REF_ALLOC);
15436 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.printerdata_type));
15437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printerdata_type_0, LIBNDR_FLAG_REF_ALLOC);
15438 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15439 NDR_PULL_ALLOC(ndr, r->out.buffer);
15441 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15442 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
15443 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.buffer));
15444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
15445 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15446 NDR_PULL_ALLOC(ndr, r->out.data_needed);
15448 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15449 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
15450 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
15451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
15452 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15453 if (r->out.value_name) {
15454 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
15457 return NDR_ERR_SUCCESS;
15460 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
15462 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
15464 if (flags & NDR_SET_VALUES) {
15465 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15467 if (flags & NDR_IN) {
15468 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
15470 ndr_print_ptr(ndr, "handle", r->in.handle);
15472 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15474 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
15475 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
15476 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
15479 if (flags & NDR_OUT) {
15480 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
15482 ndr_print_string(ndr, "value_name", r->out.value_name);
15483 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
15485 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
15487 ndr_print_ptr(ndr, "printerdata_type", r->out.printerdata_type);
15489 ndr_print_uint32(ndr, "printerdata_type", *r->out.printerdata_type);
15491 ndr_print_ptr(ndr, "buffer", r->out.buffer);
15493 ndr_print_DATA_BLOB(ndr, "buffer", *r->out.buffer);
15495 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
15497 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
15499 ndr_print_WERROR(ndr, "result", r->out.result);
15505 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
15507 if (flags & NDR_IN) {
15508 if (r->in.handle == NULL) {
15509 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15511 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
15513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
15515 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));
15517 if (flags & NDR_OUT) {
15518 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15520 return NDR_ERR_SUCCESS;
15523 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
15525 TALLOC_CTX *_mem_save_handle_0;
15526 if (flags & NDR_IN) {
15527 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15528 NDR_PULL_ALLOC(ndr, r->in.handle);
15530 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15531 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15532 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15534 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
15535 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
15536 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
15537 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
15539 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
15540 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
15542 if (flags & NDR_OUT) {
15543 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15545 return NDR_ERR_SUCCESS;
15548 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
15550 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
15552 if (flags & NDR_SET_VALUES) {
15553 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15555 if (flags & NDR_IN) {
15556 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
15558 ndr_print_ptr(ndr, "handle", r->in.handle);
15560 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15562 ndr_print_string(ndr, "value_name", r->in.value_name);
15565 if (flags & NDR_OUT) {
15566 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
15568 ndr_print_WERROR(ndr, "result", r->out.result);
15574 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
15576 if (flags & NDR_IN) {
15578 if (flags & NDR_OUT) {
15579 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15581 return NDR_ERR_SUCCESS;
15584 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
15586 if (flags & NDR_IN) {
15588 if (flags & NDR_OUT) {
15589 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15591 return NDR_ERR_SUCCESS;
15594 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
15596 ndr_print_struct(ndr, name, "spoolss_4a");
15598 if (flags & NDR_SET_VALUES) {
15599 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15601 if (flags & NDR_IN) {
15602 ndr_print_struct(ndr, "in", "spoolss_4a");
15606 if (flags & NDR_OUT) {
15607 ndr_print_struct(ndr, "out", "spoolss_4a");
15609 ndr_print_WERROR(ndr, "result", r->out.result);
15615 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
15617 if (flags & NDR_IN) {
15619 if (flags & NDR_OUT) {
15620 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15622 return NDR_ERR_SUCCESS;
15625 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
15627 if (flags & NDR_IN) {
15629 if (flags & NDR_OUT) {
15630 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15632 return NDR_ERR_SUCCESS;
15635 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
15637 ndr_print_struct(ndr, name, "spoolss_4b");
15639 if (flags & NDR_SET_VALUES) {
15640 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15642 if (flags & NDR_IN) {
15643 ndr_print_struct(ndr, "in", "spoolss_4b");
15647 if (flags & NDR_OUT) {
15648 ndr_print_struct(ndr, "out", "spoolss_4b");
15650 ndr_print_WERROR(ndr, "result", r->out.result);
15656 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
15658 if (flags & NDR_IN) {
15660 if (flags & NDR_OUT) {
15661 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15663 return NDR_ERR_SUCCESS;
15666 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
15668 if (flags & NDR_IN) {
15670 if (flags & NDR_OUT) {
15671 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15673 return NDR_ERR_SUCCESS;
15676 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
15678 ndr_print_struct(ndr, name, "spoolss_4c");
15680 if (flags & NDR_SET_VALUES) {
15681 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15683 if (flags & NDR_IN) {
15684 ndr_print_struct(ndr, "in", "spoolss_4c");
15688 if (flags & NDR_OUT) {
15689 ndr_print_struct(ndr, "out", "spoolss_4c");
15691 ndr_print_WERROR(ndr, "result", r->out.result);
15697 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
15699 if (flags & NDR_IN) {
15700 if (r->in.handle == NULL) {
15701 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15703 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
15705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
15707 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));
15708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
15709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
15711 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));
15712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
15713 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15716 if (flags & NDR_OUT) {
15717 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15719 return NDR_ERR_SUCCESS;
15722 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
15724 TALLOC_CTX *_mem_save_handle_0;
15725 if (flags & NDR_IN) {
15726 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15727 NDR_PULL_ALLOC(ndr, r->in.handle);
15729 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15730 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15731 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15733 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
15734 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
15735 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
15736 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
15738 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
15739 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
15740 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
15741 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
15742 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
15743 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
15745 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
15746 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
15747 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
15748 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.buffer));
15749 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15751 if (flags & NDR_OUT) {
15752 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15754 return NDR_ERR_SUCCESS;
15757 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
15759 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
15761 if (flags & NDR_SET_VALUES) {
15762 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15764 if (flags & NDR_IN) {
15765 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
15767 ndr_print_ptr(ndr, "handle", r->in.handle);
15769 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15771 ndr_print_string(ndr, "key_name", r->in.key_name);
15772 ndr_print_string(ndr, "value_name", r->in.value_name);
15773 ndr_print_uint32(ndr, "type", r->in.type);
15774 ndr_print_DATA_BLOB(ndr, "buffer", r->in.buffer);
15775 ndr_print_uint32(ndr, "offered", r->in.offered);
15778 if (flags & NDR_OUT) {
15779 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
15781 ndr_print_WERROR(ndr, "result", r->out.result);
15787 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
15789 if (flags & NDR_IN) {
15790 if (r->in.handle == NULL) {
15791 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15793 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
15795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
15797 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));
15798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
15799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
15801 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));
15802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15804 if (flags & NDR_OUT) {
15805 if (r->out.type == NULL) {
15806 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.type));
15809 if (r->out.buffer == NULL) {
15810 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15812 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15813 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
15814 if (r->out.needed == NULL) {
15815 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15818 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15820 return NDR_ERR_SUCCESS;
15823 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
15825 TALLOC_CTX *_mem_save_handle_0;
15826 TALLOC_CTX *_mem_save_type_0;
15827 TALLOC_CTX *_mem_save_needed_0;
15828 if (flags & NDR_IN) {
15829 ZERO_STRUCT(r->out);
15831 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15832 NDR_PULL_ALLOC(ndr, r->in.handle);
15834 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15835 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15836 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15838 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
15839 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
15840 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
15841 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
15843 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
15844 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
15845 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
15846 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
15847 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
15848 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
15850 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
15851 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
15852 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15853 NDR_PULL_ALLOC(ndr, r->out.type);
15854 ZERO_STRUCTP(r->out.type);
15855 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
15856 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
15857 NDR_PULL_ALLOC(ndr, r->out.needed);
15858 ZERO_STRUCTP(r->out.needed);
15860 if (flags & NDR_OUT) {
15861 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15862 NDR_PULL_ALLOC(ndr, r->out.type);
15864 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
15865 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
15866 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.type));
15867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
15868 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
15869 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15870 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
15872 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
15873 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15874 NDR_PULL_ALLOC(ndr, r->out.needed);
15876 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15877 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15880 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15881 if (r->out.buffer) {
15882 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
15885 return NDR_ERR_SUCCESS;
15888 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
15890 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
15892 if (flags & NDR_SET_VALUES) {
15893 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15895 if (flags & NDR_IN) {
15896 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
15898 ndr_print_ptr(ndr, "handle", r->in.handle);
15900 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15902 ndr_print_string(ndr, "key_name", r->in.key_name);
15903 ndr_print_string(ndr, "value_name", r->in.value_name);
15904 ndr_print_uint32(ndr, "offered", r->in.offered);
15907 if (flags & NDR_OUT) {
15908 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
15910 ndr_print_ptr(ndr, "type", r->out.type);
15912 ndr_print_uint32(ndr, "type", *r->out.type);
15914 ndr_print_ptr(ndr, "buffer", r->out.buffer);
15916 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
15918 ndr_print_ptr(ndr, "needed", r->out.needed);
15920 ndr_print_uint32(ndr, "needed", *r->out.needed);
15922 ndr_print_WERROR(ndr, "result", r->out.result);
15928 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
15930 if (flags & NDR_IN) {
15931 if (r->in.handle == NULL) {
15932 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15934 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
15936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15937 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
15938 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));
15939 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15941 if (flags & NDR_OUT) {
15942 if (r->out.buffer == NULL) {
15943 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15946 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
15947 if (r->out.needed == NULL) {
15948 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15951 if (r->out.count == NULL) {
15952 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
15955 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15957 return NDR_ERR_SUCCESS;
15960 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
15962 TALLOC_CTX *_mem_save_handle_0;
15963 TALLOC_CTX *_mem_save_needed_0;
15964 TALLOC_CTX *_mem_save_count_0;
15965 if (flags & NDR_IN) {
15966 ZERO_STRUCT(r->out);
15968 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15969 NDR_PULL_ALLOC(ndr, r->in.handle);
15971 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15972 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15973 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15975 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
15976 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
15977 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
15978 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
15980 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
15981 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
15982 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15983 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
15984 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
15985 NDR_PULL_ALLOC(ndr, r->out.needed);
15986 ZERO_STRUCTP(r->out.needed);
15987 NDR_PULL_ALLOC(ndr, r->out.count);
15988 ZERO_STRUCTP(r->out.count);
15990 if (flags & NDR_OUT) {
15991 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
15992 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15993 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
15995 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
15996 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15997 NDR_PULL_ALLOC(ndr, r->out.needed);
15999 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16000 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16001 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16003 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16004 NDR_PULL_ALLOC(ndr, r->out.count);
16006 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
16007 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
16008 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
16009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
16010 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16011 if (r->out.buffer) {
16012 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
16015 return NDR_ERR_SUCCESS;
16018 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
16020 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
16022 if (flags & NDR_SET_VALUES) {
16023 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16025 if (flags & NDR_IN) {
16026 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
16028 ndr_print_ptr(ndr, "handle", r->in.handle);
16030 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16032 ndr_print_string(ndr, "key_name", r->in.key_name);
16033 ndr_print_uint32(ndr, "offered", r->in.offered);
16036 if (flags & NDR_OUT) {
16037 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
16039 ndr_print_ptr(ndr, "buffer", r->out.buffer);
16041 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
16043 ndr_print_ptr(ndr, "needed", r->out.needed);
16045 ndr_print_uint32(ndr, "needed", *r->out.needed);
16047 ndr_print_ptr(ndr, "count", r->out.count);
16049 ndr_print_uint32(ndr, "count", *r->out.count);
16051 ndr_print_WERROR(ndr, "result", r->out.result);
16057 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
16059 uint32_t cntr_key_buffer_1;
16060 if (flags & NDR_IN) {
16061 if (r->in.handle == NULL) {
16062 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16064 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
16066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
16068 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));
16069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size));
16071 if (flags & NDR_OUT) {
16072 if (r->out.key_buffer == NULL) {
16073 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size / 2));
16076 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
16077 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
16079 if (r->out.needed == NULL) {
16080 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16083 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16085 return NDR_ERR_SUCCESS;
16088 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
16090 uint32_t cntr_key_buffer_1;
16091 TALLOC_CTX *_mem_save_handle_0;
16092 TALLOC_CTX *_mem_save_key_buffer_1;
16093 TALLOC_CTX *_mem_save_needed_0;
16094 if (flags & NDR_IN) {
16095 ZERO_STRUCT(r->out);
16097 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16098 NDR_PULL_ALLOC(ndr, r->in.handle);
16100 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16101 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16102 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16104 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
16105 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
16106 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
16107 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
16109 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
16110 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
16111 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.key_buffer_size));
16112 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.key_buffer_size / 2);
16113 memset(r->out.key_buffer, 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
16114 NDR_PULL_ALLOC(ndr, r->out.needed);
16115 ZERO_STRUCTP(r->out.needed);
16117 if (flags & NDR_OUT) {
16118 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
16119 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16120 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
16122 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
16123 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
16124 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
16125 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
16127 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
16128 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16129 NDR_PULL_ALLOC(ndr, r->out.needed);
16131 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16132 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16133 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16134 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16135 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16136 if (r->out.key_buffer) {
16137 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.key_buffer_size / 2));
16140 return NDR_ERR_SUCCESS;
16143 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
16145 uint32_t cntr_key_buffer_1;
16146 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
16148 if (flags & NDR_SET_VALUES) {
16149 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16151 if (flags & NDR_IN) {
16152 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
16154 ndr_print_ptr(ndr, "handle", r->in.handle);
16156 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16158 ndr_print_string(ndr, "key_name", r->in.key_name);
16159 ndr_print_uint32(ndr, "key_buffer_size", r->in.key_buffer_size);
16162 if (flags & NDR_OUT) {
16163 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
16165 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
16167 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.key_buffer_size / 2);
16169 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.key_buffer_size / 2;cntr_key_buffer_1++) {
16171 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
16172 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
16178 ndr_print_ptr(ndr, "needed", r->out.needed);
16180 ndr_print_uint32(ndr, "needed", *r->out.needed);
16182 ndr_print_WERROR(ndr, "result", r->out.result);
16188 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
16190 if (flags & NDR_IN) {
16191 if (r->in.handle == NULL) {
16192 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16194 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
16196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
16198 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));
16199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
16200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
16202 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));
16204 if (flags & NDR_OUT) {
16205 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16207 return NDR_ERR_SUCCESS;
16210 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
16212 TALLOC_CTX *_mem_save_handle_0;
16213 if (flags & NDR_IN) {
16214 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16215 NDR_PULL_ALLOC(ndr, r->in.handle);
16217 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16218 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16219 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16221 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
16222 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
16223 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
16224 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
16226 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
16227 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
16228 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
16229 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
16230 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
16231 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
16233 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
16234 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
16236 if (flags & NDR_OUT) {
16237 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16239 return NDR_ERR_SUCCESS;
16242 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
16244 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
16246 if (flags & NDR_SET_VALUES) {
16247 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16249 if (flags & NDR_IN) {
16250 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
16252 ndr_print_ptr(ndr, "handle", r->in.handle);
16254 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16256 ndr_print_string(ndr, "key_name", r->in.key_name);
16257 ndr_print_string(ndr, "value_name", r->in.value_name);
16260 if (flags & NDR_OUT) {
16261 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
16263 ndr_print_WERROR(ndr, "result", r->out.result);
16269 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
16271 if (flags & NDR_IN) {
16272 if (r->in.handle == NULL) {
16273 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16275 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16276 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
16277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
16279 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));
16281 if (flags & NDR_OUT) {
16282 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16284 return NDR_ERR_SUCCESS;
16287 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
16289 TALLOC_CTX *_mem_save_handle_0;
16290 if (flags & NDR_IN) {
16291 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16292 NDR_PULL_ALLOC(ndr, r->in.handle);
16294 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16295 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16296 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16298 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
16299 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
16300 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
16301 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
16303 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
16304 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
16306 if (flags & NDR_OUT) {
16307 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16309 return NDR_ERR_SUCCESS;
16312 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
16314 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
16316 if (flags & NDR_SET_VALUES) {
16317 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16319 if (flags & NDR_IN) {
16320 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
16322 ndr_print_ptr(ndr, "handle", r->in.handle);
16324 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16326 ndr_print_string(ndr, "key_name", r->in.key_name);
16329 if (flags & NDR_OUT) {
16330 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
16332 ndr_print_WERROR(ndr, "result", r->out.result);
16338 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
16340 if (flags & NDR_IN) {
16342 if (flags & NDR_OUT) {
16343 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16345 return NDR_ERR_SUCCESS;
16348 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
16350 if (flags & NDR_IN) {
16352 if (flags & NDR_OUT) {
16353 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16355 return NDR_ERR_SUCCESS;
16358 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
16360 ndr_print_struct(ndr, name, "spoolss_53");
16362 if (flags & NDR_SET_VALUES) {
16363 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16365 if (flags & NDR_IN) {
16366 ndr_print_struct(ndr, "in", "spoolss_53");
16370 if (flags & NDR_OUT) {
16371 ndr_print_struct(ndr, "out", "spoolss_53");
16373 ndr_print_WERROR(ndr, "result", r->out.result);
16379 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
16381 if (flags & NDR_IN) {
16382 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16383 if (r->in.server) {
16384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16387 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16392 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16396 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16397 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
16398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
16400 if (flags & NDR_OUT) {
16401 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16403 return NDR_ERR_SUCCESS;
16406 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
16408 uint32_t _ptr_server;
16409 TALLOC_CTX *_mem_save_server_0;
16410 if (flags & NDR_IN) {
16411 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16413 NDR_PULL_ALLOC(ndr, r->in.server);
16415 r->in.server = NULL;
16417 if (r->in.server) {
16418 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16419 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16420 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16421 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16422 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16423 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
16425 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16426 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16429 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
16430 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
16431 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
16432 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
16434 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
16435 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
16436 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
16437 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
16438 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
16439 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.driver), ndr_get_array_length(ndr, &r->in.driver));
16441 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
16442 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
16443 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
16444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
16446 if (flags & NDR_OUT) {
16447 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16449 return NDR_ERR_SUCCESS;
16452 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
16454 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
16456 if (flags & NDR_SET_VALUES) {
16457 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16459 if (flags & NDR_IN) {
16460 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
16462 ndr_print_ptr(ndr, "server", r->in.server);
16464 if (r->in.server) {
16465 ndr_print_string(ndr, "server", r->in.server);
16468 ndr_print_string(ndr, "architecture", r->in.architecture);
16469 ndr_print_string(ndr, "driver", r->in.driver);
16470 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
16471 ndr_print_uint32(ndr, "version", r->in.version);
16474 if (flags & NDR_OUT) {
16475 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
16477 ndr_print_WERROR(ndr, "result", r->out.result);
16483 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
16485 if (flags & NDR_IN) {
16487 if (flags & NDR_OUT) {
16488 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16490 return NDR_ERR_SUCCESS;
16493 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
16495 if (flags & NDR_IN) {
16497 if (flags & NDR_OUT) {
16498 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16500 return NDR_ERR_SUCCESS;
16503 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
16505 ndr_print_struct(ndr, name, "spoolss_55");
16507 if (flags & NDR_SET_VALUES) {
16508 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16510 if (flags & NDR_IN) {
16511 ndr_print_struct(ndr, "in", "spoolss_55");
16515 if (flags & NDR_OUT) {
16516 ndr_print_struct(ndr, "out", "spoolss_55");
16518 ndr_print_WERROR(ndr, "result", r->out.result);
16524 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
16526 if (flags & NDR_IN) {
16528 if (flags & NDR_OUT) {
16529 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16531 return NDR_ERR_SUCCESS;
16534 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
16536 if (flags & NDR_IN) {
16538 if (flags & NDR_OUT) {
16539 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16541 return NDR_ERR_SUCCESS;
16544 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
16546 ndr_print_struct(ndr, name, "spoolss_56");
16548 if (flags & NDR_SET_VALUES) {
16549 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16551 if (flags & NDR_IN) {
16552 ndr_print_struct(ndr, "in", "spoolss_56");
16556 if (flags & NDR_OUT) {
16557 ndr_print_struct(ndr, "out", "spoolss_56");
16559 ndr_print_WERROR(ndr, "result", r->out.result);
16565 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
16567 if (flags & NDR_IN) {
16569 if (flags & NDR_OUT) {
16570 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16572 return NDR_ERR_SUCCESS;
16575 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
16577 if (flags & NDR_IN) {
16579 if (flags & NDR_OUT) {
16580 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16582 return NDR_ERR_SUCCESS;
16585 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
16587 ndr_print_struct(ndr, name, "spoolss_57");
16589 if (flags & NDR_SET_VALUES) {
16590 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16592 if (flags & NDR_IN) {
16593 ndr_print_struct(ndr, "in", "spoolss_57");
16597 if (flags & NDR_OUT) {
16598 ndr_print_struct(ndr, "out", "spoolss_57");
16600 ndr_print_WERROR(ndr, "result", r->out.result);
16606 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
16608 if (flags & NDR_IN) {
16609 if (r->in.handle == NULL) {
16610 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16612 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
16614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
16616 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));
16617 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
16618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
16619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
16620 if (r->in.status_code == NULL) {
16621 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
16625 if (flags & NDR_OUT) {
16626 if (r->out.out_data == NULL) {
16627 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
16630 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
16631 if (r->out.needed == NULL) {
16632 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16635 if (r->out.status_code == NULL) {
16636 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
16639 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16641 return NDR_ERR_SUCCESS;
16644 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
16646 TALLOC_CTX *_mem_save_handle_0;
16647 TALLOC_CTX *_mem_save_needed_0;
16648 TALLOC_CTX *_mem_save_status_code_0;
16649 if (flags & NDR_IN) {
16650 ZERO_STRUCT(r->out);
16652 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16653 NDR_PULL_ALLOC(ndr, r->in.handle);
16655 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16656 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16657 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16658 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16659 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
16660 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
16661 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
16662 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.function_name), ndr_get_array_length(ndr, &r->in.function_name));
16664 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
16665 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.function_name, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t), CH_UTF16));
16666 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
16667 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
16668 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
16669 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16670 NDR_PULL_ALLOC(ndr, r->in.status_code);
16672 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
16673 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
16674 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
16675 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
16676 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
16677 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
16678 NDR_PULL_ALLOC(ndr, r->out.needed);
16679 ZERO_STRUCTP(r->out.needed);
16680 NDR_PULL_ALLOC(ndr, r->out.status_code);
16681 *r->out.status_code = *r->in.status_code;
16683 if (flags & NDR_OUT) {
16684 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
16685 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16686 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
16688 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
16689 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16690 NDR_PULL_ALLOC(ndr, r->out.needed);
16692 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16693 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16694 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16696 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16697 NDR_PULL_ALLOC(ndr, r->out.status_code);
16699 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
16700 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
16701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
16702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
16703 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16704 if (r->out.out_data) {
16705 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
16708 return NDR_ERR_SUCCESS;
16711 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
16713 ndr_print_struct(ndr, name, "spoolss_XcvData");
16715 if (flags & NDR_SET_VALUES) {
16716 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16718 if (flags & NDR_IN) {
16719 ndr_print_struct(ndr, "in", "spoolss_XcvData");
16721 ndr_print_ptr(ndr, "handle", r->in.handle);
16723 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16725 ndr_print_string(ndr, "function_name", r->in.function_name);
16726 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
16727 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
16728 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
16729 ndr_print_ptr(ndr, "status_code", r->in.status_code);
16731 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
16735 if (flags & NDR_OUT) {
16736 ndr_print_struct(ndr, "out", "spoolss_XcvData");
16738 ndr_print_ptr(ndr, "out_data", r->out.out_data);
16740 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
16742 ndr_print_ptr(ndr, "needed", r->out.needed);
16744 ndr_print_uint32(ndr, "needed", *r->out.needed);
16746 ndr_print_ptr(ndr, "status_code", r->out.status_code);
16748 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
16750 ndr_print_WERROR(ndr, "result", r->out.result);
16756 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
16758 if (flags & NDR_IN) {
16760 if (flags & NDR_OUT) {
16761 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16763 return NDR_ERR_SUCCESS;
16766 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
16768 if (flags & NDR_IN) {
16770 if (flags & NDR_OUT) {
16771 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16773 return NDR_ERR_SUCCESS;
16776 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
16778 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
16780 if (flags & NDR_SET_VALUES) {
16781 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16783 if (flags & NDR_IN) {
16784 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
16788 if (flags & NDR_OUT) {
16789 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
16791 ndr_print_WERROR(ndr, "result", r->out.result);
16797 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
16799 if (flags & NDR_IN) {
16801 if (flags & NDR_OUT) {
16802 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16804 return NDR_ERR_SUCCESS;
16807 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
16809 if (flags & NDR_IN) {
16811 if (flags & NDR_OUT) {
16812 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16814 return NDR_ERR_SUCCESS;
16817 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
16819 ndr_print_struct(ndr, name, "spoolss_5a");
16821 if (flags & NDR_SET_VALUES) {
16822 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16824 if (flags & NDR_IN) {
16825 ndr_print_struct(ndr, "in", "spoolss_5a");
16829 if (flags & NDR_OUT) {
16830 ndr_print_struct(ndr, "out", "spoolss_5a");
16832 ndr_print_WERROR(ndr, "result", r->out.result);
16838 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
16840 if (flags & NDR_IN) {
16842 if (flags & NDR_OUT) {
16843 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16845 return NDR_ERR_SUCCESS;
16848 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
16850 if (flags & NDR_IN) {
16852 if (flags & NDR_OUT) {
16853 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16855 return NDR_ERR_SUCCESS;
16858 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
16860 ndr_print_struct(ndr, name, "spoolss_5b");
16862 if (flags & NDR_SET_VALUES) {
16863 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16865 if (flags & NDR_IN) {
16866 ndr_print_struct(ndr, "in", "spoolss_5b");
16870 if (flags & NDR_OUT) {
16871 ndr_print_struct(ndr, "out", "spoolss_5b");
16873 ndr_print_WERROR(ndr, "result", r->out.result);
16879 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
16881 if (flags & NDR_IN) {
16883 if (flags & NDR_OUT) {
16884 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16886 return NDR_ERR_SUCCESS;
16889 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
16891 if (flags & NDR_IN) {
16893 if (flags & NDR_OUT) {
16894 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16896 return NDR_ERR_SUCCESS;
16899 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
16901 ndr_print_struct(ndr, name, "spoolss_5c");
16903 if (flags & NDR_SET_VALUES) {
16904 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16906 if (flags & NDR_IN) {
16907 ndr_print_struct(ndr, "in", "spoolss_5c");
16911 if (flags & NDR_OUT) {
16912 ndr_print_struct(ndr, "out", "spoolss_5c");
16914 ndr_print_WERROR(ndr, "result", r->out.result);
16920 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
16922 if (flags & NDR_IN) {
16924 if (flags & NDR_OUT) {
16925 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16927 return NDR_ERR_SUCCESS;
16930 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
16932 if (flags & NDR_IN) {
16934 if (flags & NDR_OUT) {
16935 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16937 return NDR_ERR_SUCCESS;
16940 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
16942 ndr_print_struct(ndr, name, "spoolss_5d");
16944 if (flags & NDR_SET_VALUES) {
16945 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16947 if (flags & NDR_IN) {
16948 ndr_print_struct(ndr, "in", "spoolss_5d");
16952 if (flags & NDR_OUT) {
16953 ndr_print_struct(ndr, "out", "spoolss_5d");
16955 ndr_print_WERROR(ndr, "result", r->out.result);
16961 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
16963 if (flags & NDR_IN) {
16965 if (flags & NDR_OUT) {
16966 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16968 return NDR_ERR_SUCCESS;
16971 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
16973 if (flags & NDR_IN) {
16975 if (flags & NDR_OUT) {
16976 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16978 return NDR_ERR_SUCCESS;
16981 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
16983 ndr_print_struct(ndr, name, "spoolss_5e");
16985 if (flags & NDR_SET_VALUES) {
16986 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16988 if (flags & NDR_IN) {
16989 ndr_print_struct(ndr, "in", "spoolss_5e");
16993 if (flags & NDR_OUT) {
16994 ndr_print_struct(ndr, "out", "spoolss_5e");
16996 ndr_print_WERROR(ndr, "result", r->out.result);
17002 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
17004 if (flags & NDR_IN) {
17006 if (flags & NDR_OUT) {
17007 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17009 return NDR_ERR_SUCCESS;
17012 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
17014 if (flags & NDR_IN) {
17016 if (flags & NDR_OUT) {
17017 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17019 return NDR_ERR_SUCCESS;
17022 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
17024 ndr_print_struct(ndr, name, "spoolss_5f");
17026 if (flags & NDR_SET_VALUES) {
17027 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17029 if (flags & NDR_IN) {
17030 ndr_print_struct(ndr, "in", "spoolss_5f");
17034 if (flags & NDR_OUT) {
17035 ndr_print_struct(ndr, "out", "spoolss_5f");
17037 ndr_print_WERROR(ndr, "result", r->out.result);
17043 static const struct ndr_interface_call spoolss_calls[] = {
17045 "spoolss_EnumPrinters",
17046 sizeof(struct spoolss_EnumPrinters),
17047 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
17048 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
17049 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
17053 "spoolss_OpenPrinter",
17054 sizeof(struct spoolss_OpenPrinter),
17055 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
17056 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
17057 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
17062 sizeof(struct spoolss_SetJob),
17063 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
17064 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
17065 (ndr_print_function_t) ndr_print_spoolss_SetJob,
17070 sizeof(struct spoolss_GetJob),
17071 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
17072 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
17073 (ndr_print_function_t) ndr_print_spoolss_GetJob,
17077 "spoolss_EnumJobs",
17078 sizeof(struct spoolss_EnumJobs),
17079 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
17080 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
17081 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
17085 "spoolss_AddPrinter",
17086 sizeof(struct spoolss_AddPrinter),
17087 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
17088 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
17089 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
17093 "spoolss_DeletePrinter",
17094 sizeof(struct spoolss_DeletePrinter),
17095 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
17096 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
17097 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
17101 "spoolss_SetPrinter",
17102 sizeof(struct spoolss_SetPrinter),
17103 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
17104 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
17105 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
17109 "spoolss_GetPrinter",
17110 sizeof(struct spoolss_GetPrinter),
17111 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
17112 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
17113 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
17117 "spoolss_AddPrinterDriver",
17118 sizeof(struct spoolss_AddPrinterDriver),
17119 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
17120 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
17121 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
17125 "spoolss_EnumPrinterDrivers",
17126 sizeof(struct spoolss_EnumPrinterDrivers),
17127 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
17128 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
17129 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
17133 "spoolss_GetPrinterDriver",
17134 sizeof(struct spoolss_GetPrinterDriver),
17135 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
17136 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
17137 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
17141 "spoolss_GetPrinterDriverDirectory",
17142 sizeof(struct spoolss_GetPrinterDriverDirectory),
17143 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
17144 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
17145 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
17149 "spoolss_DeletePrinterDriver",
17150 sizeof(struct spoolss_DeletePrinterDriver),
17151 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
17152 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
17153 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
17157 "spoolss_AddPrintProcessor",
17158 sizeof(struct spoolss_AddPrintProcessor),
17159 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
17160 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
17161 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
17165 "spoolss_EnumPrintProcessors",
17166 sizeof(struct spoolss_EnumPrintProcessors),
17167 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
17168 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
17169 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
17173 "spoolss_GetPrintProcessorDirectory",
17174 sizeof(struct spoolss_GetPrintProcessorDirectory),
17175 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
17176 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
17177 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
17181 "spoolss_StartDocPrinter",
17182 sizeof(struct spoolss_StartDocPrinter),
17183 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
17184 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
17185 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
17189 "spoolss_StartPagePrinter",
17190 sizeof(struct spoolss_StartPagePrinter),
17191 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
17192 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
17193 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
17197 "spoolss_WritePrinter",
17198 sizeof(struct spoolss_WritePrinter),
17199 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
17200 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
17201 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
17205 "spoolss_EndPagePrinter",
17206 sizeof(struct spoolss_EndPagePrinter),
17207 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
17208 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
17209 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
17213 "spoolss_AbortPrinter",
17214 sizeof(struct spoolss_AbortPrinter),
17215 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
17216 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
17217 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
17221 "spoolss_ReadPrinter",
17222 sizeof(struct spoolss_ReadPrinter),
17223 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
17224 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
17225 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
17229 "spoolss_EndDocPrinter",
17230 sizeof(struct spoolss_EndDocPrinter),
17231 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
17232 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
17233 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
17238 sizeof(struct spoolss_AddJob),
17239 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
17240 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
17241 (ndr_print_function_t) ndr_print_spoolss_AddJob,
17245 "spoolss_ScheduleJob",
17246 sizeof(struct spoolss_ScheduleJob),
17247 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
17248 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
17249 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
17253 "spoolss_GetPrinterData",
17254 sizeof(struct spoolss_GetPrinterData),
17255 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
17256 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
17257 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
17261 "spoolss_SetPrinterData",
17262 sizeof(struct spoolss_SetPrinterData),
17263 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
17264 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
17265 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
17269 "spoolss_WaitForPrinterChange",
17270 sizeof(struct spoolss_WaitForPrinterChange),
17271 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
17272 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
17273 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
17277 "spoolss_ClosePrinter",
17278 sizeof(struct spoolss_ClosePrinter),
17279 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
17280 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
17281 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
17286 sizeof(struct spoolss_AddForm),
17287 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
17288 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
17289 (ndr_print_function_t) ndr_print_spoolss_AddForm,
17293 "spoolss_DeleteForm",
17294 sizeof(struct spoolss_DeleteForm),
17295 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
17296 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
17297 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
17302 sizeof(struct spoolss_GetForm),
17303 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
17304 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
17305 (ndr_print_function_t) ndr_print_spoolss_GetForm,
17310 sizeof(struct spoolss_SetForm),
17311 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
17312 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
17313 (ndr_print_function_t) ndr_print_spoolss_SetForm,
17317 "spoolss_EnumForms",
17318 sizeof(struct spoolss_EnumForms),
17319 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
17320 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
17321 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
17325 "spoolss_EnumPorts",
17326 sizeof(struct spoolss_EnumPorts),
17327 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
17328 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
17329 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
17333 "spoolss_EnumMonitors",
17334 sizeof(struct spoolss_EnumMonitors),
17335 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
17336 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
17337 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
17342 sizeof(struct spoolss_AddPort),
17343 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
17344 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
17345 (ndr_print_function_t) ndr_print_spoolss_AddPort,
17349 "spoolss_ConfigurePort",
17350 sizeof(struct spoolss_ConfigurePort),
17351 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
17352 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
17353 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
17357 "spoolss_DeletePort",
17358 sizeof(struct spoolss_DeletePort),
17359 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
17360 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
17361 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
17365 "spoolss_CreatePrinterIC",
17366 sizeof(struct spoolss_CreatePrinterIC),
17367 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
17368 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
17369 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
17373 "spoolss_PlayGDIScriptOnPrinterIC",
17374 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
17375 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
17376 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
17377 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
17381 "spoolss_DeletePrinterIC",
17382 sizeof(struct spoolss_DeletePrinterIC),
17383 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
17384 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
17385 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
17389 "spoolss_AddPrinterConnection",
17390 sizeof(struct spoolss_AddPrinterConnection),
17391 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
17392 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
17393 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
17397 "spoolss_DeletePrinterConnection",
17398 sizeof(struct spoolss_DeletePrinterConnection),
17399 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
17400 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
17401 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
17405 "spoolss_PrinterMessageBox",
17406 sizeof(struct spoolss_PrinterMessageBox),
17407 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
17408 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
17409 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
17413 "spoolss_AddMonitor",
17414 sizeof(struct spoolss_AddMonitor),
17415 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
17416 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
17417 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
17421 "spoolss_DeleteMonitor",
17422 sizeof(struct spoolss_DeleteMonitor),
17423 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
17424 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
17425 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
17429 "spoolss_DeletePrintProcessor",
17430 sizeof(struct spoolss_DeletePrintProcessor),
17431 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
17432 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
17433 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
17437 "spoolss_AddPrintProvidor",
17438 sizeof(struct spoolss_AddPrintProvidor),
17439 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
17440 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
17441 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
17445 "spoolss_DeletePrintProvidor",
17446 sizeof(struct spoolss_DeletePrintProvidor),
17447 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
17448 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
17449 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
17453 "spoolss_EnumPrintProcDataTypes",
17454 sizeof(struct spoolss_EnumPrintProcDataTypes),
17455 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
17456 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
17457 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
17461 "spoolss_ResetPrinter",
17462 sizeof(struct spoolss_ResetPrinter),
17463 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
17464 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
17465 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
17469 "spoolss_GetPrinterDriver2",
17470 sizeof(struct spoolss_GetPrinterDriver2),
17471 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
17472 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
17473 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
17477 "spoolss_FindFirstPrinterChangeNotification",
17478 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
17479 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
17480 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
17481 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
17485 "spoolss_FindNextPrinterChangeNotification",
17486 sizeof(struct spoolss_FindNextPrinterChangeNotification),
17487 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
17488 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
17489 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
17493 "spoolss_FindClosePrinterNotify",
17494 sizeof(struct spoolss_FindClosePrinterNotify),
17495 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
17496 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
17497 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
17501 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
17502 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
17503 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
17504 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
17505 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
17509 "spoolss_ReplyOpenPrinter",
17510 sizeof(struct spoolss_ReplyOpenPrinter),
17511 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
17512 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
17513 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
17517 "spoolss_RouterReplyPrinter",
17518 sizeof(struct spoolss_RouterReplyPrinter),
17519 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
17520 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
17521 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
17525 "spoolss_ReplyClosePrinter",
17526 sizeof(struct spoolss_ReplyClosePrinter),
17527 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
17528 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
17529 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
17533 "spoolss_AddPortEx",
17534 sizeof(struct spoolss_AddPortEx),
17535 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
17536 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
17537 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
17541 "spoolss_RouterFindFirstPrinterChangeNotification",
17542 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
17543 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
17544 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
17545 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
17549 "spoolss_SpoolerInit",
17550 sizeof(struct spoolss_SpoolerInit),
17551 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
17552 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
17553 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
17557 "spoolss_ResetPrinterEx",
17558 sizeof(struct spoolss_ResetPrinterEx),
17559 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
17560 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
17561 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
17565 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
17566 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
17567 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
17568 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
17569 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
17573 "spoolss_RouterRefreshPrinterChangeNotification",
17574 sizeof(struct spoolss_RouterRefreshPrinterChangeNotification),
17575 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotification,
17576 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotification,
17577 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotification,
17581 "spoolss_RemoteFindNextPrinterChangeNotifyEx",
17582 sizeof(struct spoolss_RemoteFindNextPrinterChangeNotifyEx),
17583 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindNextPrinterChangeNotifyEx,
17584 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindNextPrinterChangeNotifyEx,
17585 (ndr_print_function_t) ndr_print_spoolss_RemoteFindNextPrinterChangeNotifyEx,
17590 sizeof(struct spoolss_44),
17591 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
17592 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
17593 (ndr_print_function_t) ndr_print_spoolss_44,
17597 "spoolss_OpenPrinterEx",
17598 sizeof(struct spoolss_OpenPrinterEx),
17599 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
17600 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
17601 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
17605 "spoolss_AddPrinterEx",
17606 sizeof(struct spoolss_AddPrinterEx),
17607 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
17608 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
17609 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
17614 sizeof(struct spoolss_47),
17615 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
17616 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
17617 (ndr_print_function_t) ndr_print_spoolss_47,
17621 "spoolss_EnumPrinterData",
17622 sizeof(struct spoolss_EnumPrinterData),
17623 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
17624 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
17625 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
17629 "spoolss_DeletePrinterData",
17630 sizeof(struct spoolss_DeletePrinterData),
17631 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
17632 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
17633 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
17638 sizeof(struct spoolss_4a),
17639 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
17640 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
17641 (ndr_print_function_t) ndr_print_spoolss_4a,
17646 sizeof(struct spoolss_4b),
17647 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
17648 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
17649 (ndr_print_function_t) ndr_print_spoolss_4b,
17654 sizeof(struct spoolss_4c),
17655 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
17656 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
17657 (ndr_print_function_t) ndr_print_spoolss_4c,
17661 "spoolss_SetPrinterDataEx",
17662 sizeof(struct spoolss_SetPrinterDataEx),
17663 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
17664 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
17665 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
17669 "spoolss_GetPrinterDataEx",
17670 sizeof(struct spoolss_GetPrinterDataEx),
17671 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
17672 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
17673 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
17677 "spoolss_EnumPrinterDataEx",
17678 sizeof(struct spoolss_EnumPrinterDataEx),
17679 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
17680 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
17681 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
17685 "spoolss_EnumPrinterKey",
17686 sizeof(struct spoolss_EnumPrinterKey),
17687 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
17688 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
17689 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
17693 "spoolss_DeletePrinterDataEx",
17694 sizeof(struct spoolss_DeletePrinterDataEx),
17695 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
17696 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
17697 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
17701 "spoolss_DeletePrinterKey",
17702 sizeof(struct spoolss_DeletePrinterKey),
17703 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
17704 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
17705 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
17710 sizeof(struct spoolss_53),
17711 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
17712 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
17713 (ndr_print_function_t) ndr_print_spoolss_53,
17717 "spoolss_DeletePrinterDriverEx",
17718 sizeof(struct spoolss_DeletePrinterDriverEx),
17719 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
17720 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
17721 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
17726 sizeof(struct spoolss_55),
17727 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
17728 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
17729 (ndr_print_function_t) ndr_print_spoolss_55,
17734 sizeof(struct spoolss_56),
17735 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
17736 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
17737 (ndr_print_function_t) ndr_print_spoolss_56,
17742 sizeof(struct spoolss_57),
17743 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
17744 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
17745 (ndr_print_function_t) ndr_print_spoolss_57,
17750 sizeof(struct spoolss_XcvData),
17751 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
17752 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
17753 (ndr_print_function_t) ndr_print_spoolss_XcvData,
17757 "spoolss_AddPrinterDriverEx",
17758 sizeof(struct spoolss_AddPrinterDriverEx),
17759 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
17760 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
17761 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
17766 sizeof(struct spoolss_5a),
17767 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
17768 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
17769 (ndr_print_function_t) ndr_print_spoolss_5a,
17774 sizeof(struct spoolss_5b),
17775 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
17776 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
17777 (ndr_print_function_t) ndr_print_spoolss_5b,
17782 sizeof(struct spoolss_5c),
17783 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
17784 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
17785 (ndr_print_function_t) ndr_print_spoolss_5c,
17790 sizeof(struct spoolss_5d),
17791 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
17792 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
17793 (ndr_print_function_t) ndr_print_spoolss_5d,
17798 sizeof(struct spoolss_5e),
17799 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
17800 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
17801 (ndr_print_function_t) ndr_print_spoolss_5e,
17806 sizeof(struct spoolss_5f),
17807 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
17808 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
17809 (ndr_print_function_t) ndr_print_spoolss_5f,
17812 { NULL, 0, NULL, NULL, NULL, false }
17815 static const char * const spoolss_endpoint_strings[] = {
17816 "ncacn_np:[\\pipe\\spoolss]",
17819 static const struct ndr_interface_string_array spoolss_endpoints = {
17821 .names = spoolss_endpoint_strings
17824 static const char * const spoolss_authservice_strings[] = {
17828 static const struct ndr_interface_string_array spoolss_authservices = {
17830 .names = spoolss_authservice_strings
17834 const struct ndr_interface_table ndr_table_spoolss = {
17837 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
17838 NDR_SPOOLSS_VERSION
17840 .helpstring = NDR_SPOOLSS_HELPSTRING,
17842 .calls = spoolss_calls,
17843 .endpoints = &spoolss_endpoints,
17844 .authservices = &spoolss_authservices