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 size_t ndr_size_spoolss_Time(const struct spoolss_Time
*r
, struct smb_iconv_convenience
*ic
, int flags
)
62 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_Time
, ic
);
65 static enum ndr_err_code
ndr_push_spoolss_TimeCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_TimeCtr
*r
)
67 if (ndr_flags
& NDR_SCALARS
) {
68 NDR_CHECK(ndr_push_align(ndr
, 4));
69 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
)));
70 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->time
));
72 if (ndr_flags
& NDR_BUFFERS
) {
74 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
77 return NDR_ERR_SUCCESS
;
80 static enum ndr_err_code
ndr_pull_spoolss_TimeCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_TimeCtr
*r
)
83 TALLOC_CTX
*_mem_save_time_0
;
84 if (ndr_flags
& NDR_SCALARS
) {
85 NDR_CHECK(ndr_pull_align(ndr
, 4));
86 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
87 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_time
));
89 NDR_PULL_ALLOC(ndr
, r
->time
);
94 if (ndr_flags
& NDR_BUFFERS
) {
96 _mem_save_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
97 NDR_PULL_SET_MEM_CTX(ndr
, r
->time
, 0);
98 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
99 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_time_0
, 0);
102 return NDR_ERR_SUCCESS
;
105 _PUBLIC_
void ndr_print_spoolss_TimeCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_TimeCtr
*r
)
107 ndr_print_struct(ndr
, name
, "spoolss_TimeCtr");
109 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
):r
->size
);
110 ndr_print_ptr(ndr
, "time", r
->time
);
113 ndr_print_spoolss_Time(ndr
, "time", r
->time
);
119 static enum ndr_err_code
ndr_push_spoolss_ProcessorArchitecture(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture r
)
121 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
122 return NDR_ERR_SUCCESS
;
125 static enum ndr_err_code
ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture
*r
)
128 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
130 return NDR_ERR_SUCCESS
;
133 _PUBLIC_
void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorArchitecture r
)
135 const char *val
= NULL
;
138 case PROCESSOR_ARCHITECTURE_INTEL
: val
= "PROCESSOR_ARCHITECTURE_INTEL"; break;
139 case PROCESSOR_ARCHITECTURE_IA64
: val
= "PROCESSOR_ARCHITECTURE_IA64"; break;
140 case PROCESSOR_ARCHITECTURE_AMD64
: val
= "PROCESSOR_ARCHITECTURE_AMD64"; break;
142 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
145 static enum ndr_err_code
ndr_push_spoolss_ProcessorType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorType r
)
147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
148 return NDR_ERR_SUCCESS
;
151 static enum ndr_err_code
ndr_pull_spoolss_ProcessorType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorType
*r
)
154 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
156 return NDR_ERR_SUCCESS
;
159 _PUBLIC_
void ndr_print_spoolss_ProcessorType(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorType r
)
161 const char *val
= NULL
;
164 case PROCESSOR_INTEL_386
: val
= "PROCESSOR_INTEL_386"; break;
165 case PROCESSOR_INTEL_486
: val
= "PROCESSOR_INTEL_486"; break;
166 case PROCESSOR_INTEL_PENTIUM
: val
= "PROCESSOR_INTEL_PENTIUM"; break;
167 case PROCESSOR_INTEL_IA64
: val
= "PROCESSOR_INTEL_IA64"; break;
168 case PROCESSOR_AMD_X8664
: val
= "PROCESSOR_AMD_X8664"; break;
170 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
173 static enum ndr_err_code
ndr_push_spoolss_MajorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MajorVersion r
)
175 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
176 return NDR_ERR_SUCCESS
;
179 static enum ndr_err_code
ndr_pull_spoolss_MajorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MajorVersion
*r
)
182 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
184 return NDR_ERR_SUCCESS
;
187 _PUBLIC_
void ndr_print_spoolss_MajorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MajorVersion r
)
189 const char *val
= NULL
;
192 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME
: val
= "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
193 case SPOOLSS_MAJOR_VERSION_2000_2003_XP
: val
= "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
194 case SPOOLSS_MAJOR_VERSION_2008_VISTA
: val
= "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
196 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
199 static enum ndr_err_code
ndr_push_spoolss_MinorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MinorVersion r
)
201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
202 return NDR_ERR_SUCCESS
;
205 static enum ndr_err_code
ndr_pull_spoolss_MinorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MinorVersion
*r
)
208 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
210 return NDR_ERR_SUCCESS
;
213 _PUBLIC_
void ndr_print_spoolss_MinorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MinorVersion r
)
215 const char *val
= NULL
;
218 case SPOOLSS_MINOR_VERSION_0
: val
= "SPOOLSS_MINOR_VERSION_0"; break;
219 case SPOOLSS_MINOR_VERSION_XP
: val
= "SPOOLSS_MINOR_VERSION_XP"; break;
220 case SPOOLSS_MINOR_VERSION_2003_XP64
: val
= "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
221 case SPOOLSS_MINOR_VERSION_98
: val
= "SPOOLSS_MINOR_VERSION_98"; break;
222 case SPOOLSS_MINOR_VERSION_ME
: val
= "SPOOLSS_MINOR_VERSION_ME"; break;
224 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
227 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo0
*r
)
229 if (ndr_flags
& NDR_SCALARS
) {
230 NDR_CHECK(ndr_push_align(ndr
, 4));
232 uint32_t _flags_save_string
= ndr
->flags
;
233 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
234 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
235 ndr
->flags
= _flags_save_string
;
238 uint32_t _flags_save_string
= ndr
->flags
;
239 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
240 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
241 ndr
->flags
= _flags_save_string
;
243 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
246 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
247 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
248 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
249 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
252 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
253 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
254 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
255 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
256 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_error
));
257 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
258 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
260 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
261 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->status
));
263 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
264 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
265 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
266 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
267 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
268 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
269 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
271 if (ndr_flags
& NDR_BUFFERS
) {
273 uint32_t _flags_save_string
= ndr
->flags
;
274 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
275 if (r
->printername
) {
276 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
277 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
279 ndr
->flags
= _flags_save_string
;
282 uint32_t _flags_save_string
= ndr
->flags
;
283 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
285 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
286 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
288 ndr
->flags
= _flags_save_string
;
291 return NDR_ERR_SUCCESS
;
294 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo0
*r
)
296 uint32_t _ptr_printername
;
297 TALLOC_CTX
*_mem_save_printername_0
;
298 uint32_t _ptr_servername
;
299 TALLOC_CTX
*_mem_save_servername_0
;
300 if (ndr_flags
& NDR_SCALARS
) {
301 NDR_CHECK(ndr_pull_align(ndr
, 4));
303 uint32_t _flags_save_string
= ndr
->flags
;
304 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
305 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
306 if (_ptr_printername
) {
307 NDR_PULL_ALLOC(ndr
, r
->printername
);
308 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
310 r
->printername
= NULL
;
312 ndr
->flags
= _flags_save_string
;
315 uint32_t _flags_save_string
= ndr
->flags
;
316 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
317 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
318 if (_ptr_servername
) {
319 NDR_PULL_ALLOC(ndr
, r
->servername
);
320 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
322 r
->servername
= NULL
;
324 ndr
->flags
= _flags_save_string
;
326 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
327 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
328 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
329 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
330 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
331 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
332 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
333 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
334 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
335 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
336 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
337 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
338 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
339 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_error
));
340 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
341 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
342 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
343 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
344 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
345 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->status
));
346 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
347 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
348 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
349 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
350 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
351 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
352 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
354 if (ndr_flags
& NDR_BUFFERS
) {
356 uint32_t _flags_save_string
= ndr
->flags
;
357 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
358 if (r
->printername
) {
359 uint32_t _relative_save_offset
;
360 _relative_save_offset
= ndr
->offset
;
361 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
362 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
363 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
364 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
365 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
366 ndr
->offset
= _relative_save_offset
;
368 ndr
->flags
= _flags_save_string
;
371 uint32_t _flags_save_string
= ndr
->flags
;
372 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
374 uint32_t _relative_save_offset
;
375 _relative_save_offset
= ndr
->offset
;
376 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
377 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
378 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
379 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
380 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
381 ndr
->offset
= _relative_save_offset
;
383 ndr
->flags
= _flags_save_string
;
386 return NDR_ERR_SUCCESS
;
389 _PUBLIC_
void ndr_print_spoolss_PrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo0
*r
)
391 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo0");
393 ndr_print_ptr(ndr
, "printername", r
->printername
);
395 if (r
->printername
) {
396 ndr_print_string(ndr
, "printername", r
->printername
);
399 ndr_print_ptr(ndr
, "servername", r
->servername
);
402 ndr_print_string(ndr
, "servername", r
->servername
);
405 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
406 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
407 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
408 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
409 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
410 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
411 ndr_print_uint32(ndr
, "version", r
->version
);
412 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
413 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
414 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
415 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
416 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
417 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
418 ndr_print_uint32(ndr
, "job_error", r
->job_error
);
419 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
420 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
421 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
422 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
423 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
424 ndr_print_uint32(ndr
, "status", r
->status
);
425 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
426 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
427 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
428 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
429 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
430 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
431 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
435 static enum ndr_err_code
ndr_push_spoolss_DeviceModeFields(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
438 return NDR_ERR_SUCCESS
;
441 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeFields(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
444 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
446 return NDR_ERR_SUCCESS
;
449 _PUBLIC_
void ndr_print_spoolss_DeviceModeFields(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
451 ndr_print_uint32(ndr
, name
, r
);
453 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION
, r
);
454 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE
, r
);
455 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH
, r
);
456 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH
, r
);
457 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE
, r
);
458 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION
, r
);
459 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP
, r
);
460 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES
, r
);
461 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE
, r
);
462 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY
, r
);
463 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR
, r
);
464 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX
, r
);
465 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION
, r
);
466 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION
, r
);
467 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE
, r
);
468 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME
, r
);
469 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS
, r
);
470 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL
, r
);
471 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH
, r
);
472 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT
, r
);
473 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS
, r
);
474 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY
, r
);
475 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD
, r
);
476 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT
, r
);
477 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE
, r
);
478 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE
, r
);
479 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH
, r
);
480 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT
, r
);
484 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeviceMode(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceMode
*r
)
486 if (ndr_flags
& NDR_SCALARS
) {
487 NDR_CHECK(ndr_push_align(ndr
, 4));
488 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->devicename
, 32, sizeof(uint16_t), CH_UTF16
));
489 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->specversion
));
490 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverversion
));
491 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
492 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverextra_data
.length
));
493 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, r
->fields
));
494 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->orientation
));
495 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->papersize
));
496 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperlength
));
497 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperwidth
));
498 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->scale
));
499 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->copies
));
500 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->defaultsource
));
501 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->printquality
));
502 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->color
));
503 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->duplex
));
504 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->yresolution
));
505 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ttoption
));
506 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->collate
));
507 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, 32, sizeof(uint16_t), CH_UTF16
));
508 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logpixels
));
509 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bitsperpel
));
510 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelswidth
));
511 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelsheight
));
512 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayflags
));
513 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayfrequency
));
514 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->icmmethod
));
515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->icmintent
));
516 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->mediatype
));
517 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dithertype
));
518 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved1
));
519 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
520 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningwidth
));
521 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningheight
));
523 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
524 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
526 struct ndr_push
*_ndr_driverextra_data
;
527 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
528 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, r
->driverextra_data
));
529 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
531 ndr
->flags
= _flags_save_DATA_BLOB
;
534 if (ndr_flags
& NDR_BUFFERS
) {
536 return NDR_ERR_SUCCESS
;
539 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeviceMode(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceMode
*r
)
541 if (ndr_flags
& NDR_SCALARS
) {
542 NDR_CHECK(ndr_pull_align(ndr
, 4));
543 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->devicename
, 32, sizeof(uint16_t), CH_UTF16
));
544 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->specversion
));
545 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->driverversion
));
546 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
547 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->__driverextra_length
));
548 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, &r
->fields
));
549 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->orientation
));
550 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->papersize
));
551 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperlength
));
552 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperwidth
));
553 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->scale
));
554 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->copies
));
555 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->defaultsource
));
556 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->printquality
));
557 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->color
));
558 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->duplex
));
559 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->yresolution
));
560 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ttoption
));
561 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->collate
));
562 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, 32, sizeof(uint16_t), CH_UTF16
));
563 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logpixels
));
564 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bitsperpel
));
565 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelswidth
));
566 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelsheight
));
567 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayflags
));
568 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayfrequency
));
569 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->icmmethod
));
570 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->icmintent
));
571 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->mediatype
));
572 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dithertype
));
573 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved1
));
574 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
575 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningwidth
));
576 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningheight
));
578 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
579 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
581 struct ndr_pull
*_ndr_driverextra_data
;
582 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->__driverextra_length
));
583 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, &r
->driverextra_data
));
584 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->__driverextra_length
));
586 ndr
->flags
= _flags_save_DATA_BLOB
;
589 if (ndr_flags
& NDR_BUFFERS
) {
591 return NDR_ERR_SUCCESS
;
594 _PUBLIC_
void ndr_print_spoolss_DeviceMode(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceMode
*r
)
596 ndr_print_struct(ndr
, name
, "spoolss_DeviceMode");
598 ndr_print_string(ndr
, "devicename", r
->devicename
);
599 ndr_print_uint16(ndr
, "specversion", r
->specversion
);
600 ndr_print_uint16(ndr
, "driverversion", r
->driverversion
);
601 ndr_print_uint16(ndr
, "size", r
->size
);
602 ndr_print_uint16(ndr
, "__driverextra_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->driverextra_data
.length
:r
->__driverextra_length
);
603 ndr_print_spoolss_DeviceModeFields(ndr
, "fields", r
->fields
);
604 ndr_print_uint16(ndr
, "orientation", r
->orientation
);
605 ndr_print_uint16(ndr
, "papersize", r
->papersize
);
606 ndr_print_uint16(ndr
, "paperlength", r
->paperlength
);
607 ndr_print_uint16(ndr
, "paperwidth", r
->paperwidth
);
608 ndr_print_uint16(ndr
, "scale", r
->scale
);
609 ndr_print_uint16(ndr
, "copies", r
->copies
);
610 ndr_print_uint16(ndr
, "defaultsource", r
->defaultsource
);
611 ndr_print_uint16(ndr
, "printquality", r
->printquality
);
612 ndr_print_uint16(ndr
, "color", r
->color
);
613 ndr_print_uint16(ndr
, "duplex", r
->duplex
);
614 ndr_print_uint16(ndr
, "yresolution", r
->yresolution
);
615 ndr_print_uint16(ndr
, "ttoption", r
->ttoption
);
616 ndr_print_uint16(ndr
, "collate", r
->collate
);
617 ndr_print_string(ndr
, "formname", r
->formname
);
618 ndr_print_uint16(ndr
, "logpixels", r
->logpixels
);
619 ndr_print_uint32(ndr
, "bitsperpel", r
->bitsperpel
);
620 ndr_print_uint32(ndr
, "pelswidth", r
->pelswidth
);
621 ndr_print_uint32(ndr
, "pelsheight", r
->pelsheight
);
622 ndr_print_uint32(ndr
, "displayflags", r
->displayflags
);
623 ndr_print_uint32(ndr
, "displayfrequency", r
->displayfrequency
);
624 ndr_print_uint32(ndr
, "icmmethod", r
->icmmethod
);
625 ndr_print_uint32(ndr
, "icmintent", r
->icmintent
);
626 ndr_print_uint32(ndr
, "mediatype", r
->mediatype
);
627 ndr_print_uint32(ndr
, "dithertype", r
->dithertype
);
628 ndr_print_uint32(ndr
, "reserved1", r
->reserved1
);
629 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
630 ndr_print_uint32(ndr
, "panningwidth", r
->panningwidth
);
631 ndr_print_uint32(ndr
, "panningheight", r
->panningheight
);
632 ndr_print_DATA_BLOB(ndr
, "driverextra_data", r
->driverextra_data
);
636 _PUBLIC_
size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode
*r
, struct smb_iconv_convenience
*ic
, int flags
)
638 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DeviceMode
, ic
);
641 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
644 return NDR_ERR_SUCCESS
;
647 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
650 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
652 return NDR_ERR_SUCCESS
;
655 _PUBLIC_
void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
657 ndr_print_uint32(ndr
, name
, r
);
659 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT
, r
);
660 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL
, r
);
661 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS
, r
);
662 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE
, r
);
663 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME
, r
);
664 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE
, r
);
665 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED
, r
);
666 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK
, r
);
667 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND
, r
);
668 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER
, r
);
669 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1
, r
);
670 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2
, r
);
671 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3
, r
);
672 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4
, r
);
673 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5
, r
);
674 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6
, r
);
675 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7
, r
);
676 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8
, r
);
677 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE
, r
);
681 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo1
*r
)
683 if (ndr_flags
& NDR_SCALARS
) {
684 NDR_CHECK(ndr_push_align(ndr
, 4));
685 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->flags
));
687 uint32_t _flags_save_string
= ndr
->flags
;
688 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
689 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name
));
690 ndr
->flags
= _flags_save_string
;
693 uint32_t _flags_save_string
= ndr
->flags
;
694 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
695 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
696 ndr
->flags
= _flags_save_string
;
699 uint32_t _flags_save_string
= ndr
->flags
;
700 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
701 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
702 ndr
->flags
= _flags_save_string
;
705 if (ndr_flags
& NDR_BUFFERS
) {
707 uint32_t _flags_save_string
= ndr
->flags
;
708 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
710 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->name
));
711 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name
));
713 ndr
->flags
= _flags_save_string
;
716 uint32_t _flags_save_string
= ndr
->flags
;
717 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
718 if (r
->description
) {
719 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->description
));
720 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
722 ndr
->flags
= _flags_save_string
;
725 uint32_t _flags_save_string
= ndr
->flags
;
726 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
728 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->comment
));
729 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
731 ndr
->flags
= _flags_save_string
;
734 return NDR_ERR_SUCCESS
;
737 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo1
*r
)
740 TALLOC_CTX
*_mem_save_name_0
;
741 uint32_t _ptr_description
;
742 TALLOC_CTX
*_mem_save_description_0
;
743 uint32_t _ptr_comment
;
744 TALLOC_CTX
*_mem_save_comment_0
;
745 if (ndr_flags
& NDR_SCALARS
) {
746 NDR_CHECK(ndr_pull_align(ndr
, 4));
747 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->flags
));
749 uint32_t _flags_save_string
= ndr
->flags
;
750 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
751 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
753 NDR_PULL_ALLOC(ndr
, r
->name
);
754 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name
, _ptr_name
));
758 ndr
->flags
= _flags_save_string
;
761 uint32_t _flags_save_string
= ndr
->flags
;
762 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
763 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
764 if (_ptr_description
) {
765 NDR_PULL_ALLOC(ndr
, r
->description
);
766 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
768 r
->description
= NULL
;
770 ndr
->flags
= _flags_save_string
;
773 uint32_t _flags_save_string
= ndr
->flags
;
774 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
775 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
777 NDR_PULL_ALLOC(ndr
, r
->comment
);
778 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
782 ndr
->flags
= _flags_save_string
;
785 if (ndr_flags
& NDR_BUFFERS
) {
787 uint32_t _flags_save_string
= ndr
->flags
;
788 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
790 uint32_t _relative_save_offset
;
791 _relative_save_offset
= ndr
->offset
;
792 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name
));
793 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
794 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
795 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name
));
796 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
797 ndr
->offset
= _relative_save_offset
;
799 ndr
->flags
= _flags_save_string
;
802 uint32_t _flags_save_string
= ndr
->flags
;
803 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
804 if (r
->description
) {
805 uint32_t _relative_save_offset
;
806 _relative_save_offset
= ndr
->offset
;
807 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
808 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
809 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
810 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
811 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
812 ndr
->offset
= _relative_save_offset
;
814 ndr
->flags
= _flags_save_string
;
817 uint32_t _flags_save_string
= ndr
->flags
;
818 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
820 uint32_t _relative_save_offset
;
821 _relative_save_offset
= ndr
->offset
;
822 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
823 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
824 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
825 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
826 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
827 ndr
->offset
= _relative_save_offset
;
829 ndr
->flags
= _flags_save_string
;
832 return NDR_ERR_SUCCESS
;
835 _PUBLIC_
void ndr_print_spoolss_PrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo1
*r
)
837 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo1");
839 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->flags
);
840 ndr_print_ptr(ndr
, "name", r
->name
);
843 ndr_print_string(ndr
, "name", r
->name
);
846 ndr_print_ptr(ndr
, "description", r
->description
);
848 if (r
->description
) {
849 ndr_print_string(ndr
, "description", r
->description
);
852 ndr_print_ptr(ndr
, "comment", r
->comment
);
855 ndr_print_string(ndr
, "comment", r
->comment
);
861 static enum ndr_err_code
ndr_push_spoolss_PrinterAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
863 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
864 return NDR_ERR_SUCCESS
;
867 static enum ndr_err_code
ndr_pull_spoolss_PrinterAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
870 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
872 return NDR_ERR_SUCCESS
;
875 _PUBLIC_
void ndr_print_spoolss_PrinterAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
877 ndr_print_uint32(ndr
, name
, r
);
879 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED
, r
);
880 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT
, r
);
881 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT
, r
);
882 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED
, r
);
883 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK
, r
);
884 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN
, r
);
885 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL
, r
);
886 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ
, r
);
887 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS
, r
);
888 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST
, r
);
889 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE
, r
);
890 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI
, r
);
891 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY
, r
);
892 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED
, r
);
893 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX
, r
);
894 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS
, r
);
898 static enum ndr_err_code
ndr_push_spoolss_PrinterStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
900 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
901 return NDR_ERR_SUCCESS
;
904 static enum ndr_err_code
ndr_pull_spoolss_PrinterStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
907 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
909 return NDR_ERR_SUCCESS
;
912 _PUBLIC_
void ndr_print_spoolss_PrinterStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
914 ndr_print_uint32(ndr
, name
, r
);
916 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED
, r
);
917 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR
, r
);
918 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION
, r
);
919 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM
, r
);
920 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT
, r
);
921 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED
, r
);
922 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM
, r
);
923 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE
, r
);
924 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE
, r
);
925 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY
, r
);
926 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING
, r
);
927 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL
, r
);
928 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE
, r
);
929 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING
, r
);
930 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING
, r
);
931 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING
, r
);
932 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP
, r
);
933 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW
, r
);
934 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER
, r
);
935 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT
, r
);
936 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION
, r
);
937 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY
, r
);
938 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN
, r
);
939 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN
, r
);
940 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE
, r
);
944 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo2
*r
)
946 if (ndr_flags
& NDR_SCALARS
) {
947 NDR_CHECK(ndr_push_align(ndr
, 4));
949 uint32_t _flags_save_string
= ndr
->flags
;
950 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
951 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
952 ndr
->flags
= _flags_save_string
;
955 uint32_t _flags_save_string
= ndr
->flags
;
956 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
957 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
958 ndr
->flags
= _flags_save_string
;
961 uint32_t _flags_save_string
= ndr
->flags
;
962 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
963 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->sharename
));
964 ndr
->flags
= _flags_save_string
;
967 uint32_t _flags_save_string
= ndr
->flags
;
968 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
969 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
970 ndr
->flags
= _flags_save_string
;
973 uint32_t _flags_save_string
= ndr
->flags
;
974 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
975 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->drivername
));
976 ndr
->flags
= _flags_save_string
;
979 uint32_t _flags_save_string
= ndr
->flags
;
980 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
981 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
982 ndr
->flags
= _flags_save_string
;
985 uint32_t _flags_save_string
= ndr
->flags
;
986 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
987 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->location
));
988 ndr
->flags
= _flags_save_string
;
990 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
992 uint32_t _flags_save_string
= ndr
->flags
;
993 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
994 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->sepfile
));
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_push_relative_ptr1(ndr
, r
->printprocessor
));
1001 ndr
->flags
= _flags_save_string
;
1004 uint32_t _flags_save_string
= ndr
->flags
;
1005 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1006 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->datatype
));
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_push_relative_ptr1(ndr
, r
->parameters
));
1013 ndr
->flags
= _flags_save_string
;
1015 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
1016 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1017 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
1018 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
1019 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
1020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
1021 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
1022 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
1023 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
1025 if (ndr_flags
& NDR_BUFFERS
) {
1027 uint32_t _flags_save_string
= ndr
->flags
;
1028 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1029 if (r
->servername
) {
1030 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
1031 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
1033 ndr
->flags
= _flags_save_string
;
1036 uint32_t _flags_save_string
= ndr
->flags
;
1037 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1038 if (r
->printername
) {
1039 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1040 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1042 ndr
->flags
= _flags_save_string
;
1045 uint32_t _flags_save_string
= ndr
->flags
;
1046 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1048 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->sharename
));
1049 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->sharename
));
1051 ndr
->flags
= _flags_save_string
;
1054 uint32_t _flags_save_string
= ndr
->flags
;
1055 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1057 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->portname
));
1058 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
1060 ndr
->flags
= _flags_save_string
;
1063 uint32_t _flags_save_string
= ndr
->flags
;
1064 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1065 if (r
->drivername
) {
1066 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->drivername
));
1067 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->drivername
));
1069 ndr
->flags
= _flags_save_string
;
1072 uint32_t _flags_save_string
= ndr
->flags
;
1073 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1075 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->comment
));
1076 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
1078 ndr
->flags
= _flags_save_string
;
1081 uint32_t _flags_save_string
= ndr
->flags
;
1082 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1084 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->location
));
1085 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->location
));
1087 ndr
->flags
= _flags_save_string
;
1090 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
1092 struct ndr_push
*_ndr_devmode
;
1093 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1094 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1095 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1099 uint32_t _flags_save_string
= ndr
->flags
;
1100 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1102 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->sepfile
));
1103 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->sepfile
));
1105 ndr
->flags
= _flags_save_string
;
1108 uint32_t _flags_save_string
= ndr
->flags
;
1109 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1110 if (r
->printprocessor
) {
1111 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printprocessor
));
1112 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printprocessor
));
1114 ndr
->flags
= _flags_save_string
;
1117 uint32_t _flags_save_string
= ndr
->flags
;
1118 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1120 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->datatype
));
1121 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->datatype
));
1123 ndr
->flags
= _flags_save_string
;
1126 uint32_t _flags_save_string
= ndr
->flags
;
1127 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1128 if (r
->parameters
) {
1129 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
1130 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
1132 ndr
->flags
= _flags_save_string
;
1135 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
1137 struct ndr_push
*_ndr_secdesc
;
1138 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1139 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1140 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1144 return NDR_ERR_SUCCESS
;
1147 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo2
*r
)
1149 uint32_t _ptr_servername
;
1150 TALLOC_CTX
*_mem_save_servername_0
;
1151 uint32_t _ptr_printername
;
1152 TALLOC_CTX
*_mem_save_printername_0
;
1153 uint32_t _ptr_sharename
;
1154 TALLOC_CTX
*_mem_save_sharename_0
;
1155 uint32_t _ptr_portname
;
1156 TALLOC_CTX
*_mem_save_portname_0
;
1157 uint32_t _ptr_drivername
;
1158 TALLOC_CTX
*_mem_save_drivername_0
;
1159 uint32_t _ptr_comment
;
1160 TALLOC_CTX
*_mem_save_comment_0
;
1161 uint32_t _ptr_location
;
1162 TALLOC_CTX
*_mem_save_location_0
;
1163 uint32_t _ptr_devmode
;
1164 TALLOC_CTX
*_mem_save_devmode_0
;
1165 uint32_t _ptr_sepfile
;
1166 TALLOC_CTX
*_mem_save_sepfile_0
;
1167 uint32_t _ptr_printprocessor
;
1168 TALLOC_CTX
*_mem_save_printprocessor_0
;
1169 uint32_t _ptr_datatype
;
1170 TALLOC_CTX
*_mem_save_datatype_0
;
1171 uint32_t _ptr_parameters
;
1172 TALLOC_CTX
*_mem_save_parameters_0
;
1173 uint32_t _ptr_secdesc
;
1174 TALLOC_CTX
*_mem_save_secdesc_0
;
1175 if (ndr_flags
& NDR_SCALARS
) {
1176 NDR_CHECK(ndr_pull_align(ndr
, 4));
1178 uint32_t _flags_save_string
= ndr
->flags
;
1179 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1180 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1181 if (_ptr_servername
) {
1182 NDR_PULL_ALLOC(ndr
, r
->servername
);
1183 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1185 r
->servername
= NULL
;
1187 ndr
->flags
= _flags_save_string
;
1190 uint32_t _flags_save_string
= ndr
->flags
;
1191 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1192 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1193 if (_ptr_printername
) {
1194 NDR_PULL_ALLOC(ndr
, r
->printername
);
1195 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1197 r
->printername
= NULL
;
1199 ndr
->flags
= _flags_save_string
;
1202 uint32_t _flags_save_string
= ndr
->flags
;
1203 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1204 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
1205 if (_ptr_sharename
) {
1206 NDR_PULL_ALLOC(ndr
, r
->sharename
);
1207 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sharename
, _ptr_sharename
));
1209 r
->sharename
= NULL
;
1211 ndr
->flags
= _flags_save_string
;
1214 uint32_t _flags_save_string
= ndr
->flags
;
1215 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1216 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1217 if (_ptr_portname
) {
1218 NDR_PULL_ALLOC(ndr
, r
->portname
);
1219 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1223 ndr
->flags
= _flags_save_string
;
1226 uint32_t _flags_save_string
= ndr
->flags
;
1227 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1228 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
1229 if (_ptr_drivername
) {
1230 NDR_PULL_ALLOC(ndr
, r
->drivername
);
1231 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->drivername
, _ptr_drivername
));
1233 r
->drivername
= NULL
;
1235 ndr
->flags
= _flags_save_string
;
1238 uint32_t _flags_save_string
= ndr
->flags
;
1239 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1240 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1242 NDR_PULL_ALLOC(ndr
, r
->comment
);
1243 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1247 ndr
->flags
= _flags_save_string
;
1250 uint32_t _flags_save_string
= ndr
->flags
;
1251 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1252 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
1253 if (_ptr_location
) {
1254 NDR_PULL_ALLOC(ndr
, r
->location
);
1255 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->location
, _ptr_location
));
1259 ndr
->flags
= _flags_save_string
;
1261 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
1263 NDR_PULL_ALLOC(ndr
, r
->devmode
);
1264 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
1269 uint32_t _flags_save_string
= ndr
->flags
;
1270 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1271 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
1273 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
1274 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sepfile
, _ptr_sepfile
));
1278 ndr
->flags
= _flags_save_string
;
1281 uint32_t _flags_save_string
= ndr
->flags
;
1282 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1283 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
1284 if (_ptr_printprocessor
) {
1285 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
1286 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printprocessor
, _ptr_printprocessor
));
1288 r
->printprocessor
= NULL
;
1290 ndr
->flags
= _flags_save_string
;
1293 uint32_t _flags_save_string
= ndr
->flags
;
1294 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1295 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
1296 if (_ptr_datatype
) {
1297 NDR_PULL_ALLOC(ndr
, r
->datatype
);
1298 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->datatype
, _ptr_datatype
));
1302 ndr
->flags
= _flags_save_string
;
1305 uint32_t _flags_save_string
= ndr
->flags
;
1306 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1307 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
1308 if (_ptr_parameters
) {
1309 NDR_PULL_ALLOC(ndr
, r
->parameters
);
1310 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
1312 r
->parameters
= NULL
;
1314 ndr
->flags
= _flags_save_string
;
1316 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1318 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1319 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1323 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1324 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
1325 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
1326 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
1327 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
1328 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
1329 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
1330 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
1332 if (ndr_flags
& NDR_BUFFERS
) {
1334 uint32_t _flags_save_string
= ndr
->flags
;
1335 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1336 if (r
->servername
) {
1337 uint32_t _relative_save_offset
;
1338 _relative_save_offset
= ndr
->offset
;
1339 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1340 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1341 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1342 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1343 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1344 ndr
->offset
= _relative_save_offset
;
1346 ndr
->flags
= _flags_save_string
;
1349 uint32_t _flags_save_string
= ndr
->flags
;
1350 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1351 if (r
->printername
) {
1352 uint32_t _relative_save_offset
;
1353 _relative_save_offset
= ndr
->offset
;
1354 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1355 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1356 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1357 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1358 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1359 ndr
->offset
= _relative_save_offset
;
1361 ndr
->flags
= _flags_save_string
;
1364 uint32_t _flags_save_string
= ndr
->flags
;
1365 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1367 uint32_t _relative_save_offset
;
1368 _relative_save_offset
= ndr
->offset
;
1369 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sharename
));
1370 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1371 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
1372 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sharename
));
1373 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
1374 ndr
->offset
= _relative_save_offset
;
1376 ndr
->flags
= _flags_save_string
;
1379 uint32_t _flags_save_string
= ndr
->flags
;
1380 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1382 uint32_t _relative_save_offset
;
1383 _relative_save_offset
= ndr
->offset
;
1384 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
1385 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1386 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
1387 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
1388 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
1389 ndr
->offset
= _relative_save_offset
;
1391 ndr
->flags
= _flags_save_string
;
1394 uint32_t _flags_save_string
= ndr
->flags
;
1395 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1396 if (r
->drivername
) {
1397 uint32_t _relative_save_offset
;
1398 _relative_save_offset
= ndr
->offset
;
1399 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->drivername
));
1400 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1401 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
1402 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->drivername
));
1403 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
1404 ndr
->offset
= _relative_save_offset
;
1406 ndr
->flags
= _flags_save_string
;
1409 uint32_t _flags_save_string
= ndr
->flags
;
1410 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1412 uint32_t _relative_save_offset
;
1413 _relative_save_offset
= ndr
->offset
;
1414 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
1415 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1416 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
1417 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
1418 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
1419 ndr
->offset
= _relative_save_offset
;
1421 ndr
->flags
= _flags_save_string
;
1424 uint32_t _flags_save_string
= ndr
->flags
;
1425 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1427 uint32_t _relative_save_offset
;
1428 _relative_save_offset
= ndr
->offset
;
1429 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->location
));
1430 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1431 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
1432 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->location
));
1433 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
1434 ndr
->offset
= _relative_save_offset
;
1436 ndr
->flags
= _flags_save_string
;
1439 uint32_t _relative_save_offset
;
1440 _relative_save_offset
= ndr
->offset
;
1441 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
1442 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1443 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
1445 struct ndr_pull
*_ndr_devmode
;
1446 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1447 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1448 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
1451 ndr
->offset
= _relative_save_offset
;
1454 uint32_t _flags_save_string
= ndr
->flags
;
1455 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1457 uint32_t _relative_save_offset
;
1458 _relative_save_offset
= ndr
->offset
;
1459 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sepfile
));
1460 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1461 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
1462 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sepfile
));
1463 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
1464 ndr
->offset
= _relative_save_offset
;
1466 ndr
->flags
= _flags_save_string
;
1469 uint32_t _flags_save_string
= ndr
->flags
;
1470 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1471 if (r
->printprocessor
) {
1472 uint32_t _relative_save_offset
;
1473 _relative_save_offset
= ndr
->offset
;
1474 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printprocessor
));
1475 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1476 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
1477 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printprocessor
));
1478 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
1479 ndr
->offset
= _relative_save_offset
;
1481 ndr
->flags
= _flags_save_string
;
1484 uint32_t _flags_save_string
= ndr
->flags
;
1485 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1487 uint32_t _relative_save_offset
;
1488 _relative_save_offset
= ndr
->offset
;
1489 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->datatype
));
1490 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1491 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
1492 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->datatype
));
1493 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
1494 ndr
->offset
= _relative_save_offset
;
1496 ndr
->flags
= _flags_save_string
;
1499 uint32_t _flags_save_string
= ndr
->flags
;
1500 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1501 if (r
->parameters
) {
1502 uint32_t _relative_save_offset
;
1503 _relative_save_offset
= ndr
->offset
;
1504 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
1505 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1506 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
1507 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
1508 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
1509 ndr
->offset
= _relative_save_offset
;
1511 ndr
->flags
= _flags_save_string
;
1514 uint32_t _relative_save_offset
;
1515 _relative_save_offset
= ndr
->offset
;
1516 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
1517 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1518 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
1520 struct ndr_pull
*_ndr_secdesc
;
1521 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1522 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1523 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1525 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1526 ndr
->offset
= _relative_save_offset
;
1529 return NDR_ERR_SUCCESS
;
1532 _PUBLIC_
void ndr_print_spoolss_PrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo2
*r
)
1534 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo2");
1536 ndr_print_ptr(ndr
, "servername", r
->servername
);
1538 if (r
->servername
) {
1539 ndr_print_string(ndr
, "servername", r
->servername
);
1542 ndr_print_ptr(ndr
, "printername", r
->printername
);
1544 if (r
->printername
) {
1545 ndr_print_string(ndr
, "printername", r
->printername
);
1548 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
1551 ndr_print_string(ndr
, "sharename", r
->sharename
);
1554 ndr_print_ptr(ndr
, "portname", r
->portname
);
1557 ndr_print_string(ndr
, "portname", r
->portname
);
1560 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
1562 if (r
->drivername
) {
1563 ndr_print_string(ndr
, "drivername", r
->drivername
);
1566 ndr_print_ptr(ndr
, "comment", r
->comment
);
1569 ndr_print_string(ndr
, "comment", r
->comment
);
1572 ndr_print_ptr(ndr
, "location", r
->location
);
1575 ndr_print_string(ndr
, "location", r
->location
);
1578 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
1581 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
1584 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
1587 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
1590 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
1592 if (r
->printprocessor
) {
1593 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
1596 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
1599 ndr_print_string(ndr
, "datatype", r
->datatype
);
1602 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
1604 if (r
->parameters
) {
1605 ndr_print_string(ndr
, "parameters", r
->parameters
);
1608 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
1611 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
1614 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1615 ndr_print_uint32(ndr
, "priority", r
->priority
);
1616 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
1617 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
1618 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
1619 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
1620 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
1621 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
1625 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo3
*r
)
1627 if (ndr_flags
& NDR_SCALARS
) {
1628 NDR_CHECK(ndr_push_align(ndr
, 4));
1629 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
1631 if (ndr_flags
& NDR_BUFFERS
) {
1633 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
1635 struct ndr_push
*_ndr_secdesc
;
1636 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1637 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1638 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1642 return NDR_ERR_SUCCESS
;
1645 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo3
*r
)
1647 uint32_t _ptr_secdesc
;
1648 TALLOC_CTX
*_mem_save_secdesc_0
;
1649 if (ndr_flags
& NDR_SCALARS
) {
1650 NDR_CHECK(ndr_pull_align(ndr
, 4));
1651 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1653 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1654 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1659 if (ndr_flags
& NDR_BUFFERS
) {
1661 uint32_t _relative_save_offset
;
1662 _relative_save_offset
= ndr
->offset
;
1663 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
1664 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1665 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
1667 struct ndr_pull
*_ndr_secdesc
;
1668 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1669 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1670 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1672 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1673 ndr
->offset
= _relative_save_offset
;
1676 return NDR_ERR_SUCCESS
;
1679 _PUBLIC_
void ndr_print_spoolss_PrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo3
*r
)
1681 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo3");
1683 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
1686 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
1692 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo4
*r
)
1694 if (ndr_flags
& NDR_SCALARS
) {
1695 NDR_CHECK(ndr_push_align(ndr
, 4));
1697 uint32_t _flags_save_string
= ndr
->flags
;
1698 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1699 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1700 ndr
->flags
= _flags_save_string
;
1703 uint32_t _flags_save_string
= ndr
->flags
;
1704 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1705 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
1706 ndr
->flags
= _flags_save_string
;
1708 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1710 if (ndr_flags
& NDR_BUFFERS
) {
1712 uint32_t _flags_save_string
= ndr
->flags
;
1713 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1714 if (r
->printername
) {
1715 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1716 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1718 ndr
->flags
= _flags_save_string
;
1721 uint32_t _flags_save_string
= ndr
->flags
;
1722 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1723 if (r
->servername
) {
1724 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
1725 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
1727 ndr
->flags
= _flags_save_string
;
1730 return NDR_ERR_SUCCESS
;
1733 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo4
*r
)
1735 uint32_t _ptr_printername
;
1736 TALLOC_CTX
*_mem_save_printername_0
;
1737 uint32_t _ptr_servername
;
1738 TALLOC_CTX
*_mem_save_servername_0
;
1739 if (ndr_flags
& NDR_SCALARS
) {
1740 NDR_CHECK(ndr_pull_align(ndr
, 4));
1742 uint32_t _flags_save_string
= ndr
->flags
;
1743 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1744 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1745 if (_ptr_printername
) {
1746 NDR_PULL_ALLOC(ndr
, r
->printername
);
1747 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1749 r
->printername
= NULL
;
1751 ndr
->flags
= _flags_save_string
;
1754 uint32_t _flags_save_string
= ndr
->flags
;
1755 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1756 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1757 if (_ptr_servername
) {
1758 NDR_PULL_ALLOC(ndr
, r
->servername
);
1759 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1761 r
->servername
= NULL
;
1763 ndr
->flags
= _flags_save_string
;
1765 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1767 if (ndr_flags
& NDR_BUFFERS
) {
1769 uint32_t _flags_save_string
= ndr
->flags
;
1770 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1771 if (r
->printername
) {
1772 uint32_t _relative_save_offset
;
1773 _relative_save_offset
= ndr
->offset
;
1774 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1775 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1776 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1777 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1778 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1779 ndr
->offset
= _relative_save_offset
;
1781 ndr
->flags
= _flags_save_string
;
1784 uint32_t _flags_save_string
= ndr
->flags
;
1785 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1786 if (r
->servername
) {
1787 uint32_t _relative_save_offset
;
1788 _relative_save_offset
= ndr
->offset
;
1789 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1790 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1791 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1792 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1793 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1794 ndr
->offset
= _relative_save_offset
;
1796 ndr
->flags
= _flags_save_string
;
1799 return NDR_ERR_SUCCESS
;
1802 _PUBLIC_
void ndr_print_spoolss_PrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo4
*r
)
1804 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo4");
1806 ndr_print_ptr(ndr
, "printername", r
->printername
);
1808 if (r
->printername
) {
1809 ndr_print_string(ndr
, "printername", r
->printername
);
1812 ndr_print_ptr(ndr
, "servername", r
->servername
);
1814 if (r
->servername
) {
1815 ndr_print_string(ndr
, "servername", r
->servername
);
1818 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1822 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo5
*r
)
1824 if (ndr_flags
& NDR_SCALARS
) {
1825 NDR_CHECK(ndr_push_align(ndr
, 4));
1827 uint32_t _flags_save_string
= ndr
->flags
;
1828 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1829 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1830 ndr
->flags
= _flags_save_string
;
1833 uint32_t _flags_save_string
= ndr
->flags
;
1834 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1835 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
1836 ndr
->flags
= _flags_save_string
;
1838 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1839 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
1840 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
1842 if (ndr_flags
& NDR_BUFFERS
) {
1844 uint32_t _flags_save_string
= ndr
->flags
;
1845 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1846 if (r
->printername
) {
1847 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1848 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1850 ndr
->flags
= _flags_save_string
;
1853 uint32_t _flags_save_string
= ndr
->flags
;
1854 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1856 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->portname
));
1857 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
1859 ndr
->flags
= _flags_save_string
;
1862 return NDR_ERR_SUCCESS
;
1865 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo5
*r
)
1867 uint32_t _ptr_printername
;
1868 TALLOC_CTX
*_mem_save_printername_0
;
1869 uint32_t _ptr_portname
;
1870 TALLOC_CTX
*_mem_save_portname_0
;
1871 if (ndr_flags
& NDR_SCALARS
) {
1872 NDR_CHECK(ndr_pull_align(ndr
, 4));
1874 uint32_t _flags_save_string
= ndr
->flags
;
1875 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1876 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1877 if (_ptr_printername
) {
1878 NDR_PULL_ALLOC(ndr
, r
->printername
);
1879 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1881 r
->printername
= NULL
;
1883 ndr
->flags
= _flags_save_string
;
1886 uint32_t _flags_save_string
= ndr
->flags
;
1887 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1888 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1889 if (_ptr_portname
) {
1890 NDR_PULL_ALLOC(ndr
, r
->portname
);
1891 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1895 ndr
->flags
= _flags_save_string
;
1897 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1898 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
1899 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
1901 if (ndr_flags
& NDR_BUFFERS
) {
1903 uint32_t _flags_save_string
= ndr
->flags
;
1904 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1905 if (r
->printername
) {
1906 uint32_t _relative_save_offset
;
1907 _relative_save_offset
= ndr
->offset
;
1908 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1909 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1910 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1911 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1912 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1913 ndr
->offset
= _relative_save_offset
;
1915 ndr
->flags
= _flags_save_string
;
1918 uint32_t _flags_save_string
= ndr
->flags
;
1919 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1921 uint32_t _relative_save_offset
;
1922 _relative_save_offset
= ndr
->offset
;
1923 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
1924 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1925 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
1926 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
1927 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
1928 ndr
->offset
= _relative_save_offset
;
1930 ndr
->flags
= _flags_save_string
;
1933 return NDR_ERR_SUCCESS
;
1936 _PUBLIC_
void ndr_print_spoolss_PrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo5
*r
)
1938 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo5");
1940 ndr_print_ptr(ndr
, "printername", r
->printername
);
1942 if (r
->printername
) {
1943 ndr_print_string(ndr
, "printername", r
->printername
);
1946 ndr_print_ptr(ndr
, "portname", r
->portname
);
1949 ndr_print_string(ndr
, "portname", r
->portname
);
1952 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1953 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
1954 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
1958 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo6
*r
)
1960 if (ndr_flags
& NDR_SCALARS
) {
1961 NDR_CHECK(ndr_push_align(ndr
, 4));
1962 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
1964 if (ndr_flags
& NDR_BUFFERS
) {
1966 return NDR_ERR_SUCCESS
;
1969 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo6
*r
)
1971 if (ndr_flags
& NDR_SCALARS
) {
1972 NDR_CHECK(ndr_pull_align(ndr
, 4));
1973 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
1975 if (ndr_flags
& NDR_BUFFERS
) {
1977 return NDR_ERR_SUCCESS
;
1980 _PUBLIC_
void ndr_print_spoolss_PrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo6
*r
)
1982 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo6");
1984 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
1988 static enum ndr_err_code
ndr_push_spoolss_DsPrintAction(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1991 return NDR_ERR_SUCCESS
;
1994 static enum ndr_err_code
ndr_pull_spoolss_DsPrintAction(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1997 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1999 return NDR_ERR_SUCCESS
;
2002 _PUBLIC_
void ndr_print_spoolss_DsPrintAction(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
2004 ndr_print_uint32(ndr
, name
, r
);
2006 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH
, r
);
2007 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE
, r
);
2008 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH
, r
);
2009 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH
, r
);
2010 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING
, r
);
2014 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo7
*r
)
2016 if (ndr_flags
& NDR_SCALARS
) {
2017 NDR_CHECK(ndr_push_align(ndr
, 4));
2019 uint32_t _flags_save_string
= ndr
->flags
;
2020 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2021 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->guid
));
2022 ndr
->flags
= _flags_save_string
;
2024 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
2026 if (ndr_flags
& NDR_BUFFERS
) {
2028 uint32_t _flags_save_string
= ndr
->flags
;
2029 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2031 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->guid
));
2032 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->guid
));
2034 ndr
->flags
= _flags_save_string
;
2037 return NDR_ERR_SUCCESS
;
2040 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo7
*r
)
2043 TALLOC_CTX
*_mem_save_guid_0
;
2044 if (ndr_flags
& NDR_SCALARS
) {
2045 NDR_CHECK(ndr_pull_align(ndr
, 4));
2047 uint32_t _flags_save_string
= ndr
->flags
;
2048 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2049 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
2051 NDR_PULL_ALLOC(ndr
, r
->guid
);
2052 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->guid
, _ptr_guid
));
2056 ndr
->flags
= _flags_save_string
;
2058 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
2060 if (ndr_flags
& NDR_BUFFERS
) {
2062 uint32_t _flags_save_string
= ndr
->flags
;
2063 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2065 uint32_t _relative_save_offset
;
2066 _relative_save_offset
= ndr
->offset
;
2067 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->guid
));
2068 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2069 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
2070 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->guid
));
2071 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
2072 ndr
->offset
= _relative_save_offset
;
2074 ndr
->flags
= _flags_save_string
;
2077 return NDR_ERR_SUCCESS
;
2080 _PUBLIC_
void ndr_print_spoolss_PrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo7
*r
)
2082 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo7");
2084 ndr_print_ptr(ndr
, "guid", r
->guid
);
2087 ndr_print_string(ndr
, "guid", r
->guid
);
2090 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
2094 static enum ndr_err_code
ndr_push_spoolss_DeviceModeInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceModeInfo
*r
)
2096 if (ndr_flags
& NDR_SCALARS
) {
2097 NDR_CHECK(ndr_push_align(ndr
, 4));
2098 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
2100 if (ndr_flags
& NDR_BUFFERS
) {
2102 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
2104 struct ndr_push
*_ndr_devmode
;
2105 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2106 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2107 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2111 return NDR_ERR_SUCCESS
;
2114 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceModeInfo
*r
)
2116 uint32_t _ptr_devmode
;
2117 TALLOC_CTX
*_mem_save_devmode_0
;
2118 if (ndr_flags
& NDR_SCALARS
) {
2119 NDR_CHECK(ndr_pull_align(ndr
, 4));
2120 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2122 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2123 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
2128 if (ndr_flags
& NDR_BUFFERS
) {
2130 uint32_t _relative_save_offset
;
2131 _relative_save_offset
= ndr
->offset
;
2132 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
2133 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2134 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2136 struct ndr_pull
*_ndr_devmode
;
2137 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2138 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2139 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2141 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2142 ndr
->offset
= _relative_save_offset
;
2145 return NDR_ERR_SUCCESS
;
2148 _PUBLIC_
void ndr_print_spoolss_DeviceModeInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceModeInfo
*r
)
2150 ndr_print_struct(ndr
, name
, "spoolss_DeviceModeInfo");
2152 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2155 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2161 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterInfo
*r
)
2163 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
2164 if (ndr_flags
& NDR_SCALARS
) {
2165 int level
= ndr_push_get_switch_value(ndr
, r
);
2168 NDR_CHECK(ndr_push_align(ndr
, 4));
2169 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2170 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2174 NDR_CHECK(ndr_push_align(ndr
, 4));
2175 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2176 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2180 NDR_CHECK(ndr_push_align(ndr
, 4));
2181 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2182 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2186 NDR_CHECK(ndr_push_align(ndr
, 4));
2187 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2188 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2192 NDR_CHECK(ndr_push_align(ndr
, 4));
2193 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2194 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2198 NDR_CHECK(ndr_push_align(ndr
, 4));
2199 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2200 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2204 NDR_CHECK(ndr_push_align(ndr
, 4));
2205 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2206 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2210 NDR_CHECK(ndr_push_align(ndr
, 4));
2211 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2212 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2216 NDR_CHECK(ndr_push_align(ndr
, 4));
2217 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2218 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2222 NDR_CHECK(ndr_push_align(ndr
, 4));
2223 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2224 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2232 if (ndr_flags
& NDR_BUFFERS
) {
2233 int level
= ndr_push_get_switch_value(ndr
, r
);
2234 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
2237 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2241 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2245 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2249 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2253 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2257 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2264 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2268 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2272 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2280 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2281 return NDR_ERR_SUCCESS
;
2284 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterInfo
*r
)
2286 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
2288 level
= ndr_pull_get_switch_value(ndr
, r
);
2289 if (ndr_flags
& NDR_SCALARS
) {
2292 NDR_CHECK(ndr_pull_align(ndr
, 4));
2293 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2294 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2298 NDR_CHECK(ndr_pull_align(ndr
, 4));
2299 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2300 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2304 NDR_CHECK(ndr_pull_align(ndr
, 4));
2305 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2306 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2310 NDR_CHECK(ndr_pull_align(ndr
, 4));
2311 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2312 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2316 NDR_CHECK(ndr_pull_align(ndr
, 4));
2317 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2318 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2322 NDR_CHECK(ndr_pull_align(ndr
, 4));
2323 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2324 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2328 NDR_CHECK(ndr_pull_align(ndr
, 4));
2329 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2330 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2334 NDR_CHECK(ndr_pull_align(ndr
, 4));
2335 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2336 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2340 NDR_CHECK(ndr_pull_align(ndr
, 4));
2341 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2342 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2346 NDR_CHECK(ndr_pull_align(ndr
, 4));
2347 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2348 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2356 if (ndr_flags
& NDR_BUFFERS
) {
2357 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
2360 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2364 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2368 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2372 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2376 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2380 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2387 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2391 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2395 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2403 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2404 return NDR_ERR_SUCCESS
;
2407 _PUBLIC_
void ndr_print_spoolss_PrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterInfo
*r
)
2410 level
= ndr_print_get_switch_value(ndr
, r
);
2411 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterInfo");
2414 ndr_print_spoolss_PrinterInfo0(ndr
, "info0", &r
->info0
);
2418 ndr_print_spoolss_PrinterInfo1(ndr
, "info1", &r
->info1
);
2422 ndr_print_spoolss_PrinterInfo2(ndr
, "info2", &r
->info2
);
2426 ndr_print_spoolss_PrinterInfo3(ndr
, "info3", &r
->info3
);
2430 ndr_print_spoolss_PrinterInfo4(ndr
, "info4", &r
->info4
);
2434 ndr_print_spoolss_PrinterInfo5(ndr
, "info5", &r
->info5
);
2438 ndr_print_spoolss_PrinterInfo6(ndr
, "info6", &r
->info6
);
2442 ndr_print_spoolss_PrinterInfo7(ndr
, "info7", &r
->info7
);
2446 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", &r
->info8
);
2450 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", &r
->info9
);
2459 static enum ndr_err_code
ndr_push_spoolss_DevmodeContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DevmodeContainer
*r
)
2461 if (ndr_flags
& NDR_SCALARS
) {
2462 NDR_CHECK(ndr_push_align(ndr
, 4));
2463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2464 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
2466 if (ndr_flags
& NDR_BUFFERS
) {
2469 struct ndr_push
*_ndr_devmode
;
2470 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2471 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2472 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2476 return NDR_ERR_SUCCESS
;
2479 static enum ndr_err_code
ndr_pull_spoolss_DevmodeContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DevmodeContainer
*r
)
2481 uint32_t _ptr_devmode
;
2482 TALLOC_CTX
*_mem_save_devmode_0
;
2483 if (ndr_flags
& NDR_SCALARS
) {
2484 NDR_CHECK(ndr_pull_align(ndr
, 4));
2485 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
2486 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2488 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2493 if (ndr_flags
& NDR_BUFFERS
) {
2495 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2496 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2498 struct ndr_pull
*_ndr_devmode
;
2499 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 4, r
->_ndr_size
));
2500 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2501 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 4, r
->_ndr_size
));
2503 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2506 return NDR_ERR_SUCCESS
;
2509 _PUBLIC_
void ndr_print_spoolss_DevmodeContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DevmodeContainer
*r
)
2511 ndr_print_struct(ndr
, name
, "spoolss_DevmodeContainer");
2513 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
);
2514 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2517 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2523 static enum ndr_err_code
ndr_push_spoolss_JobStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
2525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
2526 return NDR_ERR_SUCCESS
;
2529 static enum ndr_err_code
ndr_pull_spoolss_JobStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
2532 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
2534 return NDR_ERR_SUCCESS
;
2537 _PUBLIC_
void ndr_print_spoolss_JobStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
2539 ndr_print_uint32(ndr
, name
, r
);
2541 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED
, r
);
2542 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR
, r
);
2543 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING
, r
);
2544 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING
, r
);
2545 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING
, r
);
2546 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE
, r
);
2547 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT
, r
);
2548 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED
, r
);
2549 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED
, r
);
2550 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ
, r
);
2551 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION
, r
);
2552 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART
, r
);
2553 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE
, r
);
2557 static enum ndr_err_code
ndr_push_spoolss_JobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo1
*r
)
2559 if (ndr_flags
& NDR_SCALARS
) {
2560 NDR_CHECK(ndr_push_align(ndr
, 4));
2561 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
2563 uint32_t _flags_save_string
= ndr
->flags
;
2564 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2565 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
2566 ndr
->flags
= _flags_save_string
;
2569 uint32_t _flags_save_string
= ndr
->flags
;
2570 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2571 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
2572 ndr
->flags
= _flags_save_string
;
2575 uint32_t _flags_save_string
= ndr
->flags
;
2576 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2577 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
2578 ndr
->flags
= _flags_save_string
;
2581 uint32_t _flags_save_string
= ndr
->flags
;
2582 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2583 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
2590 ndr
->flags
= _flags_save_string
;
2593 uint32_t _flags_save_string
= ndr
->flags
;
2594 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2595 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
2596 ndr
->flags
= _flags_save_string
;
2598 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
2599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
2600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
2601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
2602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
2603 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2605 if (ndr_flags
& NDR_BUFFERS
) {
2607 uint32_t _flags_save_string
= ndr
->flags
;
2608 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2609 if (r
->printer_name
) {
2610 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
2611 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
2613 ndr
->flags
= _flags_save_string
;
2616 uint32_t _flags_save_string
= ndr
->flags
;
2617 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2618 if (r
->server_name
) {
2619 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
2620 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
2622 ndr
->flags
= _flags_save_string
;
2625 uint32_t _flags_save_string
= ndr
->flags
;
2626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2628 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
2629 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
2631 ndr
->flags
= _flags_save_string
;
2634 uint32_t _flags_save_string
= ndr
->flags
;
2635 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2636 if (r
->document_name
) {
2637 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
2638 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
2640 ndr
->flags
= _flags_save_string
;
2643 uint32_t _flags_save_string
= ndr
->flags
;
2644 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2646 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
2647 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
2649 ndr
->flags
= _flags_save_string
;
2652 uint32_t _flags_save_string
= ndr
->flags
;
2653 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2654 if (r
->text_status
) {
2655 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
2656 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
2658 ndr
->flags
= _flags_save_string
;
2661 return NDR_ERR_SUCCESS
;
2664 static enum ndr_err_code
ndr_pull_spoolss_JobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo1
*r
)
2666 uint32_t _ptr_printer_name
;
2667 TALLOC_CTX
*_mem_save_printer_name_0
;
2668 uint32_t _ptr_server_name
;
2669 TALLOC_CTX
*_mem_save_server_name_0
;
2670 uint32_t _ptr_user_name
;
2671 TALLOC_CTX
*_mem_save_user_name_0
;
2672 uint32_t _ptr_document_name
;
2673 TALLOC_CTX
*_mem_save_document_name_0
;
2674 uint32_t _ptr_data_type
;
2675 TALLOC_CTX
*_mem_save_data_type_0
;
2676 uint32_t _ptr_text_status
;
2677 TALLOC_CTX
*_mem_save_text_status_0
;
2678 if (ndr_flags
& NDR_SCALARS
) {
2679 NDR_CHECK(ndr_pull_align(ndr
, 4));
2680 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
2682 uint32_t _flags_save_string
= ndr
->flags
;
2683 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2684 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
2685 if (_ptr_printer_name
) {
2686 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
2687 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
2689 r
->printer_name
= NULL
;
2691 ndr
->flags
= _flags_save_string
;
2694 uint32_t _flags_save_string
= ndr
->flags
;
2695 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2696 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
2697 if (_ptr_server_name
) {
2698 NDR_PULL_ALLOC(ndr
, r
->server_name
);
2699 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
2701 r
->server_name
= NULL
;
2703 ndr
->flags
= _flags_save_string
;
2706 uint32_t _flags_save_string
= ndr
->flags
;
2707 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2708 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
2709 if (_ptr_user_name
) {
2710 NDR_PULL_ALLOC(ndr
, r
->user_name
);
2711 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
2713 r
->user_name
= NULL
;
2715 ndr
->flags
= _flags_save_string
;
2718 uint32_t _flags_save_string
= ndr
->flags
;
2719 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2720 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
2721 if (_ptr_document_name
) {
2722 NDR_PULL_ALLOC(ndr
, r
->document_name
);
2723 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
2725 r
->document_name
= NULL
;
2727 ndr
->flags
= _flags_save_string
;
2730 uint32_t _flags_save_string
= ndr
->flags
;
2731 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2732 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
2733 if (_ptr_data_type
) {
2734 NDR_PULL_ALLOC(ndr
, r
->data_type
);
2735 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
2737 r
->data_type
= NULL
;
2739 ndr
->flags
= _flags_save_string
;
2742 uint32_t _flags_save_string
= ndr
->flags
;
2743 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2744 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
2745 if (_ptr_text_status
) {
2746 NDR_PULL_ALLOC(ndr
, r
->text_status
);
2747 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
2749 r
->text_status
= NULL
;
2751 ndr
->flags
= _flags_save_string
;
2753 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
2754 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
2755 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
2756 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
2757 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
2758 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2760 if (ndr_flags
& NDR_BUFFERS
) {
2762 uint32_t _flags_save_string
= ndr
->flags
;
2763 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2764 if (r
->printer_name
) {
2765 uint32_t _relative_save_offset
;
2766 _relative_save_offset
= ndr
->offset
;
2767 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
2768 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2769 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
2770 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
2771 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
2772 ndr
->offset
= _relative_save_offset
;
2774 ndr
->flags
= _flags_save_string
;
2777 uint32_t _flags_save_string
= ndr
->flags
;
2778 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2779 if (r
->server_name
) {
2780 uint32_t _relative_save_offset
;
2781 _relative_save_offset
= ndr
->offset
;
2782 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
2783 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2784 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
2785 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
2786 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
2787 ndr
->offset
= _relative_save_offset
;
2789 ndr
->flags
= _flags_save_string
;
2792 uint32_t _flags_save_string
= ndr
->flags
;
2793 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2795 uint32_t _relative_save_offset
;
2796 _relative_save_offset
= ndr
->offset
;
2797 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
2798 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2799 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
2800 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
2801 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
2802 ndr
->offset
= _relative_save_offset
;
2804 ndr
->flags
= _flags_save_string
;
2807 uint32_t _flags_save_string
= ndr
->flags
;
2808 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2809 if (r
->document_name
) {
2810 uint32_t _relative_save_offset
;
2811 _relative_save_offset
= ndr
->offset
;
2812 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
2813 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2814 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
2815 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
2816 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
2817 ndr
->offset
= _relative_save_offset
;
2819 ndr
->flags
= _flags_save_string
;
2822 uint32_t _flags_save_string
= ndr
->flags
;
2823 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2825 uint32_t _relative_save_offset
;
2826 _relative_save_offset
= ndr
->offset
;
2827 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
2828 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2829 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
2830 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
2831 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
2832 ndr
->offset
= _relative_save_offset
;
2834 ndr
->flags
= _flags_save_string
;
2837 uint32_t _flags_save_string
= ndr
->flags
;
2838 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2839 if (r
->text_status
) {
2840 uint32_t _relative_save_offset
;
2841 _relative_save_offset
= ndr
->offset
;
2842 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
2843 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2844 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
2845 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
2846 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
2847 ndr
->offset
= _relative_save_offset
;
2849 ndr
->flags
= _flags_save_string
;
2852 return NDR_ERR_SUCCESS
;
2855 _PUBLIC_
void ndr_print_spoolss_JobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo1
*r
)
2857 ndr_print_struct(ndr
, name
, "spoolss_JobInfo1");
2859 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
2860 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
2862 if (r
->printer_name
) {
2863 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
2866 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
2868 if (r
->server_name
) {
2869 ndr_print_string(ndr
, "server_name", r
->server_name
);
2872 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
2875 ndr_print_string(ndr
, "user_name", r
->user_name
);
2878 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
2880 if (r
->document_name
) {
2881 ndr_print_string(ndr
, "document_name", r
->document_name
);
2884 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
2887 ndr_print_string(ndr
, "data_type", r
->data_type
);
2890 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
2892 if (r
->text_status
) {
2893 ndr_print_string(ndr
, "text_status", r
->text_status
);
2896 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
2897 ndr_print_uint32(ndr
, "priority", r
->priority
);
2898 ndr_print_uint32(ndr
, "position", r
->position
);
2899 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
2900 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
2901 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
2905 static enum ndr_err_code
ndr_push_spoolss_JobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo2
*r
)
2907 if (ndr_flags
& NDR_SCALARS
) {
2908 NDR_CHECK(ndr_push_align(ndr
, 4));
2909 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
2911 uint32_t _flags_save_string
= ndr
->flags
;
2912 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2913 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
2914 ndr
->flags
= _flags_save_string
;
2917 uint32_t _flags_save_string
= ndr
->flags
;
2918 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2919 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
2920 ndr
->flags
= _flags_save_string
;
2923 uint32_t _flags_save_string
= ndr
->flags
;
2924 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2925 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
2926 ndr
->flags
= _flags_save_string
;
2929 uint32_t _flags_save_string
= ndr
->flags
;
2930 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2931 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
2932 ndr
->flags
= _flags_save_string
;
2935 uint32_t _flags_save_string
= ndr
->flags
;
2936 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2937 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
2938 ndr
->flags
= _flags_save_string
;
2941 uint32_t _flags_save_string
= ndr
->flags
;
2942 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2943 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
2944 ndr
->flags
= _flags_save_string
;
2947 uint32_t _flags_save_string
= ndr
->flags
;
2948 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2949 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
2950 ndr
->flags
= _flags_save_string
;
2953 uint32_t _flags_save_string
= ndr
->flags
;
2954 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2955 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
2956 ndr
->flags
= _flags_save_string
;
2959 uint32_t _flags_save_string
= ndr
->flags
;
2960 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2961 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
2962 ndr
->flags
= _flags_save_string
;
2964 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
2966 uint32_t _flags_save_string
= ndr
->flags
;
2967 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2968 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
2969 ndr
->flags
= _flags_save_string
;
2971 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
2972 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
2973 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
2974 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
2975 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
2976 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
2977 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
2978 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
2979 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
2981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
2983 if (ndr_flags
& NDR_BUFFERS
) {
2985 uint32_t _flags_save_string
= ndr
->flags
;
2986 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2987 if (r
->printer_name
) {
2988 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
2989 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
2991 ndr
->flags
= _flags_save_string
;
2994 uint32_t _flags_save_string
= ndr
->flags
;
2995 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2996 if (r
->server_name
) {
2997 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
2998 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3000 ndr
->flags
= _flags_save_string
;
3003 uint32_t _flags_save_string
= ndr
->flags
;
3004 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3006 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
3007 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3009 ndr
->flags
= _flags_save_string
;
3012 uint32_t _flags_save_string
= ndr
->flags
;
3013 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3014 if (r
->document_name
) {
3015 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
3016 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3018 ndr
->flags
= _flags_save_string
;
3021 uint32_t _flags_save_string
= ndr
->flags
;
3022 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3023 if (r
->notify_name
) {
3024 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->notify_name
));
3025 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3027 ndr
->flags
= _flags_save_string
;
3030 uint32_t _flags_save_string
= ndr
->flags
;
3031 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3033 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
3034 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3036 ndr
->flags
= _flags_save_string
;
3039 uint32_t _flags_save_string
= ndr
->flags
;
3040 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3041 if (r
->print_processor
) {
3042 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
3043 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3045 ndr
->flags
= _flags_save_string
;
3048 uint32_t _flags_save_string
= ndr
->flags
;
3049 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3050 if (r
->parameters
) {
3051 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
3052 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3054 ndr
->flags
= _flags_save_string
;
3057 uint32_t _flags_save_string
= ndr
->flags
;
3058 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3059 if (r
->driver_name
) {
3060 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
3061 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3063 ndr
->flags
= _flags_save_string
;
3066 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
3067 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3070 uint32_t _flags_save_string
= ndr
->flags
;
3071 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3072 if (r
->text_status
) {
3073 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
3074 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3076 ndr
->flags
= _flags_save_string
;
3079 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
3080 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3083 return NDR_ERR_SUCCESS
;
3086 static enum ndr_err_code
ndr_pull_spoolss_JobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo2
*r
)
3088 uint32_t _ptr_printer_name
;
3089 TALLOC_CTX
*_mem_save_printer_name_0
;
3090 uint32_t _ptr_server_name
;
3091 TALLOC_CTX
*_mem_save_server_name_0
;
3092 uint32_t _ptr_user_name
;
3093 TALLOC_CTX
*_mem_save_user_name_0
;
3094 uint32_t _ptr_document_name
;
3095 TALLOC_CTX
*_mem_save_document_name_0
;
3096 uint32_t _ptr_notify_name
;
3097 TALLOC_CTX
*_mem_save_notify_name_0
;
3098 uint32_t _ptr_data_type
;
3099 TALLOC_CTX
*_mem_save_data_type_0
;
3100 uint32_t _ptr_print_processor
;
3101 TALLOC_CTX
*_mem_save_print_processor_0
;
3102 uint32_t _ptr_parameters
;
3103 TALLOC_CTX
*_mem_save_parameters_0
;
3104 uint32_t _ptr_driver_name
;
3105 TALLOC_CTX
*_mem_save_driver_name_0
;
3106 uint32_t _ptr_devmode
;
3107 TALLOC_CTX
*_mem_save_devmode_0
;
3108 uint32_t _ptr_text_status
;
3109 TALLOC_CTX
*_mem_save_text_status_0
;
3110 uint32_t _ptr_secdesc
;
3111 TALLOC_CTX
*_mem_save_secdesc_0
;
3112 if (ndr_flags
& NDR_SCALARS
) {
3113 NDR_CHECK(ndr_pull_align(ndr
, 4));
3114 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3116 uint32_t _flags_save_string
= ndr
->flags
;
3117 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3118 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3119 if (_ptr_printer_name
) {
3120 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3121 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3123 r
->printer_name
= NULL
;
3125 ndr
->flags
= _flags_save_string
;
3128 uint32_t _flags_save_string
= ndr
->flags
;
3129 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3130 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3131 if (_ptr_server_name
) {
3132 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3133 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3135 r
->server_name
= NULL
;
3137 ndr
->flags
= _flags_save_string
;
3140 uint32_t _flags_save_string
= ndr
->flags
;
3141 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3142 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3143 if (_ptr_user_name
) {
3144 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3145 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3147 r
->user_name
= NULL
;
3149 ndr
->flags
= _flags_save_string
;
3152 uint32_t _flags_save_string
= ndr
->flags
;
3153 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3154 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3155 if (_ptr_document_name
) {
3156 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3157 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3159 r
->document_name
= NULL
;
3161 ndr
->flags
= _flags_save_string
;
3164 uint32_t _flags_save_string
= ndr
->flags
;
3165 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3166 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
3167 if (_ptr_notify_name
) {
3168 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
3169 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
3171 r
->notify_name
= NULL
;
3173 ndr
->flags
= _flags_save_string
;
3176 uint32_t _flags_save_string
= ndr
->flags
;
3177 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3178 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3179 if (_ptr_data_type
) {
3180 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3181 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3183 r
->data_type
= NULL
;
3185 ndr
->flags
= _flags_save_string
;
3188 uint32_t _flags_save_string
= ndr
->flags
;
3189 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3190 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
3191 if (_ptr_print_processor
) {
3192 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
3193 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
3195 r
->print_processor
= NULL
;
3197 ndr
->flags
= _flags_save_string
;
3200 uint32_t _flags_save_string
= ndr
->flags
;
3201 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3202 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
3203 if (_ptr_parameters
) {
3204 NDR_PULL_ALLOC(ndr
, r
->parameters
);
3205 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
3207 r
->parameters
= NULL
;
3209 ndr
->flags
= _flags_save_string
;
3212 uint32_t _flags_save_string
= ndr
->flags
;
3213 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3214 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
3215 if (_ptr_driver_name
) {
3216 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
3217 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
3219 r
->driver_name
= NULL
;
3221 ndr
->flags
= _flags_save_string
;
3223 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3225 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3226 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
3231 uint32_t _flags_save_string
= ndr
->flags
;
3232 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3233 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3234 if (_ptr_text_status
) {
3235 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3236 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3238 r
->text_status
= NULL
;
3240 ndr
->flags
= _flags_save_string
;
3242 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
3244 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
3245 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
3249 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3250 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3251 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3252 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
3253 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
3254 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3255 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
3256 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3257 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
3258 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3260 if (ndr_flags
& NDR_BUFFERS
) {
3262 uint32_t _flags_save_string
= ndr
->flags
;
3263 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3264 if (r
->printer_name
) {
3265 uint32_t _relative_save_offset
;
3266 _relative_save_offset
= ndr
->offset
;
3267 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3268 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3269 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3270 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3271 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3272 ndr
->offset
= _relative_save_offset
;
3274 ndr
->flags
= _flags_save_string
;
3277 uint32_t _flags_save_string
= ndr
->flags
;
3278 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3279 if (r
->server_name
) {
3280 uint32_t _relative_save_offset
;
3281 _relative_save_offset
= ndr
->offset
;
3282 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3283 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3284 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3285 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3286 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3287 ndr
->offset
= _relative_save_offset
;
3289 ndr
->flags
= _flags_save_string
;
3292 uint32_t _flags_save_string
= ndr
->flags
;
3293 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3295 uint32_t _relative_save_offset
;
3296 _relative_save_offset
= ndr
->offset
;
3297 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3298 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3299 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3300 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3301 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3302 ndr
->offset
= _relative_save_offset
;
3304 ndr
->flags
= _flags_save_string
;
3307 uint32_t _flags_save_string
= ndr
->flags
;
3308 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3309 if (r
->document_name
) {
3310 uint32_t _relative_save_offset
;
3311 _relative_save_offset
= ndr
->offset
;
3312 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3313 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3314 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3315 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3316 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3317 ndr
->offset
= _relative_save_offset
;
3319 ndr
->flags
= _flags_save_string
;
3322 uint32_t _flags_save_string
= ndr
->flags
;
3323 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3324 if (r
->notify_name
) {
3325 uint32_t _relative_save_offset
;
3326 _relative_save_offset
= ndr
->offset
;
3327 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
3328 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3329 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
3330 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
3331 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
3332 ndr
->offset
= _relative_save_offset
;
3334 ndr
->flags
= _flags_save_string
;
3337 uint32_t _flags_save_string
= ndr
->flags
;
3338 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3340 uint32_t _relative_save_offset
;
3341 _relative_save_offset
= ndr
->offset
;
3342 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
3343 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3344 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
3345 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
3346 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
3347 ndr
->offset
= _relative_save_offset
;
3349 ndr
->flags
= _flags_save_string
;
3352 uint32_t _flags_save_string
= ndr
->flags
;
3353 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3354 if (r
->print_processor
) {
3355 uint32_t _relative_save_offset
;
3356 _relative_save_offset
= ndr
->offset
;
3357 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
3358 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3359 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
3360 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
3361 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
3362 ndr
->offset
= _relative_save_offset
;
3364 ndr
->flags
= _flags_save_string
;
3367 uint32_t _flags_save_string
= ndr
->flags
;
3368 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3369 if (r
->parameters
) {
3370 uint32_t _relative_save_offset
;
3371 _relative_save_offset
= ndr
->offset
;
3372 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
3373 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3374 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
3375 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
3376 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
3377 ndr
->offset
= _relative_save_offset
;
3379 ndr
->flags
= _flags_save_string
;
3382 uint32_t _flags_save_string
= ndr
->flags
;
3383 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3384 if (r
->driver_name
) {
3385 uint32_t _relative_save_offset
;
3386 _relative_save_offset
= ndr
->offset
;
3387 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
3388 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3389 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
3390 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
3391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
3392 ndr
->offset
= _relative_save_offset
;
3394 ndr
->flags
= _flags_save_string
;
3397 uint32_t _relative_save_offset
;
3398 _relative_save_offset
= ndr
->offset
;
3399 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
3400 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3401 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
3402 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3403 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
3404 ndr
->offset
= _relative_save_offset
;
3407 uint32_t _flags_save_string
= ndr
->flags
;
3408 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3409 if (r
->text_status
) {
3410 uint32_t _relative_save_offset
;
3411 _relative_save_offset
= ndr
->offset
;
3412 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
3413 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3414 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
3415 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
3416 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
3417 ndr
->offset
= _relative_save_offset
;
3419 ndr
->flags
= _flags_save_string
;
3422 uint32_t _relative_save_offset
;
3423 _relative_save_offset
= ndr
->offset
;
3424 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
3425 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3426 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
3427 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3428 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
3429 ndr
->offset
= _relative_save_offset
;
3432 return NDR_ERR_SUCCESS
;
3435 _PUBLIC_
void ndr_print_spoolss_JobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo2
*r
)
3437 ndr_print_struct(ndr
, name
, "spoolss_JobInfo2");
3439 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3440 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
3442 if (r
->printer_name
) {
3443 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
3446 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
3448 if (r
->server_name
) {
3449 ndr_print_string(ndr
, "server_name", r
->server_name
);
3452 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
3455 ndr_print_string(ndr
, "user_name", r
->user_name
);
3458 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
3460 if (r
->document_name
) {
3461 ndr_print_string(ndr
, "document_name", r
->document_name
);
3464 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
3466 if (r
->notify_name
) {
3467 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
3470 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
3473 ndr_print_string(ndr
, "data_type", r
->data_type
);
3476 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
3478 if (r
->print_processor
) {
3479 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
3482 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
3484 if (r
->parameters
) {
3485 ndr_print_string(ndr
, "parameters", r
->parameters
);
3488 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
3490 if (r
->driver_name
) {
3491 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
3494 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
3497 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
3500 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
3502 if (r
->text_status
) {
3503 ndr_print_string(ndr
, "text_status", r
->text_status
);
3506 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
3509 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
3512 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
3513 ndr_print_uint32(ndr
, "priority", r
->priority
);
3514 ndr_print_uint32(ndr
, "position", r
->position
);
3515 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
3516 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
3517 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
3518 ndr_print_uint32(ndr
, "size", r
->size
);
3519 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
3520 ndr_print_uint32(ndr
, "time", r
->time
);
3521 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
3525 static enum ndr_err_code
ndr_push_spoolss_JobInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo3
*r
)
3527 if (ndr_flags
& NDR_SCALARS
) {
3528 NDR_CHECK(ndr_push_align(ndr
, 4));
3529 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3530 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->next_job_id
));
3531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
3533 if (ndr_flags
& NDR_BUFFERS
) {
3535 return NDR_ERR_SUCCESS
;
3538 static enum ndr_err_code
ndr_pull_spoolss_JobInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo3
*r
)
3540 if (ndr_flags
& NDR_SCALARS
) {
3541 NDR_CHECK(ndr_pull_align(ndr
, 4));
3542 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3543 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->next_job_id
));
3544 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
3546 if (ndr_flags
& NDR_BUFFERS
) {
3548 return NDR_ERR_SUCCESS
;
3551 _PUBLIC_
void ndr_print_spoolss_JobInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo3
*r
)
3553 ndr_print_struct(ndr
, name
, "spoolss_JobInfo3");
3555 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3556 ndr_print_uint32(ndr
, "next_job_id", r
->next_job_id
);
3557 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
3561 static enum ndr_err_code
ndr_push_spoolss_JobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo4
*r
)
3563 if (ndr_flags
& NDR_SCALARS
) {
3564 NDR_CHECK(ndr_push_align(ndr
, 4));
3565 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3567 uint32_t _flags_save_string
= ndr
->flags
;
3568 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3569 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
3570 ndr
->flags
= _flags_save_string
;
3573 uint32_t _flags_save_string
= ndr
->flags
;
3574 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3575 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
3576 ndr
->flags
= _flags_save_string
;
3579 uint32_t _flags_save_string
= ndr
->flags
;
3580 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3581 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
3582 ndr
->flags
= _flags_save_string
;
3585 uint32_t _flags_save_string
= ndr
->flags
;
3586 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3587 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3588 ndr
->flags
= _flags_save_string
;
3591 uint32_t _flags_save_string
= ndr
->flags
;
3592 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3593 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
3594 ndr
->flags
= _flags_save_string
;
3597 uint32_t _flags_save_string
= ndr
->flags
;
3598 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3599 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3600 ndr
->flags
= _flags_save_string
;
3603 uint32_t _flags_save_string
= ndr
->flags
;
3604 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3605 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
3606 ndr
->flags
= _flags_save_string
;
3609 uint32_t _flags_save_string
= ndr
->flags
;
3610 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3611 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
3612 ndr
->flags
= _flags_save_string
;
3615 uint32_t _flags_save_string
= ndr
->flags
;
3616 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3617 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
3618 ndr
->flags
= _flags_save_string
;
3620 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
3622 uint32_t _flags_save_string
= ndr
->flags
;
3623 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3624 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3625 ndr
->flags
= _flags_save_string
;
3627 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
3628 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3629 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3630 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3631 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
3632 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
3633 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
3635 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3636 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
3637 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3638 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
3640 if (ndr_flags
& NDR_BUFFERS
) {
3642 uint32_t _flags_save_string
= ndr
->flags
;
3643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3644 if (r
->printer_name
) {
3645 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
3646 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
3648 ndr
->flags
= _flags_save_string
;
3651 uint32_t _flags_save_string
= ndr
->flags
;
3652 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3653 if (r
->server_name
) {
3654 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
3655 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3657 ndr
->flags
= _flags_save_string
;
3660 uint32_t _flags_save_string
= ndr
->flags
;
3661 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3663 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
3664 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3666 ndr
->flags
= _flags_save_string
;
3669 uint32_t _flags_save_string
= ndr
->flags
;
3670 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3671 if (r
->document_name
) {
3672 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
3673 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3675 ndr
->flags
= _flags_save_string
;
3678 uint32_t _flags_save_string
= ndr
->flags
;
3679 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3680 if (r
->notify_name
) {
3681 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->notify_name
));
3682 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3684 ndr
->flags
= _flags_save_string
;
3687 uint32_t _flags_save_string
= ndr
->flags
;
3688 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3690 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
3691 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3693 ndr
->flags
= _flags_save_string
;
3696 uint32_t _flags_save_string
= ndr
->flags
;
3697 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3698 if (r
->print_processor
) {
3699 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
3700 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3702 ndr
->flags
= _flags_save_string
;
3705 uint32_t _flags_save_string
= ndr
->flags
;
3706 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3707 if (r
->parameters
) {
3708 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
3709 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3711 ndr
->flags
= _flags_save_string
;
3714 uint32_t _flags_save_string
= ndr
->flags
;
3715 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3716 if (r
->driver_name
) {
3717 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
3718 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3720 ndr
->flags
= _flags_save_string
;
3723 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
3724 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3727 uint32_t _flags_save_string
= ndr
->flags
;
3728 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3729 if (r
->text_status
) {
3730 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
3731 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3733 ndr
->flags
= _flags_save_string
;
3736 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
3737 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3740 return NDR_ERR_SUCCESS
;
3743 static enum ndr_err_code
ndr_pull_spoolss_JobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo4
*r
)
3745 uint32_t _ptr_printer_name
;
3746 TALLOC_CTX
*_mem_save_printer_name_0
;
3747 uint32_t _ptr_server_name
;
3748 TALLOC_CTX
*_mem_save_server_name_0
;
3749 uint32_t _ptr_user_name
;
3750 TALLOC_CTX
*_mem_save_user_name_0
;
3751 uint32_t _ptr_document_name
;
3752 TALLOC_CTX
*_mem_save_document_name_0
;
3753 uint32_t _ptr_notify_name
;
3754 TALLOC_CTX
*_mem_save_notify_name_0
;
3755 uint32_t _ptr_data_type
;
3756 TALLOC_CTX
*_mem_save_data_type_0
;
3757 uint32_t _ptr_print_processor
;
3758 TALLOC_CTX
*_mem_save_print_processor_0
;
3759 uint32_t _ptr_parameters
;
3760 TALLOC_CTX
*_mem_save_parameters_0
;
3761 uint32_t _ptr_driver_name
;
3762 TALLOC_CTX
*_mem_save_driver_name_0
;
3763 uint32_t _ptr_devmode
;
3764 TALLOC_CTX
*_mem_save_devmode_0
;
3765 uint32_t _ptr_text_status
;
3766 TALLOC_CTX
*_mem_save_text_status_0
;
3767 uint32_t _ptr_secdesc
;
3768 TALLOC_CTX
*_mem_save_secdesc_0
;
3769 if (ndr_flags
& NDR_SCALARS
) {
3770 NDR_CHECK(ndr_pull_align(ndr
, 4));
3771 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3773 uint32_t _flags_save_string
= ndr
->flags
;
3774 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3775 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3776 if (_ptr_printer_name
) {
3777 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3778 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3780 r
->printer_name
= NULL
;
3782 ndr
->flags
= _flags_save_string
;
3785 uint32_t _flags_save_string
= ndr
->flags
;
3786 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3787 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3788 if (_ptr_server_name
) {
3789 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3790 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3792 r
->server_name
= NULL
;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3800 if (_ptr_user_name
) {
3801 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3802 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3804 r
->user_name
= NULL
;
3806 ndr
->flags
= _flags_save_string
;
3809 uint32_t _flags_save_string
= ndr
->flags
;
3810 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3811 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3812 if (_ptr_document_name
) {
3813 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3814 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3816 r
->document_name
= NULL
;
3818 ndr
->flags
= _flags_save_string
;
3821 uint32_t _flags_save_string
= ndr
->flags
;
3822 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3823 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
3824 if (_ptr_notify_name
) {
3825 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
3826 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
3828 r
->notify_name
= NULL
;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3836 if (_ptr_data_type
) {
3837 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3838 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3840 r
->data_type
= NULL
;
3842 ndr
->flags
= _flags_save_string
;
3845 uint32_t _flags_save_string
= ndr
->flags
;
3846 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3847 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
3848 if (_ptr_print_processor
) {
3849 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
3850 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
3852 r
->print_processor
= NULL
;
3854 ndr
->flags
= _flags_save_string
;
3857 uint32_t _flags_save_string
= ndr
->flags
;
3858 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3859 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
3860 if (_ptr_parameters
) {
3861 NDR_PULL_ALLOC(ndr
, r
->parameters
);
3862 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
3864 r
->parameters
= NULL
;
3866 ndr
->flags
= _flags_save_string
;
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
;
3880 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3882 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3883 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
3888 uint32_t _flags_save_string
= ndr
->flags
;
3889 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3890 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3891 if (_ptr_text_status
) {
3892 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3893 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3895 r
->text_status
= NULL
;
3897 ndr
->flags
= _flags_save_string
;
3899 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
3901 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
3902 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
3906 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3907 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3908 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3909 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
3910 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
3911 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3912 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
3913 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3914 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
3915 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3916 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
3918 if (ndr_flags
& NDR_BUFFERS
) {
3920 uint32_t _flags_save_string
= ndr
->flags
;
3921 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3922 if (r
->printer_name
) {
3923 uint32_t _relative_save_offset
;
3924 _relative_save_offset
= ndr
->offset
;
3925 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3926 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3927 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3928 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3929 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3930 ndr
->offset
= _relative_save_offset
;
3932 ndr
->flags
= _flags_save_string
;
3935 uint32_t _flags_save_string
= ndr
->flags
;
3936 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3937 if (r
->server_name
) {
3938 uint32_t _relative_save_offset
;
3939 _relative_save_offset
= ndr
->offset
;
3940 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3941 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3942 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3943 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3944 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3945 ndr
->offset
= _relative_save_offset
;
3947 ndr
->flags
= _flags_save_string
;
3950 uint32_t _flags_save_string
= ndr
->flags
;
3951 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3953 uint32_t _relative_save_offset
;
3954 _relative_save_offset
= ndr
->offset
;
3955 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3956 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3957 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3958 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3960 ndr
->offset
= _relative_save_offset
;
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 if (r
->document_name
) {
3968 uint32_t _relative_save_offset
;
3969 _relative_save_offset
= ndr
->offset
;
3970 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3971 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3972 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3973 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3974 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3975 ndr
->offset
= _relative_save_offset
;
3977 ndr
->flags
= _flags_save_string
;
3980 uint32_t _flags_save_string
= ndr
->flags
;
3981 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3982 if (r
->notify_name
) {
3983 uint32_t _relative_save_offset
;
3984 _relative_save_offset
= ndr
->offset
;
3985 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
3986 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3987 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
3988 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
3989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
3990 ndr
->offset
= _relative_save_offset
;
3992 ndr
->flags
= _flags_save_string
;
3995 uint32_t _flags_save_string
= ndr
->flags
;
3996 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3998 uint32_t _relative_save_offset
;
3999 _relative_save_offset
= ndr
->offset
;
4000 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
4001 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4002 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4003 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
4004 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4005 ndr
->offset
= _relative_save_offset
;
4007 ndr
->flags
= _flags_save_string
;
4010 uint32_t _flags_save_string
= ndr
->flags
;
4011 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4012 if (r
->print_processor
) {
4013 uint32_t _relative_save_offset
;
4014 _relative_save_offset
= ndr
->offset
;
4015 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
4016 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4017 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
4018 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
4019 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
4020 ndr
->offset
= _relative_save_offset
;
4022 ndr
->flags
= _flags_save_string
;
4025 uint32_t _flags_save_string
= ndr
->flags
;
4026 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4027 if (r
->parameters
) {
4028 uint32_t _relative_save_offset
;
4029 _relative_save_offset
= ndr
->offset
;
4030 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
4031 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4032 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
4033 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
4034 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
4035 ndr
->offset
= _relative_save_offset
;
4037 ndr
->flags
= _flags_save_string
;
4040 uint32_t _flags_save_string
= ndr
->flags
;
4041 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4042 if (r
->driver_name
) {
4043 uint32_t _relative_save_offset
;
4044 _relative_save_offset
= ndr
->offset
;
4045 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
4046 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4047 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
4048 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
4049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
4050 ndr
->offset
= _relative_save_offset
;
4052 ndr
->flags
= _flags_save_string
;
4055 uint32_t _relative_save_offset
;
4056 _relative_save_offset
= ndr
->offset
;
4057 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
4058 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4059 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
4060 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
4061 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
4062 ndr
->offset
= _relative_save_offset
;
4065 uint32_t _flags_save_string
= ndr
->flags
;
4066 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4067 if (r
->text_status
) {
4068 uint32_t _relative_save_offset
;
4069 _relative_save_offset
= ndr
->offset
;
4070 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
4071 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4072 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4073 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
4074 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4075 ndr
->offset
= _relative_save_offset
;
4077 ndr
->flags
= _flags_save_string
;
4080 uint32_t _relative_save_offset
;
4081 _relative_save_offset
= ndr
->offset
;
4082 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
4083 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4084 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
4085 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4086 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
4087 ndr
->offset
= _relative_save_offset
;
4090 return NDR_ERR_SUCCESS
;
4093 _PUBLIC_
void ndr_print_spoolss_JobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo4
*r
)
4095 ndr_print_struct(ndr
, name
, "spoolss_JobInfo4");
4097 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4098 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4100 if (r
->printer_name
) {
4101 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4104 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4106 if (r
->server_name
) {
4107 ndr_print_string(ndr
, "server_name", r
->server_name
);
4110 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4113 ndr_print_string(ndr
, "user_name", r
->user_name
);
4116 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4118 if (r
->document_name
) {
4119 ndr_print_string(ndr
, "document_name", r
->document_name
);
4122 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
4124 if (r
->notify_name
) {
4125 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
4128 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4131 ndr_print_string(ndr
, "data_type", r
->data_type
);
4134 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
4136 if (r
->print_processor
) {
4137 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
4140 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
4142 if (r
->parameters
) {
4143 ndr_print_string(ndr
, "parameters", r
->parameters
);
4146 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4148 if (r
->driver_name
) {
4149 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4152 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
4155 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
4158 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4160 if (r
->text_status
) {
4161 ndr_print_string(ndr
, "text_status", r
->text_status
);
4164 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
4167 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
4170 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4171 ndr_print_uint32(ndr
, "priority", r
->priority
);
4172 ndr_print_uint32(ndr
, "position", r
->position
);
4173 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
4174 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
4175 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4176 ndr_print_uint32(ndr
, "size", r
->size
);
4177 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4178 ndr_print_uint32(ndr
, "time", r
->time
);
4179 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4180 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
4184 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_JobInfo
*r
)
4186 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
4187 if (ndr_flags
& NDR_SCALARS
) {
4188 int level
= ndr_push_get_switch_value(ndr
, r
);
4191 NDR_CHECK(ndr_push_align(ndr
, 4));
4192 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4193 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4197 NDR_CHECK(ndr_push_align(ndr
, 4));
4198 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4199 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4203 NDR_CHECK(ndr_push_align(ndr
, 4));
4204 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4205 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4209 NDR_CHECK(ndr_push_align(ndr
, 4));
4210 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4211 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4219 if (ndr_flags
& NDR_BUFFERS
) {
4220 int level
= ndr_push_get_switch_value(ndr
, r
);
4221 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
4224 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4228 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4235 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4243 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4244 return NDR_ERR_SUCCESS
;
4247 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_JobInfo
*r
)
4249 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
4251 level
= ndr_pull_get_switch_value(ndr
, r
);
4252 if (ndr_flags
& NDR_SCALARS
) {
4255 NDR_CHECK(ndr_pull_align(ndr
, 4));
4256 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4257 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4261 NDR_CHECK(ndr_pull_align(ndr
, 4));
4262 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4263 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4267 NDR_CHECK(ndr_pull_align(ndr
, 4));
4268 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4269 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4273 NDR_CHECK(ndr_pull_align(ndr
, 4));
4274 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4275 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4283 if (ndr_flags
& NDR_BUFFERS
) {
4284 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
4287 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4291 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4298 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4306 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4307 return NDR_ERR_SUCCESS
;
4310 _PUBLIC_
void ndr_print_spoolss_JobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_JobInfo
*r
)
4313 level
= ndr_print_get_switch_value(ndr
, r
);
4314 ndr_print_union(ndr
, name
, level
, "spoolss_JobInfo");
4317 ndr_print_spoolss_JobInfo1(ndr
, "info1", &r
->info1
);
4321 ndr_print_spoolss_JobInfo2(ndr
, "info2", &r
->info2
);
4325 ndr_print_spoolss_JobInfo3(ndr
, "info3", &r
->info3
);
4329 ndr_print_spoolss_JobInfo4(ndr
, "info4", &r
->info4
);
4338 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo1
*r
)
4340 if (ndr_flags
& NDR_SCALARS
) {
4341 NDR_CHECK(ndr_push_align(ndr
, 4));
4342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4343 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
4344 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
4345 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
4346 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
4347 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
4348 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
4349 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4350 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4351 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4352 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4353 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4354 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4356 if (ndr_flags
& NDR_BUFFERS
) {
4357 if (r
->printer_name
) {
4358 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4359 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4360 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4361 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4363 if (r
->server_name
) {
4364 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4365 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4366 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4367 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4370 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4371 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4372 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4373 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4375 if (r
->document_name
) {
4376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4377 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4378 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4379 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4382 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4383 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4384 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4385 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4387 if (r
->text_status
) {
4388 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4389 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4390 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4391 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4394 return NDR_ERR_SUCCESS
;
4397 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo1
*r
)
4399 uint32_t _ptr_printer_name
;
4400 TALLOC_CTX
*_mem_save_printer_name_0
;
4401 uint32_t _ptr_server_name
;
4402 TALLOC_CTX
*_mem_save_server_name_0
;
4403 uint32_t _ptr_user_name
;
4404 TALLOC_CTX
*_mem_save_user_name_0
;
4405 uint32_t _ptr_document_name
;
4406 TALLOC_CTX
*_mem_save_document_name_0
;
4407 uint32_t _ptr_data_type
;
4408 TALLOC_CTX
*_mem_save_data_type_0
;
4409 uint32_t _ptr_text_status
;
4410 TALLOC_CTX
*_mem_save_text_status_0
;
4411 if (ndr_flags
& NDR_SCALARS
) {
4412 NDR_CHECK(ndr_pull_align(ndr
, 4));
4413 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4414 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4415 if (_ptr_printer_name
) {
4416 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4418 r
->printer_name
= NULL
;
4420 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4421 if (_ptr_server_name
) {
4422 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4424 r
->server_name
= NULL
;
4426 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4427 if (_ptr_user_name
) {
4428 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4430 r
->user_name
= NULL
;
4432 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4433 if (_ptr_document_name
) {
4434 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4436 r
->document_name
= NULL
;
4438 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4439 if (_ptr_data_type
) {
4440 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4442 r
->data_type
= NULL
;
4444 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4445 if (_ptr_text_status
) {
4446 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4448 r
->text_status
= NULL
;
4450 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4451 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4452 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4453 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4454 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4455 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4457 if (ndr_flags
& NDR_BUFFERS
) {
4458 if (r
->printer_name
) {
4459 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4460 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4461 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
4462 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
4463 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
4464 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printer_name
), ndr_get_array_length(ndr
, &r
->printer_name
));
4466 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
4467 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
4468 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4470 if (r
->server_name
) {
4471 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4472 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4473 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
4474 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
4475 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
4476 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->server_name
), ndr_get_array_length(ndr
, &r
->server_name
));
4478 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
4479 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
4480 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4483 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4484 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4485 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
4486 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
4487 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
4488 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->user_name
), ndr_get_array_length(ndr
, &r
->user_name
));
4490 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
4491 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
4492 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4494 if (r
->document_name
) {
4495 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4496 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4497 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
4498 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
4499 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
4500 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
));
4502 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
4503 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
4504 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4507 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4508 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4509 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
4510 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
4511 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
4512 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_type
), ndr_get_array_length(ndr
, &r
->data_type
));
4514 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
4515 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
4516 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4518 if (r
->text_status
) {
4519 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4520 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4521 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
4522 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
4523 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
4524 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->text_status
), ndr_get_array_length(ndr
, &r
->text_status
));
4526 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
4527 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
4528 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4531 return NDR_ERR_SUCCESS
;
4534 _PUBLIC_
void ndr_print_spoolss_SetJobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo1
*r
)
4536 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo1");
4538 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4539 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4541 if (r
->printer_name
) {
4542 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4545 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4547 if (r
->server_name
) {
4548 ndr_print_string(ndr
, "server_name", r
->server_name
);
4551 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4554 ndr_print_string(ndr
, "user_name", r
->user_name
);
4557 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4559 if (r
->document_name
) {
4560 ndr_print_string(ndr
, "document_name", r
->document_name
);
4563 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4566 ndr_print_string(ndr
, "data_type", r
->data_type
);
4569 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4571 if (r
->text_status
) {
4572 ndr_print_string(ndr
, "text_status", r
->text_status
);
4575 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4576 ndr_print_uint32(ndr
, "priority", r
->priority
);
4577 ndr_print_uint32(ndr
, "position", r
->position
);
4578 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4579 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4580 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4584 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo2
*r
)
4586 if (ndr_flags
& NDR_SCALARS
) {
4587 NDR_CHECK(ndr_push_align(ndr
, 4));
4588 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4589 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
4590 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
4591 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
4592 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
4593 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
4594 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
4595 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
4596 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
4597 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
4598 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
4599 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
4600 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secdesc
));
4601 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4603 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4604 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
4605 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
4606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4607 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
4608 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
4610 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4612 if (ndr_flags
& NDR_BUFFERS
) {
4613 if (r
->printer_name
) {
4614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4615 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4616 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4617 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4619 if (r
->server_name
) {
4620 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4621 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4622 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4623 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4626 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4627 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4628 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4629 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4631 if (r
->document_name
) {
4632 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4633 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4635 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4637 if (r
->notify_name
) {
4638 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
4639 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4640 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
4641 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4644 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4645 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4646 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4647 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4649 if (r
->print_processor
) {
4650 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
4651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4652 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
4653 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4655 if (r
->parameters
) {
4656 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
4657 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4658 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
4659 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4661 if (r
->driver_name
) {
4662 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
4663 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4664 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
4665 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4668 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
4670 if (r
->text_status
) {
4671 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4672 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4673 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4674 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4677 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4680 return NDR_ERR_SUCCESS
;
4683 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo2
*r
)
4685 uint32_t _ptr_printer_name
;
4686 TALLOC_CTX
*_mem_save_printer_name_0
;
4687 uint32_t _ptr_server_name
;
4688 TALLOC_CTX
*_mem_save_server_name_0
;
4689 uint32_t _ptr_user_name
;
4690 TALLOC_CTX
*_mem_save_user_name_0
;
4691 uint32_t _ptr_document_name
;
4692 TALLOC_CTX
*_mem_save_document_name_0
;
4693 uint32_t _ptr_notify_name
;
4694 TALLOC_CTX
*_mem_save_notify_name_0
;
4695 uint32_t _ptr_data_type
;
4696 TALLOC_CTX
*_mem_save_data_type_0
;
4697 uint32_t _ptr_print_processor
;
4698 TALLOC_CTX
*_mem_save_print_processor_0
;
4699 uint32_t _ptr_parameters
;
4700 TALLOC_CTX
*_mem_save_parameters_0
;
4701 uint32_t _ptr_driver_name
;
4702 TALLOC_CTX
*_mem_save_driver_name_0
;
4703 uint32_t _ptr_devmode
;
4704 TALLOC_CTX
*_mem_save_devmode_0
;
4705 uint32_t _ptr_text_status
;
4706 TALLOC_CTX
*_mem_save_text_status_0
;
4707 uint32_t _ptr_secdesc
;
4708 TALLOC_CTX
*_mem_save_secdesc_0
;
4709 if (ndr_flags
& NDR_SCALARS
) {
4710 NDR_CHECK(ndr_pull_align(ndr
, 4));
4711 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4712 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4713 if (_ptr_printer_name
) {
4714 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4716 r
->printer_name
= NULL
;
4718 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4719 if (_ptr_server_name
) {
4720 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4722 r
->server_name
= NULL
;
4724 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4725 if (_ptr_user_name
) {
4726 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4728 r
->user_name
= NULL
;
4730 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4731 if (_ptr_document_name
) {
4732 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4734 r
->document_name
= NULL
;
4736 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
4737 if (_ptr_notify_name
) {
4738 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
4740 r
->notify_name
= NULL
;
4742 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4743 if (_ptr_data_type
) {
4744 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4746 r
->data_type
= NULL
;
4748 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
4749 if (_ptr_print_processor
) {
4750 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
4752 r
->print_processor
= NULL
;
4754 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
4755 if (_ptr_parameters
) {
4756 NDR_PULL_ALLOC(ndr
, r
->parameters
);
4758 r
->parameters
= NULL
;
4760 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
4761 if (_ptr_driver_name
) {
4762 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
4764 r
->driver_name
= NULL
;
4766 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
4768 NDR_PULL_ALLOC(ndr
, r
->devmode
);
4772 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4773 if (_ptr_text_status
) {
4774 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4776 r
->text_status
= NULL
;
4778 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
4780 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
4784 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4785 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4786 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4787 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
4788 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
4789 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4790 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
4791 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4792 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
4793 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4795 if (ndr_flags
& NDR_BUFFERS
) {
4796 if (r
->printer_name
) {
4797 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4798 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4799 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
4800 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
4801 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
4802 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printer_name
), ndr_get_array_length(ndr
, &r
->printer_name
));
4804 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
4805 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
4806 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4808 if (r
->server_name
) {
4809 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4810 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4811 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
4812 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
4813 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
4814 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->server_name
), ndr_get_array_length(ndr
, &r
->server_name
));
4816 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
4817 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
4818 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4821 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4822 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4823 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
4824 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
4825 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
4826 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->user_name
), ndr_get_array_length(ndr
, &r
->user_name
));
4828 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
4829 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
4830 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4832 if (r
->document_name
) {
4833 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4834 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4835 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
4836 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
4837 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
4838 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
));
4840 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
4841 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
4842 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4844 if (r
->notify_name
) {
4845 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4846 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
4847 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
4848 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
4849 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
4850 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->notify_name
), ndr_get_array_length(ndr
, &r
->notify_name
));
4852 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
4853 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
4854 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
4857 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4858 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4859 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
4860 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
4861 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
4862 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_type
), ndr_get_array_length(ndr
, &r
->data_type
));
4864 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
4865 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
4866 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4868 if (r
->print_processor
) {
4869 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4870 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
4871 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
4872 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
4873 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
4874 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->print_processor
), ndr_get_array_length(ndr
, &r
->print_processor
));
4876 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
4877 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
4878 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
4880 if (r
->parameters
) {
4881 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4882 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
4883 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
4884 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
4885 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
4886 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->parameters
), ndr_get_array_length(ndr
, &r
->parameters
));
4888 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
4889 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
4890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
4892 if (r
->driver_name
) {
4893 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4894 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
4895 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
4896 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
4897 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
4898 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
4900 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
4901 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
4902 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
4905 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4906 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
4907 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
4908 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
4910 if (r
->text_status
) {
4911 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4912 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4913 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
4914 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
4915 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
4916 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->text_status
), ndr_get_array_length(ndr
, &r
->text_status
));
4918 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
4919 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
4920 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4923 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4924 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
4925 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4926 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
4929 return NDR_ERR_SUCCESS
;
4932 _PUBLIC_
void ndr_print_spoolss_SetJobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo2
*r
)
4934 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo2");
4936 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4937 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4939 if (r
->printer_name
) {
4940 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4943 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4945 if (r
->server_name
) {
4946 ndr_print_string(ndr
, "server_name", r
->server_name
);
4949 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4952 ndr_print_string(ndr
, "user_name", r
->user_name
);
4955 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4957 if (r
->document_name
) {
4958 ndr_print_string(ndr
, "document_name", r
->document_name
);
4961 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
4963 if (r
->notify_name
) {
4964 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
4967 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4970 ndr_print_string(ndr
, "data_type", r
->data_type
);
4973 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
4975 if (r
->print_processor
) {
4976 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
4979 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
4981 if (r
->parameters
) {
4982 ndr_print_string(ndr
, "parameters", r
->parameters
);
4985 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4987 if (r
->driver_name
) {
4988 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4991 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
4994 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
4997 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4999 if (r
->text_status
) {
5000 ndr_print_string(ndr
, "text_status", r
->text_status
);
5003 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
5006 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
5009 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5010 ndr_print_uint32(ndr
, "priority", r
->priority
);
5011 ndr_print_uint32(ndr
, "position", r
->position
);
5012 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5013 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5014 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5015 ndr_print_uint32(ndr
, "size", r
->size
);
5016 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5017 ndr_print_uint32(ndr
, "time", r
->time
);
5018 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5022 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo4
*r
)
5024 if (ndr_flags
& NDR_SCALARS
) {
5025 NDR_CHECK(ndr_push_align(ndr
, 4));
5026 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
5027 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
5028 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
5029 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
5030 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
5031 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
5032 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
5033 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
5034 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
5035 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
5036 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
5037 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
5038 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secdesc
));
5039 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
5040 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
5041 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
5042 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
5043 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
5044 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5045 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
5046 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5047 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
5048 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
5049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
5051 if (ndr_flags
& NDR_BUFFERS
) {
5052 if (r
->printer_name
) {
5053 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5054 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5055 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5056 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5058 if (r
->server_name
) {
5059 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5060 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5062 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5065 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5066 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5068 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5070 if (r
->document_name
) {
5071 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5072 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5073 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5074 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5076 if (r
->notify_name
) {
5077 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5078 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5079 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5080 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5083 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5084 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5086 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5088 if (r
->print_processor
) {
5089 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5090 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5091 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5092 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5094 if (r
->parameters
) {
5095 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5096 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5097 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5098 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5100 if (r
->driver_name
) {
5101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5103 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5104 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5107 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
5109 if (r
->text_status
) {
5110 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5112 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5113 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5116 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
5119 return NDR_ERR_SUCCESS
;
5122 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo4
*r
)
5124 uint32_t _ptr_printer_name
;
5125 TALLOC_CTX
*_mem_save_printer_name_0
;
5126 uint32_t _ptr_server_name
;
5127 TALLOC_CTX
*_mem_save_server_name_0
;
5128 uint32_t _ptr_user_name
;
5129 TALLOC_CTX
*_mem_save_user_name_0
;
5130 uint32_t _ptr_document_name
;
5131 TALLOC_CTX
*_mem_save_document_name_0
;
5132 uint32_t _ptr_notify_name
;
5133 TALLOC_CTX
*_mem_save_notify_name_0
;
5134 uint32_t _ptr_data_type
;
5135 TALLOC_CTX
*_mem_save_data_type_0
;
5136 uint32_t _ptr_print_processor
;
5137 TALLOC_CTX
*_mem_save_print_processor_0
;
5138 uint32_t _ptr_parameters
;
5139 TALLOC_CTX
*_mem_save_parameters_0
;
5140 uint32_t _ptr_driver_name
;
5141 TALLOC_CTX
*_mem_save_driver_name_0
;
5142 uint32_t _ptr_devmode
;
5143 TALLOC_CTX
*_mem_save_devmode_0
;
5144 uint32_t _ptr_text_status
;
5145 TALLOC_CTX
*_mem_save_text_status_0
;
5146 uint32_t _ptr_secdesc
;
5147 TALLOC_CTX
*_mem_save_secdesc_0
;
5148 if (ndr_flags
& NDR_SCALARS
) {
5149 NDR_CHECK(ndr_pull_align(ndr
, 4));
5150 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5151 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5152 if (_ptr_printer_name
) {
5153 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5155 r
->printer_name
= NULL
;
5157 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5158 if (_ptr_server_name
) {
5159 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5161 r
->server_name
= NULL
;
5163 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5164 if (_ptr_user_name
) {
5165 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5167 r
->user_name
= NULL
;
5169 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5170 if (_ptr_document_name
) {
5171 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5173 r
->document_name
= NULL
;
5175 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
5176 if (_ptr_notify_name
) {
5177 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
5179 r
->notify_name
= NULL
;
5181 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5182 if (_ptr_data_type
) {
5183 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5185 r
->data_type
= NULL
;
5187 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
5188 if (_ptr_print_processor
) {
5189 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
5191 r
->print_processor
= NULL
;
5193 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
5194 if (_ptr_parameters
) {
5195 NDR_PULL_ALLOC(ndr
, r
->parameters
);
5197 r
->parameters
= NULL
;
5199 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
5200 if (_ptr_driver_name
) {
5201 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
5203 r
->driver_name
= NULL
;
5205 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
5207 NDR_PULL_ALLOC(ndr
, r
->devmode
);
5211 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5212 if (_ptr_text_status
) {
5213 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5215 r
->text_status
= NULL
;
5217 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
5219 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
5223 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5224 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5225 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5226 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
5227 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
5228 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5229 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
5230 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5231 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
5232 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5233 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
5235 if (ndr_flags
& NDR_BUFFERS
) {
5236 if (r
->printer_name
) {
5237 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5238 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5239 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5240 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5241 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
5242 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printer_name
), ndr_get_array_length(ndr
, &r
->printer_name
));
5244 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
5245 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
5246 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5248 if (r
->server_name
) {
5249 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5250 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5251 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5252 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5253 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
5254 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->server_name
), ndr_get_array_length(ndr
, &r
->server_name
));
5256 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
5257 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
5258 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5261 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5262 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5263 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5264 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5265 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
5266 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->user_name
), ndr_get_array_length(ndr
, &r
->user_name
));
5268 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
5269 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
5270 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5272 if (r
->document_name
) {
5273 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5274 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5275 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5276 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5277 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
5278 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
));
5280 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
5281 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
5282 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5284 if (r
->notify_name
) {
5285 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5286 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5287 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
5288 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
5289 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
5290 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->notify_name
), ndr_get_array_length(ndr
, &r
->notify_name
));
5292 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
5293 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
5294 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5297 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5298 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5299 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5300 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5301 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
5302 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_type
), ndr_get_array_length(ndr
, &r
->data_type
));
5304 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
5305 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
5306 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5308 if (r
->print_processor
) {
5309 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5310 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5311 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
5312 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
5313 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
5314 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->print_processor
), ndr_get_array_length(ndr
, &r
->print_processor
));
5316 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
5317 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
5318 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5320 if (r
->parameters
) {
5321 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5322 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5323 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
5324 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
5325 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
5326 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->parameters
), ndr_get_array_length(ndr
, &r
->parameters
));
5328 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
5329 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
5330 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5332 if (r
->driver_name
) {
5333 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5334 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
5335 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
5336 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
5337 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
5338 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
5340 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
5341 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
5342 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
5345 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5346 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
5347 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
5348 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
5350 if (r
->text_status
) {
5351 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5352 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5353 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5354 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5355 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
5356 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->text_status
), ndr_get_array_length(ndr
, &r
->text_status
));
5358 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
5359 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
5360 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5363 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5364 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
5365 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
5366 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
5369 return NDR_ERR_SUCCESS
;
5372 _PUBLIC_
void ndr_print_spoolss_SetJobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo4
*r
)
5374 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo4");
5376 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5377 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5379 if (r
->printer_name
) {
5380 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5383 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5385 if (r
->server_name
) {
5386 ndr_print_string(ndr
, "server_name", r
->server_name
);
5389 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5392 ndr_print_string(ndr
, "user_name", r
->user_name
);
5395 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5397 if (r
->document_name
) {
5398 ndr_print_string(ndr
, "document_name", r
->document_name
);
5401 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
5403 if (r
->notify_name
) {
5404 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
5407 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5410 ndr_print_string(ndr
, "data_type", r
->data_type
);
5413 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
5415 if (r
->print_processor
) {
5416 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
5419 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5421 if (r
->parameters
) {
5422 ndr_print_string(ndr
, "parameters", r
->parameters
);
5425 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
5427 if (r
->driver_name
) {
5428 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
5431 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
5434 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
5437 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5439 if (r
->text_status
) {
5440 ndr_print_string(ndr
, "text_status", r
->text_status
);
5443 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
5446 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
5449 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5450 ndr_print_uint32(ndr
, "priority", r
->priority
);
5451 ndr_print_uint32(ndr
, "position", r
->position
);
5452 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5453 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5454 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5455 ndr_print_uint32(ndr
, "size", r
->size
);
5456 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5457 ndr_print_uint32(ndr
, "time", r
->time
);
5458 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5459 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
5463 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_SetJobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetJobInfo
*r
)
5465 if (ndr_flags
& NDR_SCALARS
) {
5466 int level
= ndr_push_get_switch_value(ndr
, r
);
5467 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5470 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5474 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5478 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
5482 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
5490 if (ndr_flags
& NDR_BUFFERS
) {
5491 int level
= ndr_push_get_switch_value(ndr
, r
);
5495 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
5501 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5507 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
5513 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5522 return NDR_ERR_SUCCESS
;
5525 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_SetJobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetJobInfo
*r
)
5529 TALLOC_CTX
*_mem_save_info1_0
;
5530 TALLOC_CTX
*_mem_save_info2_0
;
5531 TALLOC_CTX
*_mem_save_info3_0
;
5532 TALLOC_CTX
*_mem_save_info4_0
;
5533 level
= ndr_pull_get_switch_value(ndr
, r
);
5534 if (ndr_flags
& NDR_SCALARS
) {
5535 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5536 if (_level
!= level
) {
5537 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
5541 uint32_t _ptr_info1
;
5542 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
5544 NDR_PULL_ALLOC(ndr
, r
->info1
);
5551 uint32_t _ptr_info2
;
5552 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
5554 NDR_PULL_ALLOC(ndr
, r
->info2
);
5561 uint32_t _ptr_info3
;
5562 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
5564 NDR_PULL_ALLOC(ndr
, r
->info3
);
5571 uint32_t _ptr_info4
;
5572 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
5574 NDR_PULL_ALLOC(ndr
, r
->info4
);
5585 if (ndr_flags
& NDR_BUFFERS
) {
5589 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5590 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
5591 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
5592 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
5598 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5599 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
5600 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5601 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
5607 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5608 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
5609 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
5610 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
5616 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5617 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
5618 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5619 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
5628 return NDR_ERR_SUCCESS
;
5631 _PUBLIC_
void ndr_print_spoolss_SetJobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetJobInfo
*r
)
5634 level
= ndr_print_get_switch_value(ndr
, r
);
5635 ndr_print_union(ndr
, name
, level
, "spoolss_SetJobInfo");
5638 ndr_print_ptr(ndr
, "info1", r
->info1
);
5641 ndr_print_spoolss_SetJobInfo1(ndr
, "info1", r
->info1
);
5647 ndr_print_ptr(ndr
, "info2", r
->info2
);
5650 ndr_print_spoolss_SetJobInfo2(ndr
, "info2", r
->info2
);
5656 ndr_print_ptr(ndr
, "info3", r
->info3
);
5659 ndr_print_spoolss_JobInfo3(ndr
, "info3", r
->info3
);
5665 ndr_print_ptr(ndr
, "info4", r
->info4
);
5668 ndr_print_spoolss_SetJobInfo4(ndr
, "info4", r
->info4
);
5679 static enum ndr_err_code
ndr_push_spoolss_JobInfoContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfoContainer
*r
)
5681 if (ndr_flags
& NDR_SCALARS
) {
5682 NDR_CHECK(ndr_push_align(ndr
, 4));
5683 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
5684 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
5685 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
5687 if (ndr_flags
& NDR_BUFFERS
) {
5688 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5690 return NDR_ERR_SUCCESS
;
5693 static enum ndr_err_code
ndr_pull_spoolss_JobInfoContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfoContainer
*r
)
5695 if (ndr_flags
& NDR_SCALARS
) {
5696 NDR_CHECK(ndr_pull_align(ndr
, 4));
5697 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
5698 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
5699 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
5701 if (ndr_flags
& NDR_BUFFERS
) {
5702 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5704 return NDR_ERR_SUCCESS
;
5707 _PUBLIC_
void ndr_print_spoolss_JobInfoContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfoContainer
*r
)
5709 ndr_print_struct(ndr
, name
, "spoolss_JobInfoContainer");
5711 ndr_print_uint32(ndr
, "level", r
->level
);
5712 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
5713 ndr_print_spoolss_SetJobInfo(ndr
, "info", &r
->info
);
5717 static enum ndr_err_code
ndr_push_spoolss_JobControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobControl r
)
5719 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5720 return NDR_ERR_SUCCESS
;
5723 static enum ndr_err_code
ndr_pull_spoolss_JobControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobControl
*r
)
5726 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5728 return NDR_ERR_SUCCESS
;
5731 _PUBLIC_
void ndr_print_spoolss_JobControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobControl r
)
5733 const char *val
= NULL
;
5736 case SPOOLSS_JOB_CONTROL_PAUSE
: val
= "SPOOLSS_JOB_CONTROL_PAUSE"; break;
5737 case SPOOLSS_JOB_CONTROL_RESUME
: val
= "SPOOLSS_JOB_CONTROL_RESUME"; break;
5738 case SPOOLSS_JOB_CONTROL_CANCEL
: val
= "SPOOLSS_JOB_CONTROL_CANCEL"; break;
5739 case SPOOLSS_JOB_CONTROL_RESTART
: val
= "SPOOLSS_JOB_CONTROL_RESTART"; break;
5740 case SPOOLSS_JOB_CONTROL_DELETE
: val
= "SPOOLSS_JOB_CONTROL_DELETE"; break;
5741 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER
: val
= "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
5742 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED
: val
= "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
5743 case SPOOLSS_JOB_CONTROL_RETAIN
: val
= "SPOOLSS_JOB_CONTROL_RETAIN"; break;
5744 case SPOOLSS_JOB_CONTROL_RELEASE
: val
= "SPOOLSS_JOB_CONTROL_RELEASE"; break;
5746 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5749 static enum ndr_err_code
ndr_push_spoolss_PrinterControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrinterControl r
)
5751 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5752 return NDR_ERR_SUCCESS
;
5755 static enum ndr_err_code
ndr_pull_spoolss_PrinterControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrinterControl
*r
)
5758 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5760 return NDR_ERR_SUCCESS
;
5763 _PUBLIC_
void ndr_print_spoolss_PrinterControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrinterControl r
)
5765 const char *val
= NULL
;
5768 case SPOOLSS_PRINTER_CONTROL_UNPAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
5769 case SPOOLSS_PRINTER_CONTROL_PAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
5770 case SPOOLSS_PRINTER_CONTROL_RESUME
: val
= "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
5771 case SPOOLSS_PRINTER_CONTROL_PURGE
: val
= "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
5772 case SPOOLSS_PRINTER_CONTROL_SET_STATUS
: val
= "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
5774 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5777 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo0
*r
)
5779 if (ndr_flags
& NDR_SCALARS
) {
5780 NDR_CHECK(ndr_push_align(ndr
, 4));
5781 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
5782 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
5783 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
5784 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
5785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
5786 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
5787 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
5788 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5789 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
5790 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
5791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
5792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
5793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
5794 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
5795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
5796 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_error
));
5797 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
5798 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
5799 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
5800 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
5801 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
5802 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->status
));
5803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
5804 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
5805 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
5806 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
5807 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
5808 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
5809 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
5811 if (ndr_flags
& NDR_BUFFERS
) {
5812 if (r
->servername
) {
5813 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
5814 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5815 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
5816 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5818 if (r
->printername
) {
5819 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
5820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
5822 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5825 return NDR_ERR_SUCCESS
;
5828 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo0
*r
)
5830 uint32_t _ptr_servername
;
5831 TALLOC_CTX
*_mem_save_servername_0
;
5832 uint32_t _ptr_printername
;
5833 TALLOC_CTX
*_mem_save_printername_0
;
5834 if (ndr_flags
& NDR_SCALARS
) {
5835 NDR_CHECK(ndr_pull_align(ndr
, 4));
5836 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
5837 if (_ptr_servername
) {
5838 NDR_PULL_ALLOC(ndr
, r
->servername
);
5840 r
->servername
= NULL
;
5842 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
5843 if (_ptr_printername
) {
5844 NDR_PULL_ALLOC(ndr
, r
->printername
);
5846 r
->printername
= NULL
;
5848 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
5849 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
5850 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
5851 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
5852 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
5853 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5854 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
5855 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
5856 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
5857 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
5858 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
5859 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
5860 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
5861 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_error
));
5862 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
5863 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
5864 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
5865 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
5866 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
5867 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->status
));
5868 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
5869 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
5870 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
5871 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
5872 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
5873 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
5874 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
5876 if (ndr_flags
& NDR_BUFFERS
) {
5877 if (r
->servername
) {
5878 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5879 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
5880 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
5881 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
5882 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
5883 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->servername
), ndr_get_array_length(ndr
, &r
->servername
));
5885 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
5886 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
5887 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
5889 if (r
->printername
) {
5890 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5891 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
5892 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
5893 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
5894 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
5895 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printername
), ndr_get_array_length(ndr
, &r
->printername
));
5897 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
5898 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
5899 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
5902 return NDR_ERR_SUCCESS
;
5905 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo0
*r
)
5907 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo0");
5909 ndr_print_ptr(ndr
, "servername", r
->servername
);
5911 if (r
->servername
) {
5912 ndr_print_string(ndr
, "servername", r
->servername
);
5915 ndr_print_ptr(ndr
, "printername", r
->printername
);
5917 if (r
->printername
) {
5918 ndr_print_string(ndr
, "printername", r
->printername
);
5921 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
5922 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
5923 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
5924 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
5925 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
5926 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5927 ndr_print_uint32(ndr
, "version", r
->version
);
5928 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
5929 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
5930 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
5931 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
5932 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
5933 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
5934 ndr_print_uint32(ndr
, "job_error", r
->job_error
);
5935 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
5936 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
5937 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
5938 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
5939 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
5940 ndr_print_uint32(ndr
, "status", r
->status
);
5941 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
5942 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
5943 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
5944 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
5945 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
5946 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
5947 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
5951 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo1
*r
)
5953 if (ndr_flags
& NDR_SCALARS
) {
5954 NDR_CHECK(ndr_push_align(ndr
, 4));
5955 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->flags
));
5956 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
5957 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->description
));
5958 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
5960 if (ndr_flags
& NDR_BUFFERS
) {
5962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
5963 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5964 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
5965 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5967 if (r
->description
) {
5968 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
5969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5970 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
5971 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->description
, ndr_charset_length(r
->description
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5974 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
5975 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5976 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
5977 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5980 return NDR_ERR_SUCCESS
;
5983 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo1
*r
)
5986 TALLOC_CTX
*_mem_save_name_0
;
5987 uint32_t _ptr_description
;
5988 TALLOC_CTX
*_mem_save_description_0
;
5989 uint32_t _ptr_comment
;
5990 TALLOC_CTX
*_mem_save_comment_0
;
5991 if (ndr_flags
& NDR_SCALARS
) {
5992 NDR_CHECK(ndr_pull_align(ndr
, 4));
5993 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5994 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
5996 NDR_PULL_ALLOC(ndr
, r
->name
);
6000 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
6001 if (_ptr_description
) {
6002 NDR_PULL_ALLOC(ndr
, r
->description
);
6004 r
->description
= NULL
;
6006 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6008 NDR_PULL_ALLOC(ndr
, r
->comment
);
6013 if (ndr_flags
& NDR_BUFFERS
) {
6015 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6016 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
6017 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
6018 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
6019 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
6020 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->name
), ndr_get_array_length(ndr
, &r
->name
));
6022 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
6023 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
6024 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
6026 if (r
->description
) {
6027 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6028 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
6029 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->description
));
6030 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->description
));
6031 if (ndr_get_array_length(ndr
, &r
->description
) > ndr_get_array_size(ndr
, &r
->description
)) {
6032 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->description
), ndr_get_array_length(ndr
, &r
->description
));
6034 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t)));
6035 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->description
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t), CH_UTF16
));
6036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
6039 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6040 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
6041 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
6042 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
6043 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
6044 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->comment
), ndr_get_array_length(ndr
, &r
->comment
));
6046 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
6047 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
6048 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
6051 return NDR_ERR_SUCCESS
;
6054 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo1
*r
)
6056 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo1");
6058 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->flags
);
6059 ndr_print_ptr(ndr
, "name", r
->name
);
6062 ndr_print_string(ndr
, "name", r
->name
);
6065 ndr_print_ptr(ndr
, "description", r
->description
);
6067 if (r
->description
) {
6068 ndr_print_string(ndr
, "description", r
->description
);
6071 ndr_print_ptr(ndr
, "comment", r
->comment
);
6074 ndr_print_string(ndr
, "comment", r
->comment
);
6080 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo2
*r
)
6082 if (ndr_flags
& NDR_SCALARS
) {
6083 NDR_CHECK(ndr_push_align(ndr
, 4));
6084 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6085 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6086 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sharename
));
6087 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
6088 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->drivername
));
6089 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
6090 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->location
));
6091 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
6092 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sepfile
));
6093 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printprocessor
));
6094 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
6095 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
6096 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secdesc
));
6097 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6098 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
6099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
6100 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
6101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
6102 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
6103 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
6104 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
6106 if (ndr_flags
& NDR_BUFFERS
) {
6107 if (r
->servername
) {
6108 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6109 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6110 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6111 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6113 if (r
->printername
) {
6114 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6115 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6116 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6117 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6120 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6121 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6122 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6123 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sharename
, ndr_charset_length(r
->sharename
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6126 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6127 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6128 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6129 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6131 if (r
->drivername
) {
6132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6133 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6134 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6135 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->drivername
, ndr_charset_length(r
->drivername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6139 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6140 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6141 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6144 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6146 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6147 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->location
, ndr_charset_length(r
->location
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6151 struct ndr_push
*_ndr_devmode
;
6152 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
6153 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
6154 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
6158 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6159 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6160 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6161 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sepfile
, ndr_charset_length(r
->sepfile
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6163 if (r
->printprocessor
) {
6164 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6165 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6167 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printprocessor
, ndr_charset_length(r
->printprocessor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6170 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6171 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6172 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6173 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6175 if (r
->parameters
) {
6176 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6177 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6178 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6179 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6183 struct ndr_push
*_ndr_secdesc
;
6184 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
6185 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
6186 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
6190 return NDR_ERR_SUCCESS
;
6193 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo2
*r
)
6195 uint32_t _ptr_servername
;
6196 TALLOC_CTX
*_mem_save_servername_0
;
6197 uint32_t _ptr_printername
;
6198 TALLOC_CTX
*_mem_save_printername_0
;
6199 uint32_t _ptr_sharename
;
6200 TALLOC_CTX
*_mem_save_sharename_0
;
6201 uint32_t _ptr_portname
;
6202 TALLOC_CTX
*_mem_save_portname_0
;
6203 uint32_t _ptr_drivername
;
6204 TALLOC_CTX
*_mem_save_drivername_0
;
6205 uint32_t _ptr_comment
;
6206 TALLOC_CTX
*_mem_save_comment_0
;
6207 uint32_t _ptr_location
;
6208 TALLOC_CTX
*_mem_save_location_0
;
6209 uint32_t _ptr_devmode
;
6210 TALLOC_CTX
*_mem_save_devmode_0
;
6211 uint32_t _ptr_sepfile
;
6212 TALLOC_CTX
*_mem_save_sepfile_0
;
6213 uint32_t _ptr_printprocessor
;
6214 TALLOC_CTX
*_mem_save_printprocessor_0
;
6215 uint32_t _ptr_datatype
;
6216 TALLOC_CTX
*_mem_save_datatype_0
;
6217 uint32_t _ptr_parameters
;
6218 TALLOC_CTX
*_mem_save_parameters_0
;
6219 uint32_t _ptr_secdesc
;
6220 TALLOC_CTX
*_mem_save_secdesc_0
;
6221 if (ndr_flags
& NDR_SCALARS
) {
6222 NDR_CHECK(ndr_pull_align(ndr
, 4));
6223 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6224 if (_ptr_servername
) {
6225 NDR_PULL_ALLOC(ndr
, r
->servername
);
6227 r
->servername
= NULL
;
6229 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6230 if (_ptr_printername
) {
6231 NDR_PULL_ALLOC(ndr
, r
->printername
);
6233 r
->printername
= NULL
;
6235 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
6236 if (_ptr_sharename
) {
6237 NDR_PULL_ALLOC(ndr
, r
->sharename
);
6239 r
->sharename
= NULL
;
6241 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
6242 if (_ptr_portname
) {
6243 NDR_PULL_ALLOC(ndr
, r
->portname
);
6247 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
6248 if (_ptr_drivername
) {
6249 NDR_PULL_ALLOC(ndr
, r
->drivername
);
6251 r
->drivername
= NULL
;
6253 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6255 NDR_PULL_ALLOC(ndr
, r
->comment
);
6259 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
6260 if (_ptr_location
) {
6261 NDR_PULL_ALLOC(ndr
, r
->location
);
6265 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
6267 NDR_PULL_ALLOC(ndr
, r
->devmode
);
6271 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
6273 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
6277 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
6278 if (_ptr_printprocessor
) {
6279 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
6281 r
->printprocessor
= NULL
;
6283 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
6284 if (_ptr_datatype
) {
6285 NDR_PULL_ALLOC(ndr
, r
->datatype
);
6289 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
6290 if (_ptr_parameters
) {
6291 NDR_PULL_ALLOC(ndr
, r
->parameters
);
6293 r
->parameters
= NULL
;
6295 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
6297 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
6301 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6302 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
6303 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
6304 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
6305 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
6306 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
6307 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
6308 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
6310 if (ndr_flags
& NDR_BUFFERS
) {
6311 if (r
->servername
) {
6312 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6313 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6314 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6315 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6316 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
6317 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->servername
), ndr_get_array_length(ndr
, &r
->servername
));
6319 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
6320 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
6321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6323 if (r
->printername
) {
6324 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6325 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6326 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6327 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6328 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6329 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printername
), ndr_get_array_length(ndr
, &r
->printername
));
6331 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6332 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6333 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6336 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6337 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
6338 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sharename
));
6339 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sharename
));
6340 if (ndr_get_array_length(ndr
, &r
->sharename
) > ndr_get_array_size(ndr
, &r
->sharename
)) {
6341 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->sharename
), ndr_get_array_length(ndr
, &r
->sharename
));
6343 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t)));
6344 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sharename
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t), CH_UTF16
));
6345 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
6348 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6349 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
6350 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
6351 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
6352 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
6353 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->portname
), ndr_get_array_length(ndr
, &r
->portname
));
6355 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
6356 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
6357 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
6359 if (r
->drivername
) {
6360 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6361 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
6362 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->drivername
));
6363 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->drivername
));
6364 if (ndr_get_array_length(ndr
, &r
->drivername
) > ndr_get_array_size(ndr
, &r
->drivername
)) {
6365 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->drivername
), ndr_get_array_length(ndr
, &r
->drivername
));
6367 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t)));
6368 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->drivername
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t), CH_UTF16
));
6369 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
6372 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6373 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
6374 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
6375 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
6376 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
6377 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->comment
), ndr_get_array_length(ndr
, &r
->comment
));
6379 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
6380 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
6381 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
6384 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6385 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
6386 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->location
));
6387 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->location
));
6388 if (ndr_get_array_length(ndr
, &r
->location
) > ndr_get_array_size(ndr
, &r
->location
)) {
6389 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->location
), ndr_get_array_length(ndr
, &r
->location
));
6391 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t)));
6392 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->location
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t), CH_UTF16
));
6393 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
6396 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6397 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
6399 struct ndr_pull
*_ndr_devmode
;
6400 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
6401 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
6402 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
6404 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
6407 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6408 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
6409 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sepfile
));
6410 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sepfile
));
6411 if (ndr_get_array_length(ndr
, &r
->sepfile
) > ndr_get_array_size(ndr
, &r
->sepfile
)) {
6412 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->sepfile
), ndr_get_array_length(ndr
, &r
->sepfile
));
6414 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t)));
6415 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sepfile
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t), CH_UTF16
));
6416 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
6418 if (r
->printprocessor
) {
6419 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6420 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
6421 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printprocessor
));
6422 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printprocessor
));
6423 if (ndr_get_array_length(ndr
, &r
->printprocessor
) > ndr_get_array_size(ndr
, &r
->printprocessor
)) {
6424 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printprocessor
), ndr_get_array_length(ndr
, &r
->printprocessor
));
6426 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t)));
6427 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printprocessor
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t), CH_UTF16
));
6428 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
6431 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6432 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
6433 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
6434 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
6435 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
6436 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
));
6438 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
6439 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
6440 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
6442 if (r
->parameters
) {
6443 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6444 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
6445 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
6446 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
6447 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
6448 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->parameters
), ndr_get_array_length(ndr
, &r
->parameters
));
6450 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
6451 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
6452 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
6455 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6456 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
6458 struct ndr_pull
*_ndr_secdesc
;
6459 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
6460 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
6461 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
6463 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
6466 return NDR_ERR_SUCCESS
;
6469 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo2
*r
)
6471 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo2");
6473 ndr_print_ptr(ndr
, "servername", r
->servername
);
6475 if (r
->servername
) {
6476 ndr_print_string(ndr
, "servername", r
->servername
);
6479 ndr_print_ptr(ndr
, "printername", r
->printername
);
6481 if (r
->printername
) {
6482 ndr_print_string(ndr
, "printername", r
->printername
);
6485 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
6488 ndr_print_string(ndr
, "sharename", r
->sharename
);
6491 ndr_print_ptr(ndr
, "portname", r
->portname
);
6494 ndr_print_string(ndr
, "portname", r
->portname
);
6497 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
6499 if (r
->drivername
) {
6500 ndr_print_string(ndr
, "drivername", r
->drivername
);
6503 ndr_print_ptr(ndr
, "comment", r
->comment
);
6506 ndr_print_string(ndr
, "comment", r
->comment
);
6509 ndr_print_ptr(ndr
, "location", r
->location
);
6512 ndr_print_string(ndr
, "location", r
->location
);
6515 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
6518 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
6521 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
6524 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
6527 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
6529 if (r
->printprocessor
) {
6530 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
6533 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
6536 ndr_print_string(ndr
, "datatype", r
->datatype
);
6539 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
6541 if (r
->parameters
) {
6542 ndr_print_string(ndr
, "parameters", r
->parameters
);
6545 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
6548 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
6551 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
6552 ndr_print_uint32(ndr
, "priority", r
->priority
);
6553 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
6554 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
6555 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
6556 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
6557 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
6558 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
6562 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo3
*r
)
6564 if (ndr_flags
& NDR_SCALARS
) {
6565 NDR_CHECK(ndr_push_align(ndr
, 4));
6566 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sec_desc_ptr
));
6568 if (ndr_flags
& NDR_BUFFERS
) {
6570 return NDR_ERR_SUCCESS
;
6573 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo3
*r
)
6575 if (ndr_flags
& NDR_SCALARS
) {
6576 NDR_CHECK(ndr_pull_align(ndr
, 4));
6577 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sec_desc_ptr
));
6579 if (ndr_flags
& NDR_BUFFERS
) {
6581 return NDR_ERR_SUCCESS
;
6584 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo3
*r
)
6586 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo3");
6588 ndr_print_uint32(ndr
, "sec_desc_ptr", r
->sec_desc_ptr
);
6592 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo4
*r
)
6594 if (ndr_flags
& NDR_SCALARS
) {
6595 NDR_CHECK(ndr_push_align(ndr
, 4));
6596 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6597 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6598 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6600 if (ndr_flags
& NDR_BUFFERS
) {
6601 if (r
->printername
) {
6602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6603 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6604 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6605 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6607 if (r
->servername
) {
6608 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6610 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6611 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6614 return NDR_ERR_SUCCESS
;
6617 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo4
*r
)
6619 uint32_t _ptr_printername
;
6620 TALLOC_CTX
*_mem_save_printername_0
;
6621 uint32_t _ptr_servername
;
6622 TALLOC_CTX
*_mem_save_servername_0
;
6623 if (ndr_flags
& NDR_SCALARS
) {
6624 NDR_CHECK(ndr_pull_align(ndr
, 4));
6625 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6626 if (_ptr_printername
) {
6627 NDR_PULL_ALLOC(ndr
, r
->printername
);
6629 r
->printername
= NULL
;
6631 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6632 if (_ptr_servername
) {
6633 NDR_PULL_ALLOC(ndr
, r
->servername
);
6635 r
->servername
= NULL
;
6637 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6639 if (ndr_flags
& NDR_BUFFERS
) {
6640 if (r
->printername
) {
6641 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6642 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6643 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6644 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6645 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6646 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printername
), ndr_get_array_length(ndr
, &r
->printername
));
6648 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6649 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6650 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6652 if (r
->servername
) {
6653 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6654 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6655 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6656 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6657 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
6658 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->servername
), ndr_get_array_length(ndr
, &r
->servername
));
6660 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
6661 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
6662 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6665 return NDR_ERR_SUCCESS
;
6668 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo4
*r
)
6670 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo4");
6672 ndr_print_ptr(ndr
, "printername", r
->printername
);
6674 if (r
->printername
) {
6675 ndr_print_string(ndr
, "printername", r
->printername
);
6678 ndr_print_ptr(ndr
, "servername", r
->servername
);
6680 if (r
->servername
) {
6681 ndr_print_string(ndr
, "servername", r
->servername
);
6684 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
6688 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo5
*r
)
6690 if (ndr_flags
& NDR_SCALARS
) {
6691 NDR_CHECK(ndr_push_align(ndr
, 4));
6692 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6693 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
6694 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6695 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
6696 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
6698 if (ndr_flags
& NDR_BUFFERS
) {
6699 if (r
->printername
) {
6700 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6701 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6702 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6703 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6706 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6707 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6708 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6709 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6712 return NDR_ERR_SUCCESS
;
6715 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo5
*r
)
6717 uint32_t _ptr_printername
;
6718 TALLOC_CTX
*_mem_save_printername_0
;
6719 uint32_t _ptr_portname
;
6720 TALLOC_CTX
*_mem_save_portname_0
;
6721 if (ndr_flags
& NDR_SCALARS
) {
6722 NDR_CHECK(ndr_pull_align(ndr
, 4));
6723 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6724 if (_ptr_printername
) {
6725 NDR_PULL_ALLOC(ndr
, r
->printername
);
6727 r
->printername
= NULL
;
6729 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
6730 if (_ptr_portname
) {
6731 NDR_PULL_ALLOC(ndr
, r
->portname
);
6735 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6736 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
6737 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
6739 if (ndr_flags
& NDR_BUFFERS
) {
6740 if (r
->printername
) {
6741 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6742 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6743 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6744 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6745 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6746 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printername
), ndr_get_array_length(ndr
, &r
->printername
));
6748 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6749 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6750 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6753 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6754 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
6755 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
6756 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
6757 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
6758 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->portname
), ndr_get_array_length(ndr
, &r
->portname
));
6760 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
6761 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
6762 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
6765 return NDR_ERR_SUCCESS
;
6768 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo5
*r
)
6770 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo5");
6772 ndr_print_ptr(ndr
, "printername", r
->printername
);
6774 if (r
->printername
) {
6775 ndr_print_string(ndr
, "printername", r
->printername
);
6778 ndr_print_ptr(ndr
, "portname", r
->portname
);
6781 ndr_print_string(ndr
, "portname", r
->portname
);
6784 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
6785 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
6786 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
6790 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo6
*r
)
6792 if (ndr_flags
& NDR_SCALARS
) {
6793 NDR_CHECK(ndr_push_align(ndr
, 4));
6794 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
6796 if (ndr_flags
& NDR_BUFFERS
) {
6798 return NDR_ERR_SUCCESS
;
6801 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo6
*r
)
6803 if (ndr_flags
& NDR_SCALARS
) {
6804 NDR_CHECK(ndr_pull_align(ndr
, 4));
6805 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
6807 if (ndr_flags
& NDR_BUFFERS
) {
6809 return NDR_ERR_SUCCESS
;
6812 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo6
*r
)
6814 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo6");
6816 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
6820 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo7
*r
)
6822 if (ndr_flags
& NDR_SCALARS
) {
6823 NDR_CHECK(ndr_push_align(ndr
, 4));
6824 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->guid
));
6825 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
6827 if (ndr_flags
& NDR_BUFFERS
) {
6829 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
6830 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6831 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
6832 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->guid
, ndr_charset_length(r
->guid
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6835 return NDR_ERR_SUCCESS
;
6838 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo7
*r
)
6841 TALLOC_CTX
*_mem_save_guid_0
;
6842 if (ndr_flags
& NDR_SCALARS
) {
6843 NDR_CHECK(ndr_pull_align(ndr
, 4));
6844 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
6846 NDR_PULL_ALLOC(ndr
, r
->guid
);
6850 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
6852 if (ndr_flags
& NDR_BUFFERS
) {
6854 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6855 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
6856 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->guid
));
6857 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->guid
));
6858 if (ndr_get_array_length(ndr
, &r
->guid
) > ndr_get_array_size(ndr
, &r
->guid
)) {
6859 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->guid
), ndr_get_array_length(ndr
, &r
->guid
));
6861 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t)));
6862 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->guid
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t), CH_UTF16
));
6863 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
6866 return NDR_ERR_SUCCESS
;
6869 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo7
*r
)
6871 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo7");
6873 ndr_print_ptr(ndr
, "guid", r
->guid
);
6876 ndr_print_string(ndr
, "guid", r
->guid
);
6879 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
6883 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetPrinterInfo
*r
)
6885 if (ndr_flags
& NDR_SCALARS
) {
6886 int level
= ndr_push_get_switch_value(ndr
, r
);
6887 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6890 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
6894 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
6898 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
6902 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
6906 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
6910 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info5
));
6914 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
6918 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info7
));
6922 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
6926 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info9
));
6934 if (ndr_flags
& NDR_BUFFERS
) {
6935 int level
= ndr_push_get_switch_value(ndr
, r
);
6939 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
6945 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
6951 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6957 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
6963 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6969 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
6975 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
6981 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
6987 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
6993 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info9
));
7002 return NDR_ERR_SUCCESS
;
7005 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetPrinterInfo
*r
)
7009 TALLOC_CTX
*_mem_save_info0_0
;
7010 TALLOC_CTX
*_mem_save_info1_0
;
7011 TALLOC_CTX
*_mem_save_info2_0
;
7012 TALLOC_CTX
*_mem_save_info3_0
;
7013 TALLOC_CTX
*_mem_save_info4_0
;
7014 TALLOC_CTX
*_mem_save_info5_0
;
7015 TALLOC_CTX
*_mem_save_info6_0
;
7016 TALLOC_CTX
*_mem_save_info7_0
;
7017 TALLOC_CTX
*_mem_save_info8_0
;
7018 TALLOC_CTX
*_mem_save_info9_0
;
7019 level
= ndr_pull_get_switch_value(ndr
, r
);
7020 if (ndr_flags
& NDR_SCALARS
) {
7021 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7022 if (_level
!= level
) {
7023 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
7027 uint32_t _ptr_info0
;
7028 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
7030 NDR_PULL_ALLOC(ndr
, r
->info0
);
7037 uint32_t _ptr_info1
;
7038 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
7040 NDR_PULL_ALLOC(ndr
, r
->info1
);
7047 uint32_t _ptr_info2
;
7048 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
7050 NDR_PULL_ALLOC(ndr
, r
->info2
);
7057 uint32_t _ptr_info3
;
7058 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
7060 NDR_PULL_ALLOC(ndr
, r
->info3
);
7067 uint32_t _ptr_info4
;
7068 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
7070 NDR_PULL_ALLOC(ndr
, r
->info4
);
7077 uint32_t _ptr_info5
;
7078 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info5
));
7080 NDR_PULL_ALLOC(ndr
, r
->info5
);
7087 uint32_t _ptr_info6
;
7088 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
7090 NDR_PULL_ALLOC(ndr
, r
->info6
);
7097 uint32_t _ptr_info7
;
7098 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info7
));
7100 NDR_PULL_ALLOC(ndr
, r
->info7
);
7107 uint32_t _ptr_info8
;
7108 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
7110 NDR_PULL_ALLOC(ndr
, r
->info8
);
7117 uint32_t _ptr_info9
;
7118 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info9
));
7120 NDR_PULL_ALLOC(ndr
, r
->info9
);
7131 if (ndr_flags
& NDR_BUFFERS
) {
7135 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7136 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
7137 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
7138 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
7144 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7145 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
7146 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7147 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
7153 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7154 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
7155 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
7156 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
7162 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7163 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
7164 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
7165 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
7171 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7172 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
7173 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
7174 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
7180 _mem_save_info5_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7181 NDR_PULL_SET_MEM_CTX(ndr
, r
->info5
, 0);
7182 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
7183 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info5_0
, 0);
7189 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7190 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
7191 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
7192 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
7198 _mem_save_info7_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7199 NDR_PULL_SET_MEM_CTX(ndr
, r
->info7
, 0);
7200 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
7201 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info7_0
, 0);
7207 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7208 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
7209 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
7210 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
7216 _mem_save_info9_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7217 NDR_PULL_SET_MEM_CTX(ndr
, r
->info9
, 0);
7218 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info9
));
7219 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info9_0
, 0);
7228 return NDR_ERR_SUCCESS
;
7231 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetPrinterInfo
*r
)
7234 level
= ndr_print_get_switch_value(ndr
, r
);
7235 ndr_print_union(ndr
, name
, level
, "spoolss_SetPrinterInfo");
7238 ndr_print_ptr(ndr
, "info0", r
->info0
);
7241 ndr_print_spoolss_SetPrinterInfo0(ndr
, "info0", r
->info0
);
7247 ndr_print_ptr(ndr
, "info1", r
->info1
);
7250 ndr_print_spoolss_SetPrinterInfo1(ndr
, "info1", r
->info1
);
7256 ndr_print_ptr(ndr
, "info2", r
->info2
);
7259 ndr_print_spoolss_SetPrinterInfo2(ndr
, "info2", r
->info2
);
7265 ndr_print_ptr(ndr
, "info3", r
->info3
);
7268 ndr_print_spoolss_SetPrinterInfo3(ndr
, "info3", r
->info3
);
7274 ndr_print_ptr(ndr
, "info4", r
->info4
);
7277 ndr_print_spoolss_SetPrinterInfo4(ndr
, "info4", r
->info4
);
7283 ndr_print_ptr(ndr
, "info5", r
->info5
);
7286 ndr_print_spoolss_SetPrinterInfo5(ndr
, "info5", r
->info5
);
7292 ndr_print_ptr(ndr
, "info6", r
->info6
);
7295 ndr_print_spoolss_SetPrinterInfo6(ndr
, "info6", r
->info6
);
7301 ndr_print_ptr(ndr
, "info7", r
->info7
);
7304 ndr_print_spoolss_SetPrinterInfo7(ndr
, "info7", r
->info7
);
7310 ndr_print_ptr(ndr
, "info8", r
->info8
);
7313 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", r
->info8
);
7319 ndr_print_ptr(ndr
, "info9", r
->info9
);
7322 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", r
->info9
);
7333 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfoCtr
*r
)
7335 if (ndr_flags
& NDR_SCALARS
) {
7336 NDR_CHECK(ndr_push_align(ndr
, 4));
7337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
7338 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
7339 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7341 if (ndr_flags
& NDR_BUFFERS
) {
7342 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7344 return NDR_ERR_SUCCESS
;
7347 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfoCtr
*r
)
7349 if (ndr_flags
& NDR_SCALARS
) {
7350 NDR_CHECK(ndr_pull_align(ndr
, 4));
7351 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
7352 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
7353 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7355 if (ndr_flags
& NDR_BUFFERS
) {
7356 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7358 return NDR_ERR_SUCCESS
;
7361 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfoCtr
*r
)
7363 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfoCtr");
7365 ndr_print_uint32(ndr
, "level", r
->level
);
7366 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
7367 ndr_print_spoolss_SetPrinterInfo(ndr
, "info", &r
->info
);
7371 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_StringArray(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_StringArray
*r
)
7373 if (ndr_flags
& NDR_SCALARS
) {
7374 NDR_CHECK(ndr_push_align(ndr
, 4));
7375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, (ndr_size_spoolss_StringArray(r
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2));
7377 uint32_t _flags_save_string_array
= ndr
->flags
;
7378 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7379 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string
));
7380 ndr
->flags
= _flags_save_string_array
;
7383 if (ndr_flags
& NDR_BUFFERS
) {
7385 return NDR_ERR_SUCCESS
;
7388 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_StringArray(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_StringArray
*r
)
7390 if (ndr_flags
& NDR_SCALARS
) {
7391 NDR_CHECK(ndr_pull_align(ndr
, 4));
7392 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
7394 uint32_t _flags_save_string_array
= ndr
->flags
;
7395 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7396 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string
));
7397 ndr
->flags
= _flags_save_string_array
;
7400 if (ndr_flags
& NDR_BUFFERS
) {
7402 return NDR_ERR_SUCCESS
;
7405 _PUBLIC_
void ndr_print_spoolss_StringArray(struct ndr_print
*ndr
, const char *name
, const struct spoolss_StringArray
*r
)
7407 ndr_print_struct(ndr
, name
, "spoolss_StringArray");
7409 ndr_print_uint32(ndr
, "_ndr_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?(ndr_size_spoolss_StringArray(r
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2:r
->_ndr_size
);
7410 ndr_print_string_array(ndr
, "string", r
->string
);
7414 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo1
*r
)
7416 if (ndr_flags
& NDR_SCALARS
) {
7417 NDR_CHECK(ndr_push_align(ndr
, 4));
7418 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7420 if (ndr_flags
& NDR_BUFFERS
) {
7421 if (r
->driver_name
) {
7422 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7423 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7424 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7425 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7428 return NDR_ERR_SUCCESS
;
7431 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo1
*r
)
7433 uint32_t _ptr_driver_name
;
7434 TALLOC_CTX
*_mem_save_driver_name_0
;
7435 if (ndr_flags
& NDR_SCALARS
) {
7436 NDR_CHECK(ndr_pull_align(ndr
, 4));
7437 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7438 if (_ptr_driver_name
) {
7439 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7441 r
->driver_name
= NULL
;
7444 if (ndr_flags
& NDR_BUFFERS
) {
7445 if (r
->driver_name
) {
7446 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7447 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7448 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7449 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7450 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
7451 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
7453 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
7454 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
7455 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7458 return NDR_ERR_SUCCESS
;
7461 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo1
*r
)
7463 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo1");
7465 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
7467 if (r
->driver_name
) {
7468 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
7474 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverOSVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion r
)
7476 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7477 return NDR_ERR_SUCCESS
;
7480 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverOSVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion
*r
)
7483 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7485 return NDR_ERR_SUCCESS
;
7488 _PUBLIC_
void ndr_print_spoolss_DriverOSVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverOSVersion r
)
7490 const char *val
= NULL
;
7493 case SPOOLSS_DRIVER_VERSION_9X
: val
= "SPOOLSS_DRIVER_VERSION_9X"; break;
7494 case SPOOLSS_DRIVER_VERSION_NT35
: val
= "SPOOLSS_DRIVER_VERSION_NT35"; break;
7495 case SPOOLSS_DRIVER_VERSION_NT4
: val
= "SPOOLSS_DRIVER_VERSION_NT4"; break;
7496 case SPOOLSS_DRIVER_VERSION_200X
: val
= "SPOOLSS_DRIVER_VERSION_200X"; break;
7498 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
7501 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo2
*r
)
7503 if (ndr_flags
& NDR_SCALARS
) {
7504 NDR_CHECK(ndr_push_align(ndr
, 4));
7505 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
7506 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7507 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
7508 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
7509 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
7510 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
7512 if (ndr_flags
& NDR_BUFFERS
) {
7513 if (r
->driver_name
) {
7514 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7516 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7517 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7519 if (r
->architecture
) {
7520 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7521 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7522 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7523 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7525 if (r
->driver_path
) {
7526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7527 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7528 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7529 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7535 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7537 if (r
->config_file
) {
7538 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7539 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7540 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7541 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7544 return NDR_ERR_SUCCESS
;
7547 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo2
*r
)
7549 uint32_t _ptr_driver_name
;
7550 TALLOC_CTX
*_mem_save_driver_name_0
;
7551 uint32_t _ptr_architecture
;
7552 TALLOC_CTX
*_mem_save_architecture_0
;
7553 uint32_t _ptr_driver_path
;
7554 TALLOC_CTX
*_mem_save_driver_path_0
;
7555 uint32_t _ptr_data_file
;
7556 TALLOC_CTX
*_mem_save_data_file_0
;
7557 uint32_t _ptr_config_file
;
7558 TALLOC_CTX
*_mem_save_config_file_0
;
7559 if (ndr_flags
& NDR_SCALARS
) {
7560 NDR_CHECK(ndr_pull_align(ndr
, 4));
7561 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
7562 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7563 if (_ptr_driver_name
) {
7564 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7566 r
->driver_name
= NULL
;
7568 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
7569 if (_ptr_architecture
) {
7570 NDR_PULL_ALLOC(ndr
, r
->architecture
);
7572 r
->architecture
= NULL
;
7574 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
7575 if (_ptr_driver_path
) {
7576 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
7578 r
->driver_path
= NULL
;
7580 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
7581 if (_ptr_data_file
) {
7582 NDR_PULL_ALLOC(ndr
, r
->data_file
);
7584 r
->data_file
= NULL
;
7586 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
7587 if (_ptr_config_file
) {
7588 NDR_PULL_ALLOC(ndr
, r
->config_file
);
7590 r
->config_file
= NULL
;
7593 if (ndr_flags
& NDR_BUFFERS
) {
7594 if (r
->driver_name
) {
7595 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7596 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7597 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7598 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7599 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
7600 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
7602 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
7603 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
7604 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7606 if (r
->architecture
) {
7607 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7608 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
7609 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
7610 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
7611 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
7612 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
7614 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
7615 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
7616 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
7618 if (r
->driver_path
) {
7619 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7620 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
7621 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
7622 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
7623 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
7624 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
7626 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
7627 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
7628 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
7631 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7632 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
7633 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
7634 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
7635 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
7636 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
7638 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
7639 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
7640 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
7642 if (r
->config_file
) {
7643 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7644 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
7645 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
7646 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
7647 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
7648 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
7650 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
7651 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
7652 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
7655 return NDR_ERR_SUCCESS
;
7658 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo2
*r
)
7660 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo2");
7662 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
7663 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
7665 if (r
->driver_name
) {
7666 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
7669 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
7671 if (r
->architecture
) {
7672 ndr_print_string(ndr
, "architecture", r
->architecture
);
7675 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
7677 if (r
->driver_path
) {
7678 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
7681 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
7684 ndr_print_string(ndr
, "data_file", r
->data_file
);
7687 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
7689 if (r
->config_file
) {
7690 ndr_print_string(ndr
, "config_file", r
->config_file
);
7696 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo3
*r
)
7698 if (ndr_flags
& NDR_SCALARS
) {
7699 NDR_CHECK(ndr_push_align(ndr
, 4));
7700 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
7701 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7702 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
7703 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
7704 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
7705 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
7706 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
7707 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
7708 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
7709 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
7710 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
7712 if (ndr_flags
& NDR_BUFFERS
) {
7713 if (r
->driver_name
) {
7714 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7715 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7716 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7717 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7719 if (r
->architecture
) {
7720 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7721 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7722 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7723 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7725 if (r
->driver_path
) {
7726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7727 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7729 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7732 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7733 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7734 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7735 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7737 if (r
->config_file
) {
7738 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7739 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7740 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7741 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7744 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
7745 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7746 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
7747 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7749 if (r
->monitor_name
) {
7750 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
7751 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7752 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
7753 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7755 if (r
->default_datatype
) {
7756 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
7757 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7758 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
7759 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7761 if (r
->dependent_files
) {
7762 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
7765 return NDR_ERR_SUCCESS
;
7768 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo3
*r
)
7770 uint32_t _ptr_driver_name
;
7771 TALLOC_CTX
*_mem_save_driver_name_0
;
7772 uint32_t _ptr_architecture
;
7773 TALLOC_CTX
*_mem_save_architecture_0
;
7774 uint32_t _ptr_driver_path
;
7775 TALLOC_CTX
*_mem_save_driver_path_0
;
7776 uint32_t _ptr_data_file
;
7777 TALLOC_CTX
*_mem_save_data_file_0
;
7778 uint32_t _ptr_config_file
;
7779 TALLOC_CTX
*_mem_save_config_file_0
;
7780 uint32_t _ptr_help_file
;
7781 TALLOC_CTX
*_mem_save_help_file_0
;
7782 uint32_t _ptr_monitor_name
;
7783 TALLOC_CTX
*_mem_save_monitor_name_0
;
7784 uint32_t _ptr_default_datatype
;
7785 TALLOC_CTX
*_mem_save_default_datatype_0
;
7786 uint32_t _ptr_dependent_files
;
7787 TALLOC_CTX
*_mem_save_dependent_files_0
;
7788 if (ndr_flags
& NDR_SCALARS
) {
7789 NDR_CHECK(ndr_pull_align(ndr
, 4));
7790 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
7791 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7792 if (_ptr_driver_name
) {
7793 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7795 r
->driver_name
= NULL
;
7797 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
7798 if (_ptr_architecture
) {
7799 NDR_PULL_ALLOC(ndr
, r
->architecture
);
7801 r
->architecture
= NULL
;
7803 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
7804 if (_ptr_driver_path
) {
7805 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
7807 r
->driver_path
= NULL
;
7809 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
7810 if (_ptr_data_file
) {
7811 NDR_PULL_ALLOC(ndr
, r
->data_file
);
7813 r
->data_file
= NULL
;
7815 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
7816 if (_ptr_config_file
) {
7817 NDR_PULL_ALLOC(ndr
, r
->config_file
);
7819 r
->config_file
= NULL
;
7821 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
7822 if (_ptr_help_file
) {
7823 NDR_PULL_ALLOC(ndr
, r
->help_file
);
7825 r
->help_file
= NULL
;
7827 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
7828 if (_ptr_monitor_name
) {
7829 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
7831 r
->monitor_name
= NULL
;
7833 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
7834 if (_ptr_default_datatype
) {
7835 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
7837 r
->default_datatype
= NULL
;
7839 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
7840 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
7841 if (_ptr_dependent_files
) {
7842 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
7844 r
->dependent_files
= NULL
;
7847 if (ndr_flags
& NDR_BUFFERS
) {
7848 if (r
->driver_name
) {
7849 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7850 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7851 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7852 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7853 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
7854 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
7856 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
7857 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
7858 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7860 if (r
->architecture
) {
7861 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7862 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
7863 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
7864 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
7865 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
7866 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
7868 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
7869 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
7870 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
7872 if (r
->driver_path
) {
7873 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7874 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
7875 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
7876 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
7877 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
7878 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
7880 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
7881 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
7882 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
7885 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7886 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
7887 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
7888 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
7889 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
7890 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
7892 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
7893 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
7894 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
7896 if (r
->config_file
) {
7897 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7898 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
7899 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
7900 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
7901 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
7902 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
7904 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
7905 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
7906 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
7909 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7910 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
7911 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
7912 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
7913 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
7914 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->help_file
), ndr_get_array_length(ndr
, &r
->help_file
));
7916 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
7917 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
7918 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
7920 if (r
->monitor_name
) {
7921 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7922 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
7923 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
7924 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
7925 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
7926 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->monitor_name
), ndr_get_array_length(ndr
, &r
->monitor_name
));
7928 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
7929 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
7930 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
7932 if (r
->default_datatype
) {
7933 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7934 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
7935 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
7936 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
7937 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
7938 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->default_datatype
), ndr_get_array_length(ndr
, &r
->default_datatype
));
7940 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
7941 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
7942 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
7944 if (r
->dependent_files
) {
7945 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7946 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
7947 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
7948 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
7951 return NDR_ERR_SUCCESS
;
7954 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo3
*r
)
7956 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo3");
7958 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
7959 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
7961 if (r
->driver_name
) {
7962 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
7965 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
7967 if (r
->architecture
) {
7968 ndr_print_string(ndr
, "architecture", r
->architecture
);
7971 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
7973 if (r
->driver_path
) {
7974 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
7977 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
7980 ndr_print_string(ndr
, "data_file", r
->data_file
);
7983 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
7985 if (r
->config_file
) {
7986 ndr_print_string(ndr
, "config_file", r
->config_file
);
7989 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
7992 ndr_print_string(ndr
, "help_file", r
->help_file
);
7995 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
7997 if (r
->monitor_name
) {
7998 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8001 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8003 if (r
->default_datatype
) {
8004 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8007 ndr_print_uint32(ndr
, "_ndr_size_dependent_files", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_dependent_files
);
8008 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8010 if (r
->dependent_files
) {
8011 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8017 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo4
*r
)
8019 if (ndr_flags
& NDR_SCALARS
) {
8020 NDR_CHECK(ndr_push_align(ndr
, 4));
8021 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8022 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8023 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8024 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8025 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8026 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8027 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8028 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8029 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8030 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8031 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8032 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8033 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8035 if (ndr_flags
& NDR_BUFFERS
) {
8036 if (r
->driver_name
) {
8037 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8038 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8039 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8040 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8042 if (r
->architecture
) {
8043 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8044 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8045 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8046 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8048 if (r
->driver_path
) {
8049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8050 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8051 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8052 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8055 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8057 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8058 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8060 if (r
->config_file
) {
8061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8063 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8064 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8068 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8069 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8070 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8072 if (r
->monitor_name
) {
8073 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8074 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8075 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8076 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8078 if (r
->default_datatype
) {
8079 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8080 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8081 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8082 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8084 if (r
->dependent_files
) {
8085 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8087 if (r
->previous_names
) {
8088 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8091 return NDR_ERR_SUCCESS
;
8094 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo4
*r
)
8096 uint32_t _ptr_driver_name
;
8097 TALLOC_CTX
*_mem_save_driver_name_0
;
8098 uint32_t _ptr_architecture
;
8099 TALLOC_CTX
*_mem_save_architecture_0
;
8100 uint32_t _ptr_driver_path
;
8101 TALLOC_CTX
*_mem_save_driver_path_0
;
8102 uint32_t _ptr_data_file
;
8103 TALLOC_CTX
*_mem_save_data_file_0
;
8104 uint32_t _ptr_config_file
;
8105 TALLOC_CTX
*_mem_save_config_file_0
;
8106 uint32_t _ptr_help_file
;
8107 TALLOC_CTX
*_mem_save_help_file_0
;
8108 uint32_t _ptr_monitor_name
;
8109 TALLOC_CTX
*_mem_save_monitor_name_0
;
8110 uint32_t _ptr_default_datatype
;
8111 TALLOC_CTX
*_mem_save_default_datatype_0
;
8112 uint32_t _ptr_dependent_files
;
8113 TALLOC_CTX
*_mem_save_dependent_files_0
;
8114 uint32_t _ptr_previous_names
;
8115 TALLOC_CTX
*_mem_save_previous_names_0
;
8116 if (ndr_flags
& NDR_SCALARS
) {
8117 NDR_CHECK(ndr_pull_align(ndr
, 4));
8118 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8119 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8120 if (_ptr_driver_name
) {
8121 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8123 r
->driver_name
= NULL
;
8125 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8126 if (_ptr_architecture
) {
8127 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8129 r
->architecture
= NULL
;
8131 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8132 if (_ptr_driver_path
) {
8133 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8135 r
->driver_path
= NULL
;
8137 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8138 if (_ptr_data_file
) {
8139 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8141 r
->data_file
= NULL
;
8143 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8144 if (_ptr_config_file
) {
8145 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8147 r
->config_file
= NULL
;
8149 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8150 if (_ptr_help_file
) {
8151 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8153 r
->help_file
= NULL
;
8155 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8156 if (_ptr_monitor_name
) {
8157 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8159 r
->monitor_name
= NULL
;
8161 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8162 if (_ptr_default_datatype
) {
8163 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8165 r
->default_datatype
= NULL
;
8167 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8168 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8169 if (_ptr_dependent_files
) {
8170 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8172 r
->dependent_files
= NULL
;
8174 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
8175 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
8176 if (_ptr_previous_names
) {
8177 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
8179 r
->previous_names
= NULL
;
8182 if (ndr_flags
& NDR_BUFFERS
) {
8183 if (r
->driver_name
) {
8184 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8185 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8186 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8187 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8188 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8189 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
8191 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8192 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8193 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8195 if (r
->architecture
) {
8196 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8197 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8198 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8199 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8200 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8201 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
8203 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8204 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8205 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8207 if (r
->driver_path
) {
8208 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8209 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8210 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8211 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8212 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8213 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
8215 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8216 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8217 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8220 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8221 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8222 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8223 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8224 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8225 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
8227 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8228 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8229 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8231 if (r
->config_file
) {
8232 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8233 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8234 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8235 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8236 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8237 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
8239 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8240 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8241 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8244 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8245 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8246 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8247 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8248 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8249 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->help_file
), ndr_get_array_length(ndr
, &r
->help_file
));
8251 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8252 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8253 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8255 if (r
->monitor_name
) {
8256 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8257 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8258 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8259 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8260 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
8261 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->monitor_name
), ndr_get_array_length(ndr
, &r
->monitor_name
));
8263 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
8264 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
8265 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8267 if (r
->default_datatype
) {
8268 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8269 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8270 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8271 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8272 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
8273 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->default_datatype
), ndr_get_array_length(ndr
, &r
->default_datatype
));
8275 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
8276 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
8277 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8279 if (r
->dependent_files
) {
8280 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8281 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8282 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8283 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8285 if (r
->previous_names
) {
8286 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8287 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
8288 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8289 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
8292 return NDR_ERR_SUCCESS
;
8295 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo4
*r
)
8297 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo4");
8299 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8300 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8302 if (r
->driver_name
) {
8303 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8306 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8308 if (r
->architecture
) {
8309 ndr_print_string(ndr
, "architecture", r
->architecture
);
8312 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8314 if (r
->driver_path
) {
8315 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8318 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8321 ndr_print_string(ndr
, "data_file", r
->data_file
);
8324 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8326 if (r
->config_file
) {
8327 ndr_print_string(ndr
, "config_file", r
->config_file
);
8330 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8333 ndr_print_string(ndr
, "help_file", r
->help_file
);
8336 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8338 if (r
->monitor_name
) {
8339 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8342 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8344 if (r
->default_datatype
) {
8345 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8348 ndr_print_uint32(ndr
, "_ndr_size_dependent_files", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_dependent_files
);
8349 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8351 if (r
->dependent_files
) {
8352 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8355 ndr_print_uint32(ndr
, "_ndr_size_previous_names", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_previous_names
);
8356 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
8358 if (r
->previous_names
) {
8359 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
8365 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo6
*r
)
8367 if (ndr_flags
& NDR_SCALARS
) {
8368 NDR_CHECK(ndr_push_align(ndr
, 8));
8369 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8370 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8371 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8372 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8373 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8374 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8375 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8376 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8377 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8378 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8379 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8380 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8381 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8382 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
8383 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
8384 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
8385 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
8386 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
8387 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
8389 if (ndr_flags
& NDR_BUFFERS
) {
8390 if (r
->driver_name
) {
8391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8392 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8394 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8396 if (r
->architecture
) {
8397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8399 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8400 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8402 if (r
->driver_path
) {
8403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8404 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8405 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8406 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8409 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8411 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8412 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8414 if (r
->config_file
) {
8415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8416 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8417 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8418 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8421 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8422 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8423 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8424 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8426 if (r
->monitor_name
) {
8427 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8428 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8429 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8430 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8432 if (r
->default_datatype
) {
8433 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8436 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8438 if (r
->dependent_files
) {
8439 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8441 if (r
->previous_names
) {
8442 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8444 if (r
->manufacturer_name
) {
8445 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8447 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8448 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8450 if (r
->manufacturer_url
) {
8451 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8453 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8454 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8456 if (r
->hardware_id
) {
8457 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8459 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8460 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8464 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8465 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8466 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8469 return NDR_ERR_SUCCESS
;
8472 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo6
*r
)
8474 uint32_t _ptr_driver_name
;
8475 TALLOC_CTX
*_mem_save_driver_name_0
;
8476 uint32_t _ptr_architecture
;
8477 TALLOC_CTX
*_mem_save_architecture_0
;
8478 uint32_t _ptr_driver_path
;
8479 TALLOC_CTX
*_mem_save_driver_path_0
;
8480 uint32_t _ptr_data_file
;
8481 TALLOC_CTX
*_mem_save_data_file_0
;
8482 uint32_t _ptr_config_file
;
8483 TALLOC_CTX
*_mem_save_config_file_0
;
8484 uint32_t _ptr_help_file
;
8485 TALLOC_CTX
*_mem_save_help_file_0
;
8486 uint32_t _ptr_monitor_name
;
8487 TALLOC_CTX
*_mem_save_monitor_name_0
;
8488 uint32_t _ptr_default_datatype
;
8489 TALLOC_CTX
*_mem_save_default_datatype_0
;
8490 uint32_t _ptr_dependent_files
;
8491 TALLOC_CTX
*_mem_save_dependent_files_0
;
8492 uint32_t _ptr_previous_names
;
8493 TALLOC_CTX
*_mem_save_previous_names_0
;
8494 uint32_t _ptr_manufacturer_name
;
8495 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
8496 uint32_t _ptr_manufacturer_url
;
8497 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
8498 uint32_t _ptr_hardware_id
;
8499 TALLOC_CTX
*_mem_save_hardware_id_0
;
8500 uint32_t _ptr_provider
;
8501 TALLOC_CTX
*_mem_save_provider_0
;
8502 if (ndr_flags
& NDR_SCALARS
) {
8503 NDR_CHECK(ndr_pull_align(ndr
, 8));
8504 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8505 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8506 if (_ptr_driver_name
) {
8507 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8509 r
->driver_name
= NULL
;
8511 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8512 if (_ptr_architecture
) {
8513 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8515 r
->architecture
= NULL
;
8517 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8518 if (_ptr_driver_path
) {
8519 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8521 r
->driver_path
= NULL
;
8523 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8524 if (_ptr_data_file
) {
8525 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8527 r
->data_file
= NULL
;
8529 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8530 if (_ptr_config_file
) {
8531 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8533 r
->config_file
= NULL
;
8535 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8536 if (_ptr_help_file
) {
8537 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8539 r
->help_file
= NULL
;
8541 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8542 if (_ptr_monitor_name
) {
8543 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8545 r
->monitor_name
= NULL
;
8547 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8548 if (_ptr_default_datatype
) {
8549 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8551 r
->default_datatype
= NULL
;
8553 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8554 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8555 if (_ptr_dependent_files
) {
8556 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8558 r
->dependent_files
= NULL
;
8560 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
8561 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
8562 if (_ptr_previous_names
) {
8563 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
8565 r
->previous_names
= NULL
;
8567 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
8568 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
8569 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
8570 if (_ptr_manufacturer_name
) {
8571 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
8573 r
->manufacturer_name
= NULL
;
8575 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
8576 if (_ptr_manufacturer_url
) {
8577 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
8579 r
->manufacturer_url
= NULL
;
8581 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
8582 if (_ptr_hardware_id
) {
8583 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
8585 r
->hardware_id
= NULL
;
8587 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
8588 if (_ptr_provider
) {
8589 NDR_PULL_ALLOC(ndr
, r
->provider
);
8594 if (ndr_flags
& NDR_BUFFERS
) {
8595 if (r
->driver_name
) {
8596 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8597 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8598 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8599 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8600 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8601 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
8603 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8604 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8605 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8607 if (r
->architecture
) {
8608 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8609 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8610 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8611 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8612 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8613 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
8615 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8616 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8617 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8619 if (r
->driver_path
) {
8620 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8621 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8622 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8623 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8624 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8625 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
8627 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8628 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8629 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8632 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8633 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8634 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8635 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8636 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8637 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
8639 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8640 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8641 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8643 if (r
->config_file
) {
8644 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8645 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8646 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8647 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8648 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8649 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
8651 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8652 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8653 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8656 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8657 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8658 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8659 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8660 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8661 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->help_file
), ndr_get_array_length(ndr
, &r
->help_file
));
8663 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8664 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8665 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8667 if (r
->monitor_name
) {
8668 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8669 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8670 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8671 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8672 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
8673 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->monitor_name
), ndr_get_array_length(ndr
, &r
->monitor_name
));
8675 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
8676 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
8677 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8679 if (r
->default_datatype
) {
8680 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8681 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8682 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8683 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8684 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
8685 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->default_datatype
), ndr_get_array_length(ndr
, &r
->default_datatype
));
8687 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
8688 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
8689 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8691 if (r
->dependent_files
) {
8692 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8693 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8694 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8697 if (r
->previous_names
) {
8698 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8699 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
8700 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8701 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
8703 if (r
->manufacturer_name
) {
8704 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8705 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
8706 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
8707 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
8708 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
8709 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->manufacturer_name
), ndr_get_array_length(ndr
, &r
->manufacturer_name
));
8711 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
8712 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
8713 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
8715 if (r
->manufacturer_url
) {
8716 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8717 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
8718 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
8719 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
8720 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
8721 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->manufacturer_url
), ndr_get_array_length(ndr
, &r
->manufacturer_url
));
8723 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
8724 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
8725 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
8727 if (r
->hardware_id
) {
8728 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8729 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
8730 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
8731 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
8732 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
8733 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->hardware_id
), ndr_get_array_length(ndr
, &r
->hardware_id
));
8735 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
8736 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
8737 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
8740 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8741 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
8742 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
8743 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
8744 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
8745 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->provider
), ndr_get_array_length(ndr
, &r
->provider
));
8747 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
8748 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
8749 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
8752 return NDR_ERR_SUCCESS
;
8755 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo6
*r
)
8757 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo6");
8759 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8760 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8762 if (r
->driver_name
) {
8763 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8766 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8768 if (r
->architecture
) {
8769 ndr_print_string(ndr
, "architecture", r
->architecture
);
8772 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8774 if (r
->driver_path
) {
8775 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8778 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8781 ndr_print_string(ndr
, "data_file", r
->data_file
);
8784 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8786 if (r
->config_file
) {
8787 ndr_print_string(ndr
, "config_file", r
->config_file
);
8790 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8793 ndr_print_string(ndr
, "help_file", r
->help_file
);
8796 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8798 if (r
->monitor_name
) {
8799 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8802 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8804 if (r
->default_datatype
) {
8805 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8808 ndr_print_uint32(ndr
, "_ndr_size_dependent_files", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_dependent_files
);
8809 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8811 if (r
->dependent_files
) {
8812 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8815 ndr_print_uint32(ndr
, "_ndr_size_previous_names", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_previous_names
);
8816 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
8818 if (r
->previous_names
) {
8819 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
8822 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
8823 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
8824 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
8826 if (r
->manufacturer_name
) {
8827 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
8830 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
8832 if (r
->manufacturer_url
) {
8833 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
8836 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
8838 if (r
->hardware_id
) {
8839 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
8842 ndr_print_ptr(ndr
, "provider", r
->provider
);
8845 ndr_print_string(ndr
, "provider", r
->provider
);
8851 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo8
*r
)
8853 if (ndr_flags
& NDR_SCALARS
) {
8854 NDR_CHECK(ndr_push_align(ndr
, 8));
8855 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8856 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8857 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8858 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8859 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8860 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8861 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8862 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8863 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8864 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8865 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8866 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8867 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8868 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
8869 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
8870 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
8871 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
8872 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
8873 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
8874 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
8875 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->vendor_setup
));
8876 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->color_profiles
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8877 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->color_profiles
));
8878 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->inf_path
));
8879 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
8880 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->core_driver_dependencies
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8881 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->core_driver_dependencies
));
8882 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
8883 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
8885 if (ndr_flags
& NDR_BUFFERS
) {
8886 if (r
->driver_name
) {
8887 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8888 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8889 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8890 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8892 if (r
->architecture
) {
8893 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8894 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8895 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8896 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8898 if (r
->driver_path
) {
8899 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8900 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8901 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8902 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8905 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8906 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8907 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8908 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8910 if (r
->config_file
) {
8911 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8912 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8913 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8914 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8917 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8918 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8919 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8920 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8922 if (r
->monitor_name
) {
8923 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8924 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8925 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8926 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8928 if (r
->default_datatype
) {
8929 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8930 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8931 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8932 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8934 if (r
->dependent_files
) {
8935 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8937 if (r
->previous_names
) {
8938 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8940 if (r
->manufacturer_name
) {
8941 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8942 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8943 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8944 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8946 if (r
->manufacturer_url
) {
8947 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8948 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8949 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8950 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8952 if (r
->hardware_id
) {
8953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8954 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8955 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8956 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8960 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8962 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8964 if (r
->print_processor
) {
8965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
8966 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8967 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
8968 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8970 if (r
->vendor_setup
) {
8971 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
8972 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8973 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
8974 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->vendor_setup
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8976 if (r
->color_profiles
) {
8977 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
8980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
8981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8982 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
8983 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->inf_path
, ndr_charset_length(r
->inf_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8985 if (r
->core_driver_dependencies
) {
8986 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
8989 return NDR_ERR_SUCCESS
;
8992 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo8
*r
)
8994 uint32_t _ptr_driver_name
;
8995 TALLOC_CTX
*_mem_save_driver_name_0
;
8996 uint32_t _ptr_architecture
;
8997 TALLOC_CTX
*_mem_save_architecture_0
;
8998 uint32_t _ptr_driver_path
;
8999 TALLOC_CTX
*_mem_save_driver_path_0
;
9000 uint32_t _ptr_data_file
;
9001 TALLOC_CTX
*_mem_save_data_file_0
;
9002 uint32_t _ptr_config_file
;
9003 TALLOC_CTX
*_mem_save_config_file_0
;
9004 uint32_t _ptr_help_file
;
9005 TALLOC_CTX
*_mem_save_help_file_0
;
9006 uint32_t _ptr_monitor_name
;
9007 TALLOC_CTX
*_mem_save_monitor_name_0
;
9008 uint32_t _ptr_default_datatype
;
9009 TALLOC_CTX
*_mem_save_default_datatype_0
;
9010 uint32_t _ptr_dependent_files
;
9011 TALLOC_CTX
*_mem_save_dependent_files_0
;
9012 uint32_t _ptr_previous_names
;
9013 TALLOC_CTX
*_mem_save_previous_names_0
;
9014 uint32_t _ptr_manufacturer_name
;
9015 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
9016 uint32_t _ptr_manufacturer_url
;
9017 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
9018 uint32_t _ptr_hardware_id
;
9019 TALLOC_CTX
*_mem_save_hardware_id_0
;
9020 uint32_t _ptr_provider
;
9021 TALLOC_CTX
*_mem_save_provider_0
;
9022 uint32_t _ptr_print_processor
;
9023 TALLOC_CTX
*_mem_save_print_processor_0
;
9024 uint32_t _ptr_vendor_setup
;
9025 TALLOC_CTX
*_mem_save_vendor_setup_0
;
9026 uint32_t _ptr_color_profiles
;
9027 TALLOC_CTX
*_mem_save_color_profiles_0
;
9028 uint32_t _ptr_inf_path
;
9029 TALLOC_CTX
*_mem_save_inf_path_0
;
9030 uint32_t _ptr_core_driver_dependencies
;
9031 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
9032 if (ndr_flags
& NDR_SCALARS
) {
9033 NDR_CHECK(ndr_pull_align(ndr
, 8));
9034 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9035 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9036 if (_ptr_driver_name
) {
9037 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9039 r
->driver_name
= NULL
;
9041 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9042 if (_ptr_architecture
) {
9043 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9045 r
->architecture
= NULL
;
9047 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9048 if (_ptr_driver_path
) {
9049 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9051 r
->driver_path
= NULL
;
9053 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9054 if (_ptr_data_file
) {
9055 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9057 r
->data_file
= NULL
;
9059 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9060 if (_ptr_config_file
) {
9061 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9063 r
->config_file
= NULL
;
9065 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9066 if (_ptr_help_file
) {
9067 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9069 r
->help_file
= NULL
;
9071 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9072 if (_ptr_monitor_name
) {
9073 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9075 r
->monitor_name
= NULL
;
9077 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9078 if (_ptr_default_datatype
) {
9079 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9081 r
->default_datatype
= NULL
;
9083 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9084 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9085 if (_ptr_dependent_files
) {
9086 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9088 r
->dependent_files
= NULL
;
9090 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9091 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9092 if (_ptr_previous_names
) {
9093 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9095 r
->previous_names
= NULL
;
9097 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
9098 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
9099 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
9100 if (_ptr_manufacturer_name
) {
9101 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
9103 r
->manufacturer_name
= NULL
;
9105 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
9106 if (_ptr_manufacturer_url
) {
9107 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
9109 r
->manufacturer_url
= NULL
;
9111 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
9112 if (_ptr_hardware_id
) {
9113 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
9115 r
->hardware_id
= NULL
;
9117 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
9118 if (_ptr_provider
) {
9119 NDR_PULL_ALLOC(ndr
, r
->provider
);
9123 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
9124 if (_ptr_print_processor
) {
9125 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
9127 r
->print_processor
= NULL
;
9129 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
9130 if (_ptr_vendor_setup
) {
9131 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
9133 r
->vendor_setup
= NULL
;
9135 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_color_profiles
));
9136 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
9137 if (_ptr_color_profiles
) {
9138 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
9140 r
->color_profiles
= NULL
;
9142 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
9143 if (_ptr_inf_path
) {
9144 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
9148 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
9149 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_core_driver_dependencies
));
9150 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
9151 if (_ptr_core_driver_dependencies
) {
9152 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
9154 r
->core_driver_dependencies
= NULL
;
9156 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
9157 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
9159 if (ndr_flags
& NDR_BUFFERS
) {
9160 if (r
->driver_name
) {
9161 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9162 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9163 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9164 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9165 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
9166 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
9168 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
9169 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
9170 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9172 if (r
->architecture
) {
9173 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9174 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9175 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9176 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9177 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
9178 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
9180 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
9181 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
9182 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9184 if (r
->driver_path
) {
9185 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9186 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9187 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9188 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9189 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
9190 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
9192 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
9193 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
9194 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9197 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9198 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9199 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9200 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9201 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
9202 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
9204 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
9205 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
9206 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9208 if (r
->config_file
) {
9209 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9210 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9211 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9212 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9213 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
9214 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
9216 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
9217 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
9218 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9221 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9222 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9223 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9224 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9225 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
9226 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->help_file
), ndr_get_array_length(ndr
, &r
->help_file
));
9228 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
9229 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
9230 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9232 if (r
->monitor_name
) {
9233 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9234 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9235 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9236 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9237 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
9238 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->monitor_name
), ndr_get_array_length(ndr
, &r
->monitor_name
));
9240 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
9241 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
9242 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9244 if (r
->default_datatype
) {
9245 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9246 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9247 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9248 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9249 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9250 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->default_datatype
), ndr_get_array_length(ndr
, &r
->default_datatype
));
9252 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9253 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9254 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9256 if (r
->dependent_files
) {
9257 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9258 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9259 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9260 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9262 if (r
->previous_names
) {
9263 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9264 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9265 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9266 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9268 if (r
->manufacturer_name
) {
9269 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9270 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
9271 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
9272 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
9273 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
9274 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->manufacturer_name
), ndr_get_array_length(ndr
, &r
->manufacturer_name
));
9276 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
9277 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
9278 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
9280 if (r
->manufacturer_url
) {
9281 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9282 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
9283 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
9284 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
9285 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
9286 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->manufacturer_url
), ndr_get_array_length(ndr
, &r
->manufacturer_url
));
9288 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
9289 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
9290 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
9292 if (r
->hardware_id
) {
9293 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9294 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
9295 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
9296 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
9297 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
9298 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->hardware_id
), ndr_get_array_length(ndr
, &r
->hardware_id
));
9300 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
9301 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
9302 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
9305 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9306 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
9307 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
9308 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
9309 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
9310 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->provider
), ndr_get_array_length(ndr
, &r
->provider
));
9312 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
9313 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
9314 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
9316 if (r
->print_processor
) {
9317 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9318 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
9319 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
9320 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
9321 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
9322 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->print_processor
), ndr_get_array_length(ndr
, &r
->print_processor
));
9324 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
9325 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
9326 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
9328 if (r
->vendor_setup
) {
9329 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9330 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
9331 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->vendor_setup
));
9332 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->vendor_setup
));
9333 if (ndr_get_array_length(ndr
, &r
->vendor_setup
) > ndr_get_array_size(ndr
, &r
->vendor_setup
)) {
9334 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->vendor_setup
), ndr_get_array_length(ndr
, &r
->vendor_setup
));
9336 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t)));
9337 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->vendor_setup
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t), CH_UTF16
));
9338 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
9340 if (r
->color_profiles
) {
9341 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9342 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
9343 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
9344 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
9347 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9348 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
9349 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->inf_path
));
9350 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->inf_path
));
9351 if (ndr_get_array_length(ndr
, &r
->inf_path
) > ndr_get_array_size(ndr
, &r
->inf_path
)) {
9352 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->inf_path
), ndr_get_array_length(ndr
, &r
->inf_path
));
9354 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t)));
9355 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->inf_path
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t), CH_UTF16
));
9356 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
9358 if (r
->core_driver_dependencies
) {
9359 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9360 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
9361 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
9362 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
9365 return NDR_ERR_SUCCESS
;
9368 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo8
*r
)
9370 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo8");
9372 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9373 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9375 if (r
->driver_name
) {
9376 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9379 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9381 if (r
->architecture
) {
9382 ndr_print_string(ndr
, "architecture", r
->architecture
);
9385 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9387 if (r
->driver_path
) {
9388 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9391 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9394 ndr_print_string(ndr
, "data_file", r
->data_file
);
9397 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9399 if (r
->config_file
) {
9400 ndr_print_string(ndr
, "config_file", r
->config_file
);
9403 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9406 ndr_print_string(ndr
, "help_file", r
->help_file
);
9409 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9411 if (r
->monitor_name
) {
9412 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9415 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9417 if (r
->default_datatype
) {
9418 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9421 ndr_print_uint32(ndr
, "_ndr_size_dependent_files", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_dependent_files
);
9422 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9424 if (r
->dependent_files
) {
9425 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9428 ndr_print_uint32(ndr
, "_ndr_size_previous_names", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_previous_names
);
9429 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9431 if (r
->previous_names
) {
9432 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
9435 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
9436 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
9437 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
9439 if (r
->manufacturer_name
) {
9440 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
9443 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
9445 if (r
->manufacturer_url
) {
9446 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
9449 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
9451 if (r
->hardware_id
) {
9452 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
9455 ndr_print_ptr(ndr
, "provider", r
->provider
);
9458 ndr_print_string(ndr
, "provider", r
->provider
);
9461 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
9463 if (r
->print_processor
) {
9464 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
9467 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
9469 if (r
->vendor_setup
) {
9470 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
9473 ndr_print_uint32(ndr
, "_ndr_size_color_profiles", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->color_profiles
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_color_profiles
);
9474 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
9476 if (r
->color_profiles
) {
9477 ndr_print_spoolss_StringArray(ndr
, "color_profiles", r
->color_profiles
);
9480 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
9483 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
9486 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
9487 ndr_print_uint32(ndr
, "_ndr_size_core_driver_dependencies", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->core_driver_dependencies
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_core_driver_dependencies
);
9488 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
9490 if (r
->core_driver_dependencies
) {
9491 ndr_print_spoolss_StringArray(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
9494 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
9495 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
9499 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddDriverInfo
*r
)
9501 if (ndr_flags
& NDR_SCALARS
) {
9502 int level
= ndr_push_get_switch_value(ndr
, r
);
9503 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
9506 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
9510 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
9514 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
9518 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
9522 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
9526 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
9530 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9533 if (ndr_flags
& NDR_BUFFERS
) {
9534 int level
= ndr_push_get_switch_value(ndr
, r
);
9538 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
9544 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
9550 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
9556 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
9562 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
9568 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
9573 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9576 return NDR_ERR_SUCCESS
;
9579 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddDriverInfo
*r
)
9583 TALLOC_CTX
*_mem_save_info1_0
;
9584 TALLOC_CTX
*_mem_save_info2_0
;
9585 TALLOC_CTX
*_mem_save_info3_0
;
9586 TALLOC_CTX
*_mem_save_info4_0
;
9587 TALLOC_CTX
*_mem_save_info6_0
;
9588 TALLOC_CTX
*_mem_save_info8_0
;
9589 level
= ndr_pull_get_switch_value(ndr
, r
);
9590 if (ndr_flags
& NDR_SCALARS
) {
9591 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
9592 if (_level
!= level
) {
9593 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
9597 uint32_t _ptr_info1
;
9598 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
9600 NDR_PULL_ALLOC(ndr
, r
->info1
);
9607 uint32_t _ptr_info2
;
9608 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
9610 NDR_PULL_ALLOC(ndr
, r
->info2
);
9617 uint32_t _ptr_info3
;
9618 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
9620 NDR_PULL_ALLOC(ndr
, r
->info3
);
9627 uint32_t _ptr_info4
;
9628 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
9630 NDR_PULL_ALLOC(ndr
, r
->info4
);
9637 uint32_t _ptr_info6
;
9638 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
9640 NDR_PULL_ALLOC(ndr
, r
->info6
);
9647 uint32_t _ptr_info8
;
9648 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
9650 NDR_PULL_ALLOC(ndr
, r
->info8
);
9657 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9660 if (ndr_flags
& NDR_BUFFERS
) {
9664 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9665 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
9666 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
9667 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
9673 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9674 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
9675 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
9676 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
9682 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9683 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
9684 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
9685 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
9691 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9692 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
9693 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
9694 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
9700 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9701 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
9702 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
9703 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
9709 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9710 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
9711 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
9712 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
9717 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9720 return NDR_ERR_SUCCESS
;
9723 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddDriverInfo
*r
)
9726 level
= ndr_print_get_switch_value(ndr
, r
);
9727 ndr_print_union(ndr
, name
, level
, "spoolss_AddDriverInfo");
9730 ndr_print_ptr(ndr
, "info1", r
->info1
);
9733 ndr_print_spoolss_AddDriverInfo1(ndr
, "info1", r
->info1
);
9739 ndr_print_ptr(ndr
, "info2", r
->info2
);
9742 ndr_print_spoolss_AddDriverInfo2(ndr
, "info2", r
->info2
);
9748 ndr_print_ptr(ndr
, "info3", r
->info3
);
9751 ndr_print_spoolss_AddDriverInfo3(ndr
, "info3", r
->info3
);
9757 ndr_print_ptr(ndr
, "info4", r
->info4
);
9760 ndr_print_spoolss_AddDriverInfo4(ndr
, "info4", r
->info4
);
9766 ndr_print_ptr(ndr
, "info6", r
->info6
);
9769 ndr_print_spoolss_AddDriverInfo6(ndr
, "info6", r
->info6
);
9775 ndr_print_ptr(ndr
, "info8", r
->info8
);
9778 ndr_print_spoolss_AddDriverInfo8(ndr
, "info8", r
->info8
);
9784 ndr_print_bad_level(ndr
, name
, level
);
9788 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfoCtr
*r
)
9790 if (ndr_flags
& NDR_SCALARS
) {
9791 NDR_CHECK(ndr_push_align(ndr
, 4));
9792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
9793 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
9794 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
9796 if (ndr_flags
& NDR_BUFFERS
) {
9797 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
9799 return NDR_ERR_SUCCESS
;
9802 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfoCtr
*r
)
9804 if (ndr_flags
& NDR_SCALARS
) {
9805 NDR_CHECK(ndr_pull_align(ndr
, 4));
9806 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
9807 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
9808 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
9810 if (ndr_flags
& NDR_BUFFERS
) {
9811 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
9813 return NDR_ERR_SUCCESS
;
9816 _PUBLIC_
void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfoCtr
*r
)
9818 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfoCtr");
9820 ndr_print_uint32(ndr
, "level", r
->level
);
9821 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
9822 ndr_print_spoolss_AddDriverInfo(ndr
, "info", &r
->info
);
9826 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo1
*r
)
9828 if (ndr_flags
& NDR_SCALARS
) {
9829 NDR_CHECK(ndr_push_align(ndr
, 4));
9831 uint32_t _flags_save_string
= ndr
->flags
;
9832 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9833 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
9834 ndr
->flags
= _flags_save_string
;
9837 if (ndr_flags
& NDR_BUFFERS
) {
9839 uint32_t _flags_save_string
= ndr
->flags
;
9840 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9841 if (r
->driver_name
) {
9842 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
9843 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
9845 ndr
->flags
= _flags_save_string
;
9848 return NDR_ERR_SUCCESS
;
9851 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo1
*r
)
9853 uint32_t _ptr_driver_name
;
9854 TALLOC_CTX
*_mem_save_driver_name_0
;
9855 if (ndr_flags
& NDR_SCALARS
) {
9856 NDR_CHECK(ndr_pull_align(ndr
, 4));
9858 uint32_t _flags_save_string
= ndr
->flags
;
9859 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9860 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9861 if (_ptr_driver_name
) {
9862 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9863 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
9865 r
->driver_name
= NULL
;
9867 ndr
->flags
= _flags_save_string
;
9870 if (ndr_flags
& NDR_BUFFERS
) {
9872 uint32_t _flags_save_string
= ndr
->flags
;
9873 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9874 if (r
->driver_name
) {
9875 uint32_t _relative_save_offset
;
9876 _relative_save_offset
= ndr
->offset
;
9877 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
9878 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9879 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9880 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
9881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9882 ndr
->offset
= _relative_save_offset
;
9884 ndr
->flags
= _flags_save_string
;
9887 return NDR_ERR_SUCCESS
;
9890 _PUBLIC_
void ndr_print_spoolss_DriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo1
*r
)
9892 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo1");
9894 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9896 if (r
->driver_name
) {
9897 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9903 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
9905 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo1
, ic
);
9908 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo2
*r
)
9910 if (ndr_flags
& NDR_SCALARS
) {
9911 NDR_CHECK(ndr_push_align(ndr
, 4));
9912 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9914 uint32_t _flags_save_string
= ndr
->flags
;
9915 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9916 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
9917 ndr
->flags
= _flags_save_string
;
9920 uint32_t _flags_save_string
= ndr
->flags
;
9921 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9922 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
9923 ndr
->flags
= _flags_save_string
;
9926 uint32_t _flags_save_string
= ndr
->flags
;
9927 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9928 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
9929 ndr
->flags
= _flags_save_string
;
9932 uint32_t _flags_save_string
= ndr
->flags
;
9933 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9934 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
9935 ndr
->flags
= _flags_save_string
;
9938 uint32_t _flags_save_string
= ndr
->flags
;
9939 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9940 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
9941 ndr
->flags
= _flags_save_string
;
9944 if (ndr_flags
& NDR_BUFFERS
) {
9946 uint32_t _flags_save_string
= ndr
->flags
;
9947 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9948 if (r
->driver_name
) {
9949 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
9950 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
9952 ndr
->flags
= _flags_save_string
;
9955 uint32_t _flags_save_string
= ndr
->flags
;
9956 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9957 if (r
->architecture
) {
9958 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
9959 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
9961 ndr
->flags
= _flags_save_string
;
9964 uint32_t _flags_save_string
= ndr
->flags
;
9965 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9966 if (r
->driver_path
) {
9967 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
9968 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
9970 ndr
->flags
= _flags_save_string
;
9973 uint32_t _flags_save_string
= ndr
->flags
;
9974 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9976 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
9977 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
9979 ndr
->flags
= _flags_save_string
;
9982 uint32_t _flags_save_string
= ndr
->flags
;
9983 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9984 if (r
->config_file
) {
9985 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
9986 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
9988 ndr
->flags
= _flags_save_string
;
9991 return NDR_ERR_SUCCESS
;
9994 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo2
*r
)
9996 uint32_t _ptr_driver_name
;
9997 TALLOC_CTX
*_mem_save_driver_name_0
;
9998 uint32_t _ptr_architecture
;
9999 TALLOC_CTX
*_mem_save_architecture_0
;
10000 uint32_t _ptr_driver_path
;
10001 TALLOC_CTX
*_mem_save_driver_path_0
;
10002 uint32_t _ptr_data_file
;
10003 TALLOC_CTX
*_mem_save_data_file_0
;
10004 uint32_t _ptr_config_file
;
10005 TALLOC_CTX
*_mem_save_config_file_0
;
10006 if (ndr_flags
& NDR_SCALARS
) {
10007 NDR_CHECK(ndr_pull_align(ndr
, 4));
10008 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10010 uint32_t _flags_save_string
= ndr
->flags
;
10011 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10012 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10013 if (_ptr_driver_name
) {
10014 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10015 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10017 r
->driver_name
= NULL
;
10019 ndr
->flags
= _flags_save_string
;
10022 uint32_t _flags_save_string
= ndr
->flags
;
10023 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10024 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10025 if (_ptr_architecture
) {
10026 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10027 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10029 r
->architecture
= NULL
;
10031 ndr
->flags
= _flags_save_string
;
10034 uint32_t _flags_save_string
= ndr
->flags
;
10035 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10036 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10037 if (_ptr_driver_path
) {
10038 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10039 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10041 r
->driver_path
= NULL
;
10043 ndr
->flags
= _flags_save_string
;
10046 uint32_t _flags_save_string
= ndr
->flags
;
10047 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10048 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10049 if (_ptr_data_file
) {
10050 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10051 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10053 r
->data_file
= NULL
;
10055 ndr
->flags
= _flags_save_string
;
10058 uint32_t _flags_save_string
= ndr
->flags
;
10059 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10060 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10061 if (_ptr_config_file
) {
10062 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10063 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10065 r
->config_file
= NULL
;
10067 ndr
->flags
= _flags_save_string
;
10070 if (ndr_flags
& NDR_BUFFERS
) {
10072 uint32_t _flags_save_string
= ndr
->flags
;
10073 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10074 if (r
->driver_name
) {
10075 uint32_t _relative_save_offset
;
10076 _relative_save_offset
= ndr
->offset
;
10077 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10078 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10079 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10080 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10082 ndr
->offset
= _relative_save_offset
;
10084 ndr
->flags
= _flags_save_string
;
10087 uint32_t _flags_save_string
= ndr
->flags
;
10088 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10089 if (r
->architecture
) {
10090 uint32_t _relative_save_offset
;
10091 _relative_save_offset
= ndr
->offset
;
10092 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10093 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10094 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10095 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10096 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10097 ndr
->offset
= _relative_save_offset
;
10099 ndr
->flags
= _flags_save_string
;
10102 uint32_t _flags_save_string
= ndr
->flags
;
10103 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10104 if (r
->driver_path
) {
10105 uint32_t _relative_save_offset
;
10106 _relative_save_offset
= ndr
->offset
;
10107 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10108 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10109 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10110 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10111 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10112 ndr
->offset
= _relative_save_offset
;
10114 ndr
->flags
= _flags_save_string
;
10117 uint32_t _flags_save_string
= ndr
->flags
;
10118 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10119 if (r
->data_file
) {
10120 uint32_t _relative_save_offset
;
10121 _relative_save_offset
= ndr
->offset
;
10122 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
10123 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10124 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10125 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
10126 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10127 ndr
->offset
= _relative_save_offset
;
10129 ndr
->flags
= _flags_save_string
;
10132 uint32_t _flags_save_string
= ndr
->flags
;
10133 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10134 if (r
->config_file
) {
10135 uint32_t _relative_save_offset
;
10136 _relative_save_offset
= ndr
->offset
;
10137 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
10138 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10139 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10140 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
10141 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10142 ndr
->offset
= _relative_save_offset
;
10144 ndr
->flags
= _flags_save_string
;
10147 return NDR_ERR_SUCCESS
;
10150 _PUBLIC_
void ndr_print_spoolss_DriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo2
*r
)
10152 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo2");
10154 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10155 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10157 if (r
->driver_name
) {
10158 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10161 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10163 if (r
->architecture
) {
10164 ndr_print_string(ndr
, "architecture", r
->architecture
);
10167 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10169 if (r
->driver_path
) {
10170 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10173 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10175 if (r
->data_file
) {
10176 ndr_print_string(ndr
, "data_file", r
->data_file
);
10179 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10181 if (r
->config_file
) {
10182 ndr_print_string(ndr
, "config_file", r
->config_file
);
10188 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10190 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo2
, ic
);
10193 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo3
*r
)
10195 if (ndr_flags
& NDR_SCALARS
) {
10196 NDR_CHECK(ndr_push_align(ndr
, 4));
10197 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10199 uint32_t _flags_save_string
= ndr
->flags
;
10200 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10201 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10202 ndr
->flags
= _flags_save_string
;
10205 uint32_t _flags_save_string
= ndr
->flags
;
10206 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10207 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10208 ndr
->flags
= _flags_save_string
;
10211 uint32_t _flags_save_string
= ndr
->flags
;
10212 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10213 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10214 ndr
->flags
= _flags_save_string
;
10217 uint32_t _flags_save_string
= ndr
->flags
;
10218 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10219 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10220 ndr
->flags
= _flags_save_string
;
10223 uint32_t _flags_save_string
= ndr
->flags
;
10224 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10225 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10226 ndr
->flags
= _flags_save_string
;
10229 uint32_t _flags_save_string
= ndr
->flags
;
10230 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10231 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
10232 ndr
->flags
= _flags_save_string
;
10235 uint32_t _flags_save_string_array
= ndr
->flags
;
10236 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10237 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
10238 ndr
->flags
= _flags_save_string_array
;
10241 uint32_t _flags_save_string
= ndr
->flags
;
10242 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10243 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
10244 ndr
->flags
= _flags_save_string
;
10247 uint32_t _flags_save_string
= ndr
->flags
;
10248 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10249 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
10250 ndr
->flags
= _flags_save_string
;
10253 if (ndr_flags
& NDR_BUFFERS
) {
10255 uint32_t _flags_save_string
= ndr
->flags
;
10256 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10257 if (r
->driver_name
) {
10258 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10259 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10261 ndr
->flags
= _flags_save_string
;
10264 uint32_t _flags_save_string
= ndr
->flags
;
10265 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10266 if (r
->architecture
) {
10267 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
10268 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10270 ndr
->flags
= _flags_save_string
;
10273 uint32_t _flags_save_string
= ndr
->flags
;
10274 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10275 if (r
->driver_path
) {
10276 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10277 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10279 ndr
->flags
= _flags_save_string
;
10282 uint32_t _flags_save_string
= ndr
->flags
;
10283 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10284 if (r
->data_file
) {
10285 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10286 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10288 ndr
->flags
= _flags_save_string
;
10291 uint32_t _flags_save_string
= ndr
->flags
;
10292 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10293 if (r
->config_file
) {
10294 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10295 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10297 ndr
->flags
= _flags_save_string
;
10300 uint32_t _flags_save_string
= ndr
->flags
;
10301 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10302 if (r
->help_file
) {
10303 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
10304 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
10306 ndr
->flags
= _flags_save_string
;
10309 uint32_t _flags_save_string_array
= ndr
->flags
;
10310 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10311 if (r
->dependent_files
) {
10312 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
10313 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
10315 ndr
->flags
= _flags_save_string_array
;
10318 uint32_t _flags_save_string
= ndr
->flags
;
10319 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10320 if (r
->monitor_name
) {
10321 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
10322 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
10324 ndr
->flags
= _flags_save_string
;
10327 uint32_t _flags_save_string
= ndr
->flags
;
10328 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10329 if (r
->default_datatype
) {
10330 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
10331 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
10333 ndr
->flags
= _flags_save_string
;
10336 return NDR_ERR_SUCCESS
;
10339 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo3
*r
)
10341 uint32_t _ptr_driver_name
;
10342 TALLOC_CTX
*_mem_save_driver_name_0
;
10343 uint32_t _ptr_architecture
;
10344 TALLOC_CTX
*_mem_save_architecture_0
;
10345 uint32_t _ptr_driver_path
;
10346 TALLOC_CTX
*_mem_save_driver_path_0
;
10347 uint32_t _ptr_data_file
;
10348 TALLOC_CTX
*_mem_save_data_file_0
;
10349 uint32_t _ptr_config_file
;
10350 TALLOC_CTX
*_mem_save_config_file_0
;
10351 uint32_t _ptr_help_file
;
10352 TALLOC_CTX
*_mem_save_help_file_0
;
10353 uint32_t _ptr_dependent_files
;
10354 TALLOC_CTX
*_mem_save_dependent_files_0
;
10355 uint32_t _ptr_monitor_name
;
10356 TALLOC_CTX
*_mem_save_monitor_name_0
;
10357 uint32_t _ptr_default_datatype
;
10358 TALLOC_CTX
*_mem_save_default_datatype_0
;
10359 if (ndr_flags
& NDR_SCALARS
) {
10360 NDR_CHECK(ndr_pull_align(ndr
, 4));
10361 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10363 uint32_t _flags_save_string
= ndr
->flags
;
10364 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10365 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10366 if (_ptr_driver_name
) {
10367 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10368 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10370 r
->driver_name
= NULL
;
10372 ndr
->flags
= _flags_save_string
;
10375 uint32_t _flags_save_string
= ndr
->flags
;
10376 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10377 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10378 if (_ptr_architecture
) {
10379 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10380 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10382 r
->architecture
= NULL
;
10384 ndr
->flags
= _flags_save_string
;
10387 uint32_t _flags_save_string
= ndr
->flags
;
10388 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10389 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10390 if (_ptr_driver_path
) {
10391 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10392 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10394 r
->driver_path
= NULL
;
10396 ndr
->flags
= _flags_save_string
;
10399 uint32_t _flags_save_string
= ndr
->flags
;
10400 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10401 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10402 if (_ptr_data_file
) {
10403 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10404 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10406 r
->data_file
= NULL
;
10408 ndr
->flags
= _flags_save_string
;
10411 uint32_t _flags_save_string
= ndr
->flags
;
10412 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10413 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10414 if (_ptr_config_file
) {
10415 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10416 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10418 r
->config_file
= NULL
;
10420 ndr
->flags
= _flags_save_string
;
10423 uint32_t _flags_save_string
= ndr
->flags
;
10424 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10425 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
10426 if (_ptr_help_file
) {
10427 NDR_PULL_ALLOC(ndr
, r
->help_file
);
10428 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
10430 r
->help_file
= NULL
;
10432 ndr
->flags
= _flags_save_string
;
10435 uint32_t _flags_save_string_array
= ndr
->flags
;
10436 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10437 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
10438 if (_ptr_dependent_files
) {
10439 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
10440 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
10442 r
->dependent_files
= NULL
;
10444 ndr
->flags
= _flags_save_string_array
;
10447 uint32_t _flags_save_string
= ndr
->flags
;
10448 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10449 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
10450 if (_ptr_monitor_name
) {
10451 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
10452 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
10454 r
->monitor_name
= NULL
;
10456 ndr
->flags
= _flags_save_string
;
10459 uint32_t _flags_save_string
= ndr
->flags
;
10460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10461 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
10462 if (_ptr_default_datatype
) {
10463 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
10464 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
10466 r
->default_datatype
= NULL
;
10468 ndr
->flags
= _flags_save_string
;
10471 if (ndr_flags
& NDR_BUFFERS
) {
10473 uint32_t _flags_save_string
= ndr
->flags
;
10474 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10475 if (r
->driver_name
) {
10476 uint32_t _relative_save_offset
;
10477 _relative_save_offset
= ndr
->offset
;
10478 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10479 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10480 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10481 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10482 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10483 ndr
->offset
= _relative_save_offset
;
10485 ndr
->flags
= _flags_save_string
;
10488 uint32_t _flags_save_string
= ndr
->flags
;
10489 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10490 if (r
->architecture
) {
10491 uint32_t _relative_save_offset
;
10492 _relative_save_offset
= ndr
->offset
;
10493 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10494 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10495 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10496 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10497 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10498 ndr
->offset
= _relative_save_offset
;
10500 ndr
->flags
= _flags_save_string
;
10503 uint32_t _flags_save_string
= ndr
->flags
;
10504 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10505 if (r
->driver_path
) {
10506 uint32_t _relative_save_offset
;
10507 _relative_save_offset
= ndr
->offset
;
10508 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10509 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10510 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10511 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10512 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10513 ndr
->offset
= _relative_save_offset
;
10515 ndr
->flags
= _flags_save_string
;
10518 uint32_t _flags_save_string
= ndr
->flags
;
10519 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10520 if (r
->data_file
) {
10521 uint32_t _relative_save_offset
;
10522 _relative_save_offset
= ndr
->offset
;
10523 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
10524 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10525 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10526 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
10527 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10528 ndr
->offset
= _relative_save_offset
;
10530 ndr
->flags
= _flags_save_string
;
10533 uint32_t _flags_save_string
= ndr
->flags
;
10534 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10535 if (r
->config_file
) {
10536 uint32_t _relative_save_offset
;
10537 _relative_save_offset
= ndr
->offset
;
10538 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
10539 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10540 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10541 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
10542 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10543 ndr
->offset
= _relative_save_offset
;
10545 ndr
->flags
= _flags_save_string
;
10548 uint32_t _flags_save_string
= ndr
->flags
;
10549 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10550 if (r
->help_file
) {
10551 uint32_t _relative_save_offset
;
10552 _relative_save_offset
= ndr
->offset
;
10553 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
10554 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10555 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
10556 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
10557 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
10558 ndr
->offset
= _relative_save_offset
;
10560 ndr
->flags
= _flags_save_string
;
10563 uint32_t _flags_save_string_array
= ndr
->flags
;
10564 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10565 if (r
->dependent_files
) {
10566 uint32_t _relative_save_offset
;
10567 _relative_save_offset
= ndr
->offset
;
10568 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
10569 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10570 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
10571 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
10572 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
10573 ndr
->offset
= _relative_save_offset
;
10575 ndr
->flags
= _flags_save_string_array
;
10578 uint32_t _flags_save_string
= ndr
->flags
;
10579 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10580 if (r
->monitor_name
) {
10581 uint32_t _relative_save_offset
;
10582 _relative_save_offset
= ndr
->offset
;
10583 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
10584 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10585 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
10586 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
10587 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
10588 ndr
->offset
= _relative_save_offset
;
10590 ndr
->flags
= _flags_save_string
;
10593 uint32_t _flags_save_string
= ndr
->flags
;
10594 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10595 if (r
->default_datatype
) {
10596 uint32_t _relative_save_offset
;
10597 _relative_save_offset
= ndr
->offset
;
10598 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
10599 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10600 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
10601 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
10602 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
10603 ndr
->offset
= _relative_save_offset
;
10605 ndr
->flags
= _flags_save_string
;
10608 return NDR_ERR_SUCCESS
;
10611 _PUBLIC_
void ndr_print_spoolss_DriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo3
*r
)
10613 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo3");
10615 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10616 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10618 if (r
->driver_name
) {
10619 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10622 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10624 if (r
->architecture
) {
10625 ndr_print_string(ndr
, "architecture", r
->architecture
);
10628 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10630 if (r
->driver_path
) {
10631 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10634 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10636 if (r
->data_file
) {
10637 ndr_print_string(ndr
, "data_file", r
->data_file
);
10640 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10642 if (r
->config_file
) {
10643 ndr_print_string(ndr
, "config_file", r
->config_file
);
10646 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
10648 if (r
->help_file
) {
10649 ndr_print_string(ndr
, "help_file", r
->help_file
);
10652 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
10654 if (r
->dependent_files
) {
10655 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
10658 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
10660 if (r
->monitor_name
) {
10661 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
10664 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
10666 if (r
->default_datatype
) {
10667 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
10673 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10675 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo3
, ic
);
10678 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo4
*r
)
10680 if (ndr_flags
& NDR_SCALARS
) {
10681 NDR_CHECK(ndr_push_align(ndr
, 4));
10682 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10684 uint32_t _flags_save_string
= ndr
->flags
;
10685 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10686 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10687 ndr
->flags
= _flags_save_string
;
10690 uint32_t _flags_save_string
= ndr
->flags
;
10691 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10692 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10693 ndr
->flags
= _flags_save_string
;
10696 uint32_t _flags_save_string
= ndr
->flags
;
10697 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10698 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10699 ndr
->flags
= _flags_save_string
;
10702 uint32_t _flags_save_string
= ndr
->flags
;
10703 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10704 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10705 ndr
->flags
= _flags_save_string
;
10708 uint32_t _flags_save_string
= ndr
->flags
;
10709 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10710 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10711 ndr
->flags
= _flags_save_string
;
10714 uint32_t _flags_save_string
= ndr
->flags
;
10715 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10716 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
10717 ndr
->flags
= _flags_save_string
;
10720 uint32_t _flags_save_string_array
= ndr
->flags
;
10721 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10722 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
10723 ndr
->flags
= _flags_save_string_array
;
10726 uint32_t _flags_save_string
= ndr
->flags
;
10727 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10728 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
10729 ndr
->flags
= _flags_save_string
;
10732 uint32_t _flags_save_string
= ndr
->flags
;
10733 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10734 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
10735 ndr
->flags
= _flags_save_string
;
10738 uint32_t _flags_save_string_array
= ndr
->flags
;
10739 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10740 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
10741 ndr
->flags
= _flags_save_string_array
;
10744 if (ndr_flags
& NDR_BUFFERS
) {
10746 uint32_t _flags_save_string
= ndr
->flags
;
10747 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10748 if (r
->driver_name
) {
10749 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10750 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10752 ndr
->flags
= _flags_save_string
;
10755 uint32_t _flags_save_string
= ndr
->flags
;
10756 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10757 if (r
->architecture
) {
10758 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
10759 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10761 ndr
->flags
= _flags_save_string
;
10764 uint32_t _flags_save_string
= ndr
->flags
;
10765 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10766 if (r
->driver_path
) {
10767 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10768 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10770 ndr
->flags
= _flags_save_string
;
10773 uint32_t _flags_save_string
= ndr
->flags
;
10774 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10775 if (r
->data_file
) {
10776 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10777 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10779 ndr
->flags
= _flags_save_string
;
10782 uint32_t _flags_save_string
= ndr
->flags
;
10783 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10784 if (r
->config_file
) {
10785 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10786 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10788 ndr
->flags
= _flags_save_string
;
10791 uint32_t _flags_save_string
= ndr
->flags
;
10792 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10793 if (r
->help_file
) {
10794 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
10795 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
10797 ndr
->flags
= _flags_save_string
;
10800 uint32_t _flags_save_string_array
= ndr
->flags
;
10801 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10802 if (r
->dependent_files
) {
10803 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
10804 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
10806 ndr
->flags
= _flags_save_string_array
;
10809 uint32_t _flags_save_string
= ndr
->flags
;
10810 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10811 if (r
->monitor_name
) {
10812 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
10813 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
10815 ndr
->flags
= _flags_save_string
;
10818 uint32_t _flags_save_string
= ndr
->flags
;
10819 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10820 if (r
->default_datatype
) {
10821 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
10822 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
10824 ndr
->flags
= _flags_save_string
;
10827 uint32_t _flags_save_string_array
= ndr
->flags
;
10828 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10829 if (r
->previous_names
) {
10830 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
10831 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
10833 ndr
->flags
= _flags_save_string_array
;
10836 return NDR_ERR_SUCCESS
;
10839 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo4
*r
)
10841 uint32_t _ptr_driver_name
;
10842 TALLOC_CTX
*_mem_save_driver_name_0
;
10843 uint32_t _ptr_architecture
;
10844 TALLOC_CTX
*_mem_save_architecture_0
;
10845 uint32_t _ptr_driver_path
;
10846 TALLOC_CTX
*_mem_save_driver_path_0
;
10847 uint32_t _ptr_data_file
;
10848 TALLOC_CTX
*_mem_save_data_file_0
;
10849 uint32_t _ptr_config_file
;
10850 TALLOC_CTX
*_mem_save_config_file_0
;
10851 uint32_t _ptr_help_file
;
10852 TALLOC_CTX
*_mem_save_help_file_0
;
10853 uint32_t _ptr_dependent_files
;
10854 TALLOC_CTX
*_mem_save_dependent_files_0
;
10855 uint32_t _ptr_monitor_name
;
10856 TALLOC_CTX
*_mem_save_monitor_name_0
;
10857 uint32_t _ptr_default_datatype
;
10858 TALLOC_CTX
*_mem_save_default_datatype_0
;
10859 uint32_t _ptr_previous_names
;
10860 TALLOC_CTX
*_mem_save_previous_names_0
;
10861 if (ndr_flags
& NDR_SCALARS
) {
10862 NDR_CHECK(ndr_pull_align(ndr
, 4));
10863 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10865 uint32_t _flags_save_string
= ndr
->flags
;
10866 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10867 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10868 if (_ptr_driver_name
) {
10869 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10870 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10872 r
->driver_name
= NULL
;
10874 ndr
->flags
= _flags_save_string
;
10877 uint32_t _flags_save_string
= ndr
->flags
;
10878 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10879 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10880 if (_ptr_architecture
) {
10881 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10882 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10884 r
->architecture
= NULL
;
10886 ndr
->flags
= _flags_save_string
;
10889 uint32_t _flags_save_string
= ndr
->flags
;
10890 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10891 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10892 if (_ptr_driver_path
) {
10893 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10894 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10896 r
->driver_path
= NULL
;
10898 ndr
->flags
= _flags_save_string
;
10901 uint32_t _flags_save_string
= ndr
->flags
;
10902 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10903 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10904 if (_ptr_data_file
) {
10905 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10906 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10908 r
->data_file
= NULL
;
10910 ndr
->flags
= _flags_save_string
;
10913 uint32_t _flags_save_string
= ndr
->flags
;
10914 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10915 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10916 if (_ptr_config_file
) {
10917 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10918 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10920 r
->config_file
= NULL
;
10922 ndr
->flags
= _flags_save_string
;
10925 uint32_t _flags_save_string
= ndr
->flags
;
10926 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10927 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
10928 if (_ptr_help_file
) {
10929 NDR_PULL_ALLOC(ndr
, r
->help_file
);
10930 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
10932 r
->help_file
= NULL
;
10934 ndr
->flags
= _flags_save_string
;
10937 uint32_t _flags_save_string_array
= ndr
->flags
;
10938 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10939 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
10940 if (_ptr_dependent_files
) {
10941 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
10942 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
10944 r
->dependent_files
= NULL
;
10946 ndr
->flags
= _flags_save_string_array
;
10949 uint32_t _flags_save_string
= ndr
->flags
;
10950 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10951 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
10952 if (_ptr_monitor_name
) {
10953 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
10954 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
10956 r
->monitor_name
= NULL
;
10958 ndr
->flags
= _flags_save_string
;
10961 uint32_t _flags_save_string
= ndr
->flags
;
10962 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10963 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
10964 if (_ptr_default_datatype
) {
10965 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
10966 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
10968 r
->default_datatype
= NULL
;
10970 ndr
->flags
= _flags_save_string
;
10973 uint32_t _flags_save_string_array
= ndr
->flags
;
10974 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10975 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
10976 if (_ptr_previous_names
) {
10977 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
10978 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
10980 r
->previous_names
= NULL
;
10982 ndr
->flags
= _flags_save_string_array
;
10985 if (ndr_flags
& NDR_BUFFERS
) {
10987 uint32_t _flags_save_string
= ndr
->flags
;
10988 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10989 if (r
->driver_name
) {
10990 uint32_t _relative_save_offset
;
10991 _relative_save_offset
= ndr
->offset
;
10992 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10993 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10994 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10995 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10996 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10997 ndr
->offset
= _relative_save_offset
;
10999 ndr
->flags
= _flags_save_string
;
11002 uint32_t _flags_save_string
= ndr
->flags
;
11003 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11004 if (r
->architecture
) {
11005 uint32_t _relative_save_offset
;
11006 _relative_save_offset
= ndr
->offset
;
11007 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11008 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11009 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11010 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11011 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11012 ndr
->offset
= _relative_save_offset
;
11014 ndr
->flags
= _flags_save_string
;
11017 uint32_t _flags_save_string
= ndr
->flags
;
11018 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11019 if (r
->driver_path
) {
11020 uint32_t _relative_save_offset
;
11021 _relative_save_offset
= ndr
->offset
;
11022 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11023 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11024 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11025 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11026 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11027 ndr
->offset
= _relative_save_offset
;
11029 ndr
->flags
= _flags_save_string
;
11032 uint32_t _flags_save_string
= ndr
->flags
;
11033 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11034 if (r
->data_file
) {
11035 uint32_t _relative_save_offset
;
11036 _relative_save_offset
= ndr
->offset
;
11037 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11038 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11039 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11040 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11041 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11042 ndr
->offset
= _relative_save_offset
;
11044 ndr
->flags
= _flags_save_string
;
11047 uint32_t _flags_save_string
= ndr
->flags
;
11048 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11049 if (r
->config_file
) {
11050 uint32_t _relative_save_offset
;
11051 _relative_save_offset
= ndr
->offset
;
11052 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11053 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11054 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11055 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11056 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11057 ndr
->offset
= _relative_save_offset
;
11059 ndr
->flags
= _flags_save_string
;
11062 uint32_t _flags_save_string
= ndr
->flags
;
11063 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11064 if (r
->help_file
) {
11065 uint32_t _relative_save_offset
;
11066 _relative_save_offset
= ndr
->offset
;
11067 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11068 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11069 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11070 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11071 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11072 ndr
->offset
= _relative_save_offset
;
11074 ndr
->flags
= _flags_save_string
;
11077 uint32_t _flags_save_string_array
= ndr
->flags
;
11078 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11079 if (r
->dependent_files
) {
11080 uint32_t _relative_save_offset
;
11081 _relative_save_offset
= ndr
->offset
;
11082 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11083 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11084 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11085 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11086 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11087 ndr
->offset
= _relative_save_offset
;
11089 ndr
->flags
= _flags_save_string_array
;
11092 uint32_t _flags_save_string
= ndr
->flags
;
11093 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11094 if (r
->monitor_name
) {
11095 uint32_t _relative_save_offset
;
11096 _relative_save_offset
= ndr
->offset
;
11097 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11098 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11099 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11100 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11101 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11102 ndr
->offset
= _relative_save_offset
;
11104 ndr
->flags
= _flags_save_string
;
11107 uint32_t _flags_save_string
= ndr
->flags
;
11108 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11109 if (r
->default_datatype
) {
11110 uint32_t _relative_save_offset
;
11111 _relative_save_offset
= ndr
->offset
;
11112 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11113 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11114 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11115 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11116 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11117 ndr
->offset
= _relative_save_offset
;
11119 ndr
->flags
= _flags_save_string
;
11122 uint32_t _flags_save_string_array
= ndr
->flags
;
11123 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11124 if (r
->previous_names
) {
11125 uint32_t _relative_save_offset
;
11126 _relative_save_offset
= ndr
->offset
;
11127 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
11128 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11129 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
11130 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
11131 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
11132 ndr
->offset
= _relative_save_offset
;
11134 ndr
->flags
= _flags_save_string_array
;
11137 return NDR_ERR_SUCCESS
;
11140 _PUBLIC_
void ndr_print_spoolss_DriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo4
*r
)
11142 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo4");
11144 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11145 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11147 if (r
->driver_name
) {
11148 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11151 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11153 if (r
->architecture
) {
11154 ndr_print_string(ndr
, "architecture", r
->architecture
);
11157 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11159 if (r
->driver_path
) {
11160 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11163 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11165 if (r
->data_file
) {
11166 ndr_print_string(ndr
, "data_file", r
->data_file
);
11169 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11171 if (r
->config_file
) {
11172 ndr_print_string(ndr
, "config_file", r
->config_file
);
11175 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11177 if (r
->help_file
) {
11178 ndr_print_string(ndr
, "help_file", r
->help_file
);
11181 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11183 if (r
->dependent_files
) {
11184 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11187 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11189 if (r
->monitor_name
) {
11190 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11193 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11195 if (r
->default_datatype
) {
11196 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11199 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
11201 if (r
->previous_names
) {
11202 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
11208 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11210 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo4
, ic
);
11213 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo5
*r
)
11215 if (ndr_flags
& NDR_SCALARS
) {
11216 NDR_CHECK(ndr_push_align(ndr
, 4));
11217 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11219 uint32_t _flags_save_string
= ndr
->flags
;
11220 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11221 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11222 ndr
->flags
= _flags_save_string
;
11225 uint32_t _flags_save_string
= ndr
->flags
;
11226 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11227 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11228 ndr
->flags
= _flags_save_string
;
11231 uint32_t _flags_save_string
= ndr
->flags
;
11232 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11233 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11234 ndr
->flags
= _flags_save_string
;
11237 uint32_t _flags_save_string
= ndr
->flags
;
11238 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11239 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11240 ndr
->flags
= _flags_save_string
;
11243 uint32_t _flags_save_string
= ndr
->flags
;
11244 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11245 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11246 ndr
->flags
= _flags_save_string
;
11248 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_attributes
));
11249 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->config_version
));
11250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_version
));
11252 if (ndr_flags
& NDR_BUFFERS
) {
11254 uint32_t _flags_save_string
= ndr
->flags
;
11255 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11256 if (r
->driver_name
) {
11257 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
11258 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11260 ndr
->flags
= _flags_save_string
;
11263 uint32_t _flags_save_string
= ndr
->flags
;
11264 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11265 if (r
->architecture
) {
11266 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
11267 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11269 ndr
->flags
= _flags_save_string
;
11272 uint32_t _flags_save_string
= ndr
->flags
;
11273 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11274 if (r
->driver_path
) {
11275 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
11276 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11278 ndr
->flags
= _flags_save_string
;
11281 uint32_t _flags_save_string
= ndr
->flags
;
11282 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11283 if (r
->data_file
) {
11284 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
11285 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11287 ndr
->flags
= _flags_save_string
;
11290 uint32_t _flags_save_string
= ndr
->flags
;
11291 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11292 if (r
->config_file
) {
11293 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
11294 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11296 ndr
->flags
= _flags_save_string
;
11299 return NDR_ERR_SUCCESS
;
11302 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo5
*r
)
11304 uint32_t _ptr_driver_name
;
11305 TALLOC_CTX
*_mem_save_driver_name_0
;
11306 uint32_t _ptr_architecture
;
11307 TALLOC_CTX
*_mem_save_architecture_0
;
11308 uint32_t _ptr_driver_path
;
11309 TALLOC_CTX
*_mem_save_driver_path_0
;
11310 uint32_t _ptr_data_file
;
11311 TALLOC_CTX
*_mem_save_data_file_0
;
11312 uint32_t _ptr_config_file
;
11313 TALLOC_CTX
*_mem_save_config_file_0
;
11314 if (ndr_flags
& NDR_SCALARS
) {
11315 NDR_CHECK(ndr_pull_align(ndr
, 4));
11316 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11318 uint32_t _flags_save_string
= ndr
->flags
;
11319 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11320 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11321 if (_ptr_driver_name
) {
11322 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11323 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11325 r
->driver_name
= NULL
;
11327 ndr
->flags
= _flags_save_string
;
11330 uint32_t _flags_save_string
= ndr
->flags
;
11331 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11332 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11333 if (_ptr_architecture
) {
11334 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11335 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11337 r
->architecture
= NULL
;
11339 ndr
->flags
= _flags_save_string
;
11342 uint32_t _flags_save_string
= ndr
->flags
;
11343 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11344 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11345 if (_ptr_driver_path
) {
11346 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11347 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11349 r
->driver_path
= NULL
;
11351 ndr
->flags
= _flags_save_string
;
11354 uint32_t _flags_save_string
= ndr
->flags
;
11355 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11356 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11357 if (_ptr_data_file
) {
11358 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11359 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11361 r
->data_file
= NULL
;
11363 ndr
->flags
= _flags_save_string
;
11366 uint32_t _flags_save_string
= ndr
->flags
;
11367 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11368 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11369 if (_ptr_config_file
) {
11370 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11371 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11373 r
->config_file
= NULL
;
11375 ndr
->flags
= _flags_save_string
;
11377 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_attributes
));
11378 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->config_version
));
11379 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_version
));
11381 if (ndr_flags
& NDR_BUFFERS
) {
11383 uint32_t _flags_save_string
= ndr
->flags
;
11384 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11385 if (r
->driver_name
) {
11386 uint32_t _relative_save_offset
;
11387 _relative_save_offset
= ndr
->offset
;
11388 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11389 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11390 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11391 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11392 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11393 ndr
->offset
= _relative_save_offset
;
11395 ndr
->flags
= _flags_save_string
;
11398 uint32_t _flags_save_string
= ndr
->flags
;
11399 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11400 if (r
->architecture
) {
11401 uint32_t _relative_save_offset
;
11402 _relative_save_offset
= ndr
->offset
;
11403 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11404 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11405 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11406 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11407 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11408 ndr
->offset
= _relative_save_offset
;
11410 ndr
->flags
= _flags_save_string
;
11413 uint32_t _flags_save_string
= ndr
->flags
;
11414 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11415 if (r
->driver_path
) {
11416 uint32_t _relative_save_offset
;
11417 _relative_save_offset
= ndr
->offset
;
11418 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11419 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11420 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11421 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11422 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11423 ndr
->offset
= _relative_save_offset
;
11425 ndr
->flags
= _flags_save_string
;
11428 uint32_t _flags_save_string
= ndr
->flags
;
11429 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11430 if (r
->data_file
) {
11431 uint32_t _relative_save_offset
;
11432 _relative_save_offset
= ndr
->offset
;
11433 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11434 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11435 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11436 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11437 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11438 ndr
->offset
= _relative_save_offset
;
11440 ndr
->flags
= _flags_save_string
;
11443 uint32_t _flags_save_string
= ndr
->flags
;
11444 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11445 if (r
->config_file
) {
11446 uint32_t _relative_save_offset
;
11447 _relative_save_offset
= ndr
->offset
;
11448 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11449 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11450 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11451 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11452 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11453 ndr
->offset
= _relative_save_offset
;
11455 ndr
->flags
= _flags_save_string
;
11458 return NDR_ERR_SUCCESS
;
11461 _PUBLIC_
void ndr_print_spoolss_DriverInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo5
*r
)
11463 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo5");
11465 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11466 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11468 if (r
->driver_name
) {
11469 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11472 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11474 if (r
->architecture
) {
11475 ndr_print_string(ndr
, "architecture", r
->architecture
);
11478 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11480 if (r
->driver_path
) {
11481 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11484 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11486 if (r
->data_file
) {
11487 ndr_print_string(ndr
, "data_file", r
->data_file
);
11490 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11492 if (r
->config_file
) {
11493 ndr_print_string(ndr
, "config_file", r
->config_file
);
11496 ndr_print_uint32(ndr
, "driver_attributes", r
->driver_attributes
);
11497 ndr_print_uint32(ndr
, "config_version", r
->config_version
);
11498 ndr_print_uint32(ndr
, "driver_version", r
->driver_version
);
11502 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11504 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo5
, ic
);
11507 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo6
*r
)
11509 if (ndr_flags
& NDR_SCALARS
) {
11510 NDR_CHECK(ndr_push_align(ndr
, 8));
11511 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11513 uint32_t _flags_save_string
= ndr
->flags
;
11514 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11515 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11516 ndr
->flags
= _flags_save_string
;
11519 uint32_t _flags_save_string
= ndr
->flags
;
11520 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11521 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11522 ndr
->flags
= _flags_save_string
;
11525 uint32_t _flags_save_string
= ndr
->flags
;
11526 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11527 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11528 ndr
->flags
= _flags_save_string
;
11531 uint32_t _flags_save_string
= ndr
->flags
;
11532 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11533 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11534 ndr
->flags
= _flags_save_string
;
11537 uint32_t _flags_save_string
= ndr
->flags
;
11538 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11539 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11540 ndr
->flags
= _flags_save_string
;
11543 uint32_t _flags_save_string
= ndr
->flags
;
11544 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11545 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
11546 ndr
->flags
= _flags_save_string
;
11549 uint32_t _flags_save_string_array
= ndr
->flags
;
11550 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11551 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
11552 ndr
->flags
= _flags_save_string_array
;
11555 uint32_t _flags_save_string
= ndr
->flags
;
11556 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11557 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
11558 ndr
->flags
= _flags_save_string
;
11561 uint32_t _flags_save_string
= ndr
->flags
;
11562 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11563 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
11564 ndr
->flags
= _flags_save_string
;
11567 uint32_t _flags_save_string_array
= ndr
->flags
;
11568 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11569 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
11570 ndr
->flags
= _flags_save_string_array
;
11572 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
11573 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
11575 uint32_t _flags_save_string
= ndr
->flags
;
11576 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11577 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
11578 ndr
->flags
= _flags_save_string
;
11581 uint32_t _flags_save_string
= ndr
->flags
;
11582 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11583 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
11584 ndr
->flags
= _flags_save_string
;
11587 uint32_t _flags_save_string
= ndr
->flags
;
11588 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11589 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
11590 ndr
->flags
= _flags_save_string
;
11593 uint32_t _flags_save_string
= ndr
->flags
;
11594 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11595 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
11596 ndr
->flags
= _flags_save_string
;
11599 if (ndr_flags
& NDR_BUFFERS
) {
11601 uint32_t _flags_save_string
= ndr
->flags
;
11602 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11603 if (r
->driver_name
) {
11604 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
11605 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11607 ndr
->flags
= _flags_save_string
;
11610 uint32_t _flags_save_string
= ndr
->flags
;
11611 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11612 if (r
->architecture
) {
11613 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
11614 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11616 ndr
->flags
= _flags_save_string
;
11619 uint32_t _flags_save_string
= ndr
->flags
;
11620 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11621 if (r
->driver_path
) {
11622 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
11623 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11625 ndr
->flags
= _flags_save_string
;
11628 uint32_t _flags_save_string
= ndr
->flags
;
11629 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11630 if (r
->data_file
) {
11631 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
11632 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11634 ndr
->flags
= _flags_save_string
;
11637 uint32_t _flags_save_string
= ndr
->flags
;
11638 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11639 if (r
->config_file
) {
11640 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
11641 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11643 ndr
->flags
= _flags_save_string
;
11646 uint32_t _flags_save_string
= ndr
->flags
;
11647 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11648 if (r
->help_file
) {
11649 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
11650 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
11652 ndr
->flags
= _flags_save_string
;
11655 uint32_t _flags_save_string_array
= ndr
->flags
;
11656 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11657 if (r
->dependent_files
) {
11658 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
11659 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
11661 ndr
->flags
= _flags_save_string_array
;
11664 uint32_t _flags_save_string
= ndr
->flags
;
11665 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11666 if (r
->monitor_name
) {
11667 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
11668 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
11670 ndr
->flags
= _flags_save_string
;
11673 uint32_t _flags_save_string
= ndr
->flags
;
11674 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11675 if (r
->default_datatype
) {
11676 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
11677 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
11679 ndr
->flags
= _flags_save_string
;
11682 uint32_t _flags_save_string_array
= ndr
->flags
;
11683 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11684 if (r
->previous_names
) {
11685 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
11686 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
11688 ndr
->flags
= _flags_save_string_array
;
11691 uint32_t _flags_save_string
= ndr
->flags
;
11692 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11693 if (r
->manufacturer_name
) {
11694 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
11695 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
11697 ndr
->flags
= _flags_save_string
;
11700 uint32_t _flags_save_string
= ndr
->flags
;
11701 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11702 if (r
->manufacturer_url
) {
11703 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
11704 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
11706 ndr
->flags
= _flags_save_string
;
11709 uint32_t _flags_save_string
= ndr
->flags
;
11710 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11711 if (r
->hardware_id
) {
11712 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
11713 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
11715 ndr
->flags
= _flags_save_string
;
11718 uint32_t _flags_save_string
= ndr
->flags
;
11719 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11721 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
11722 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
11724 ndr
->flags
= _flags_save_string
;
11727 return NDR_ERR_SUCCESS
;
11730 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo6
*r
)
11732 uint32_t _ptr_driver_name
;
11733 TALLOC_CTX
*_mem_save_driver_name_0
;
11734 uint32_t _ptr_architecture
;
11735 TALLOC_CTX
*_mem_save_architecture_0
;
11736 uint32_t _ptr_driver_path
;
11737 TALLOC_CTX
*_mem_save_driver_path_0
;
11738 uint32_t _ptr_data_file
;
11739 TALLOC_CTX
*_mem_save_data_file_0
;
11740 uint32_t _ptr_config_file
;
11741 TALLOC_CTX
*_mem_save_config_file_0
;
11742 uint32_t _ptr_help_file
;
11743 TALLOC_CTX
*_mem_save_help_file_0
;
11744 uint32_t _ptr_dependent_files
;
11745 TALLOC_CTX
*_mem_save_dependent_files_0
;
11746 uint32_t _ptr_monitor_name
;
11747 TALLOC_CTX
*_mem_save_monitor_name_0
;
11748 uint32_t _ptr_default_datatype
;
11749 TALLOC_CTX
*_mem_save_default_datatype_0
;
11750 uint32_t _ptr_previous_names
;
11751 TALLOC_CTX
*_mem_save_previous_names_0
;
11752 uint32_t _ptr_manufacturer_name
;
11753 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
11754 uint32_t _ptr_manufacturer_url
;
11755 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
11756 uint32_t _ptr_hardware_id
;
11757 TALLOC_CTX
*_mem_save_hardware_id_0
;
11758 uint32_t _ptr_provider
;
11759 TALLOC_CTX
*_mem_save_provider_0
;
11760 if (ndr_flags
& NDR_SCALARS
) {
11761 NDR_CHECK(ndr_pull_align(ndr
, 8));
11762 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11764 uint32_t _flags_save_string
= ndr
->flags
;
11765 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11766 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11767 if (_ptr_driver_name
) {
11768 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11769 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11771 r
->driver_name
= NULL
;
11773 ndr
->flags
= _flags_save_string
;
11776 uint32_t _flags_save_string
= ndr
->flags
;
11777 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11778 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11779 if (_ptr_architecture
) {
11780 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11781 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11783 r
->architecture
= NULL
;
11785 ndr
->flags
= _flags_save_string
;
11788 uint32_t _flags_save_string
= ndr
->flags
;
11789 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11790 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11791 if (_ptr_driver_path
) {
11792 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11793 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11795 r
->driver_path
= NULL
;
11797 ndr
->flags
= _flags_save_string
;
11800 uint32_t _flags_save_string
= ndr
->flags
;
11801 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11802 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11803 if (_ptr_data_file
) {
11804 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11805 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11807 r
->data_file
= NULL
;
11809 ndr
->flags
= _flags_save_string
;
11812 uint32_t _flags_save_string
= ndr
->flags
;
11813 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11814 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11815 if (_ptr_config_file
) {
11816 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11817 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11819 r
->config_file
= NULL
;
11821 ndr
->flags
= _flags_save_string
;
11824 uint32_t _flags_save_string
= ndr
->flags
;
11825 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11826 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
11827 if (_ptr_help_file
) {
11828 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11829 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11831 r
->help_file
= NULL
;
11833 ndr
->flags
= _flags_save_string
;
11836 uint32_t _flags_save_string_array
= ndr
->flags
;
11837 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11838 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11839 if (_ptr_dependent_files
) {
11840 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11841 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11843 r
->dependent_files
= NULL
;
11845 ndr
->flags
= _flags_save_string_array
;
11848 uint32_t _flags_save_string
= ndr
->flags
;
11849 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11850 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11851 if (_ptr_monitor_name
) {
11852 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11853 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
11855 r
->monitor_name
= NULL
;
11857 ndr
->flags
= _flags_save_string
;
11860 uint32_t _flags_save_string
= ndr
->flags
;
11861 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11862 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
11863 if (_ptr_default_datatype
) {
11864 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
11865 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11867 r
->default_datatype
= NULL
;
11869 ndr
->flags
= _flags_save_string
;
11872 uint32_t _flags_save_string_array
= ndr
->flags
;
11873 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11874 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
11875 if (_ptr_previous_names
) {
11876 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
11877 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
11879 r
->previous_names
= NULL
;
11881 ndr
->flags
= _flags_save_string_array
;
11883 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
11884 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
11886 uint32_t _flags_save_string
= ndr
->flags
;
11887 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11888 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
11889 if (_ptr_manufacturer_name
) {
11890 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
11891 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
11893 r
->manufacturer_name
= NULL
;
11895 ndr
->flags
= _flags_save_string
;
11898 uint32_t _flags_save_string
= ndr
->flags
;
11899 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11900 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
11901 if (_ptr_manufacturer_url
) {
11902 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
11903 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
11905 r
->manufacturer_url
= NULL
;
11907 ndr
->flags
= _flags_save_string
;
11910 uint32_t _flags_save_string
= ndr
->flags
;
11911 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11912 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
11913 if (_ptr_hardware_id
) {
11914 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
11915 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
11917 r
->hardware_id
= NULL
;
11919 ndr
->flags
= _flags_save_string
;
11922 uint32_t _flags_save_string
= ndr
->flags
;
11923 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11924 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
11925 if (_ptr_provider
) {
11926 NDR_PULL_ALLOC(ndr
, r
->provider
);
11927 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
11929 r
->provider
= NULL
;
11931 ndr
->flags
= _flags_save_string
;
11934 if (ndr_flags
& NDR_BUFFERS
) {
11936 uint32_t _flags_save_string
= ndr
->flags
;
11937 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11938 if (r
->driver_name
) {
11939 uint32_t _relative_save_offset
;
11940 _relative_save_offset
= ndr
->offset
;
11941 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11942 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11943 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11944 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11945 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11946 ndr
->offset
= _relative_save_offset
;
11948 ndr
->flags
= _flags_save_string
;
11951 uint32_t _flags_save_string
= ndr
->flags
;
11952 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11953 if (r
->architecture
) {
11954 uint32_t _relative_save_offset
;
11955 _relative_save_offset
= ndr
->offset
;
11956 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11957 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11958 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11959 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11960 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11961 ndr
->offset
= _relative_save_offset
;
11963 ndr
->flags
= _flags_save_string
;
11966 uint32_t _flags_save_string
= ndr
->flags
;
11967 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11968 if (r
->driver_path
) {
11969 uint32_t _relative_save_offset
;
11970 _relative_save_offset
= ndr
->offset
;
11971 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11972 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11973 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11974 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11975 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11976 ndr
->offset
= _relative_save_offset
;
11978 ndr
->flags
= _flags_save_string
;
11981 uint32_t _flags_save_string
= ndr
->flags
;
11982 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11983 if (r
->data_file
) {
11984 uint32_t _relative_save_offset
;
11985 _relative_save_offset
= ndr
->offset
;
11986 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11987 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11988 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11989 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11990 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11991 ndr
->offset
= _relative_save_offset
;
11993 ndr
->flags
= _flags_save_string
;
11996 uint32_t _flags_save_string
= ndr
->flags
;
11997 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11998 if (r
->config_file
) {
11999 uint32_t _relative_save_offset
;
12000 _relative_save_offset
= ndr
->offset
;
12001 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12002 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12003 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12004 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12005 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12006 ndr
->offset
= _relative_save_offset
;
12008 ndr
->flags
= _flags_save_string
;
12011 uint32_t _flags_save_string
= ndr
->flags
;
12012 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12013 if (r
->help_file
) {
12014 uint32_t _relative_save_offset
;
12015 _relative_save_offset
= ndr
->offset
;
12016 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
12017 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12018 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
12019 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
12020 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
12021 ndr
->offset
= _relative_save_offset
;
12023 ndr
->flags
= _flags_save_string
;
12026 uint32_t _flags_save_string_array
= ndr
->flags
;
12027 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12028 if (r
->dependent_files
) {
12029 uint32_t _relative_save_offset
;
12030 _relative_save_offset
= ndr
->offset
;
12031 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
12032 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12033 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
12034 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
12035 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
12036 ndr
->offset
= _relative_save_offset
;
12038 ndr
->flags
= _flags_save_string_array
;
12041 uint32_t _flags_save_string
= ndr
->flags
;
12042 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12043 if (r
->monitor_name
) {
12044 uint32_t _relative_save_offset
;
12045 _relative_save_offset
= ndr
->offset
;
12046 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
12047 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12048 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
12049 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
12050 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
12051 ndr
->offset
= _relative_save_offset
;
12053 ndr
->flags
= _flags_save_string
;
12056 uint32_t _flags_save_string
= ndr
->flags
;
12057 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12058 if (r
->default_datatype
) {
12059 uint32_t _relative_save_offset
;
12060 _relative_save_offset
= ndr
->offset
;
12061 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
12062 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12063 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
12064 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
12065 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
12066 ndr
->offset
= _relative_save_offset
;
12068 ndr
->flags
= _flags_save_string
;
12071 uint32_t _flags_save_string_array
= ndr
->flags
;
12072 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12073 if (r
->previous_names
) {
12074 uint32_t _relative_save_offset
;
12075 _relative_save_offset
= ndr
->offset
;
12076 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
12077 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12078 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
12079 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
12080 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
12081 ndr
->offset
= _relative_save_offset
;
12083 ndr
->flags
= _flags_save_string_array
;
12086 uint32_t _flags_save_string
= ndr
->flags
;
12087 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12088 if (r
->manufacturer_name
) {
12089 uint32_t _relative_save_offset
;
12090 _relative_save_offset
= ndr
->offset
;
12091 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
12092 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12093 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
12094 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
12095 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
12096 ndr
->offset
= _relative_save_offset
;
12098 ndr
->flags
= _flags_save_string
;
12101 uint32_t _flags_save_string
= ndr
->flags
;
12102 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12103 if (r
->manufacturer_url
) {
12104 uint32_t _relative_save_offset
;
12105 _relative_save_offset
= ndr
->offset
;
12106 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
12107 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12108 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
12109 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
12110 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
12111 ndr
->offset
= _relative_save_offset
;
12113 ndr
->flags
= _flags_save_string
;
12116 uint32_t _flags_save_string
= ndr
->flags
;
12117 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12118 if (r
->hardware_id
) {
12119 uint32_t _relative_save_offset
;
12120 _relative_save_offset
= ndr
->offset
;
12121 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
12122 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12123 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
12124 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
12125 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
12126 ndr
->offset
= _relative_save_offset
;
12128 ndr
->flags
= _flags_save_string
;
12131 uint32_t _flags_save_string
= ndr
->flags
;
12132 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12134 uint32_t _relative_save_offset
;
12135 _relative_save_offset
= ndr
->offset
;
12136 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
12137 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12138 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
12139 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
12140 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
12141 ndr
->offset
= _relative_save_offset
;
12143 ndr
->flags
= _flags_save_string
;
12146 return NDR_ERR_SUCCESS
;
12149 _PUBLIC_
void ndr_print_spoolss_DriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo6
*r
)
12151 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo6");
12153 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12154 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12156 if (r
->driver_name
) {
12157 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12160 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12162 if (r
->architecture
) {
12163 ndr_print_string(ndr
, "architecture", r
->architecture
);
12166 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12168 if (r
->driver_path
) {
12169 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12172 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12174 if (r
->data_file
) {
12175 ndr_print_string(ndr
, "data_file", r
->data_file
);
12178 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12180 if (r
->config_file
) {
12181 ndr_print_string(ndr
, "config_file", r
->config_file
);
12184 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
12186 if (r
->help_file
) {
12187 ndr_print_string(ndr
, "help_file", r
->help_file
);
12190 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
12192 if (r
->dependent_files
) {
12193 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
12196 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
12198 if (r
->monitor_name
) {
12199 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
12202 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
12204 if (r
->default_datatype
) {
12205 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
12208 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
12210 if (r
->previous_names
) {
12211 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
12214 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
12215 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
12216 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
12218 if (r
->manufacturer_name
) {
12219 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
12222 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
12224 if (r
->manufacturer_url
) {
12225 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
12228 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
12230 if (r
->hardware_id
) {
12231 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
12234 ndr_print_ptr(ndr
, "provider", r
->provider
);
12237 ndr_print_string(ndr
, "provider", r
->provider
);
12243 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12245 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo6
, ic
);
12248 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo8
*r
)
12250 if (ndr_flags
& NDR_SCALARS
) {
12251 NDR_CHECK(ndr_push_align(ndr
, 8));
12252 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12254 uint32_t _flags_save_string
= ndr
->flags
;
12255 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12256 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12257 ndr
->flags
= _flags_save_string
;
12260 uint32_t _flags_save_string
= ndr
->flags
;
12261 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12262 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
12263 ndr
->flags
= _flags_save_string
;
12266 uint32_t _flags_save_string
= ndr
->flags
;
12267 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12268 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12269 ndr
->flags
= _flags_save_string
;
12272 uint32_t _flags_save_string
= ndr
->flags
;
12273 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12274 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12275 ndr
->flags
= _flags_save_string
;
12278 uint32_t _flags_save_string
= ndr
->flags
;
12279 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12280 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
12281 ndr
->flags
= _flags_save_string
;
12284 uint32_t _flags_save_string
= ndr
->flags
;
12285 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12286 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
12287 ndr
->flags
= _flags_save_string
;
12290 uint32_t _flags_save_string
= ndr
->flags
;
12291 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12292 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
12293 ndr
->flags
= _flags_save_string
;
12296 uint32_t _flags_save_string
= ndr
->flags
;
12297 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12298 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
12299 ndr
->flags
= _flags_save_string
;
12302 uint32_t _flags_save_string_array
= ndr
->flags
;
12303 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12304 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
12305 ndr
->flags
= _flags_save_string_array
;
12308 uint32_t _flags_save_string_array
= ndr
->flags
;
12309 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12310 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
12311 ndr
->flags
= _flags_save_string_array
;
12313 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
12314 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
12316 uint32_t _flags_save_string
= ndr
->flags
;
12317 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12318 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
12319 ndr
->flags
= _flags_save_string
;
12322 uint32_t _flags_save_string
= ndr
->flags
;
12323 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12324 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
12325 ndr
->flags
= _flags_save_string
;
12328 uint32_t _flags_save_string
= ndr
->flags
;
12329 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12330 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
12331 ndr
->flags
= _flags_save_string
;
12334 uint32_t _flags_save_string
= ndr
->flags
;
12335 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12336 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
12337 ndr
->flags
= _flags_save_string
;
12340 uint32_t _flags_save_string
= ndr
->flags
;
12341 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12342 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
12343 ndr
->flags
= _flags_save_string
;
12346 uint32_t _flags_save_string
= ndr
->flags
;
12347 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12348 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->vendor_setup
));
12349 ndr
->flags
= _flags_save_string
;
12352 uint32_t _flags_save_string_array
= ndr
->flags
;
12353 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12354 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->color_profiles
));
12355 ndr
->flags
= _flags_save_string_array
;
12358 uint32_t _flags_save_string
= ndr
->flags
;
12359 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12360 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_path
));
12361 ndr
->flags
= _flags_save_string
;
12363 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
12365 uint32_t _flags_save_string_array
= ndr
->flags
;
12366 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12367 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->core_driver_dependencies
));
12368 ndr
->flags
= _flags_save_string_array
;
12370 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
12371 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
12373 if (ndr_flags
& NDR_BUFFERS
) {
12375 uint32_t _flags_save_string
= ndr
->flags
;
12376 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12377 if (r
->driver_name
) {
12378 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
12379 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12381 ndr
->flags
= _flags_save_string
;
12384 uint32_t _flags_save_string
= ndr
->flags
;
12385 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12386 if (r
->architecture
) {
12387 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
12388 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12390 ndr
->flags
= _flags_save_string
;
12393 uint32_t _flags_save_string
= ndr
->flags
;
12394 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12395 if (r
->driver_path
) {
12396 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
12397 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12399 ndr
->flags
= _flags_save_string
;
12402 uint32_t _flags_save_string
= ndr
->flags
;
12403 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12404 if (r
->data_file
) {
12405 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
12406 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
12408 ndr
->flags
= _flags_save_string
;
12411 uint32_t _flags_save_string
= ndr
->flags
;
12412 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12413 if (r
->config_file
) {
12414 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
12415 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
12417 ndr
->flags
= _flags_save_string
;
12420 uint32_t _flags_save_string
= ndr
->flags
;
12421 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12422 if (r
->help_file
) {
12423 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
12424 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
12426 ndr
->flags
= _flags_save_string
;
12429 uint32_t _flags_save_string
= ndr
->flags
;
12430 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12431 if (r
->monitor_name
) {
12432 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
12433 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
12435 ndr
->flags
= _flags_save_string
;
12438 uint32_t _flags_save_string
= ndr
->flags
;
12439 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12440 if (r
->default_datatype
) {
12441 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
12442 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
12444 ndr
->flags
= _flags_save_string
;
12447 uint32_t _flags_save_string_array
= ndr
->flags
;
12448 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12449 if (r
->dependent_files
) {
12450 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
12451 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
12453 ndr
->flags
= _flags_save_string_array
;
12456 uint32_t _flags_save_string_array
= ndr
->flags
;
12457 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12458 if (r
->previous_names
) {
12459 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
12460 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
12462 ndr
->flags
= _flags_save_string_array
;
12465 uint32_t _flags_save_string
= ndr
->flags
;
12466 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12467 if (r
->manufacturer_name
) {
12468 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
12469 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
12471 ndr
->flags
= _flags_save_string
;
12474 uint32_t _flags_save_string
= ndr
->flags
;
12475 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12476 if (r
->manufacturer_url
) {
12477 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
12478 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
12480 ndr
->flags
= _flags_save_string
;
12483 uint32_t _flags_save_string
= ndr
->flags
;
12484 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12485 if (r
->hardware_id
) {
12486 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
12487 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
12489 ndr
->flags
= _flags_save_string
;
12492 uint32_t _flags_save_string
= ndr
->flags
;
12493 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12495 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
12496 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
12498 ndr
->flags
= _flags_save_string
;
12501 uint32_t _flags_save_string
= ndr
->flags
;
12502 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12503 if (r
->print_processor
) {
12504 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
12505 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
12507 ndr
->flags
= _flags_save_string
;
12510 uint32_t _flags_save_string
= ndr
->flags
;
12511 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12512 if (r
->vendor_setup
) {
12513 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->vendor_setup
));
12514 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->vendor_setup
));
12516 ndr
->flags
= _flags_save_string
;
12519 uint32_t _flags_save_string_array
= ndr
->flags
;
12520 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12521 if (r
->color_profiles
) {
12522 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->color_profiles
));
12523 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->color_profiles
));
12525 ndr
->flags
= _flags_save_string_array
;
12528 uint32_t _flags_save_string
= ndr
->flags
;
12529 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12531 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->inf_path
));
12532 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_path
));
12534 ndr
->flags
= _flags_save_string
;
12537 uint32_t _flags_save_string_array
= ndr
->flags
;
12538 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12539 if (r
->core_driver_dependencies
) {
12540 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->core_driver_dependencies
));
12541 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
12543 ndr
->flags
= _flags_save_string_array
;
12546 return NDR_ERR_SUCCESS
;
12549 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo8
*r
)
12551 uint32_t _ptr_driver_name
;
12552 TALLOC_CTX
*_mem_save_driver_name_0
;
12553 uint32_t _ptr_architecture
;
12554 TALLOC_CTX
*_mem_save_architecture_0
;
12555 uint32_t _ptr_driver_path
;
12556 TALLOC_CTX
*_mem_save_driver_path_0
;
12557 uint32_t _ptr_data_file
;
12558 TALLOC_CTX
*_mem_save_data_file_0
;
12559 uint32_t _ptr_config_file
;
12560 TALLOC_CTX
*_mem_save_config_file_0
;
12561 uint32_t _ptr_help_file
;
12562 TALLOC_CTX
*_mem_save_help_file_0
;
12563 uint32_t _ptr_monitor_name
;
12564 TALLOC_CTX
*_mem_save_monitor_name_0
;
12565 uint32_t _ptr_default_datatype
;
12566 TALLOC_CTX
*_mem_save_default_datatype_0
;
12567 uint32_t _ptr_dependent_files
;
12568 TALLOC_CTX
*_mem_save_dependent_files_0
;
12569 uint32_t _ptr_previous_names
;
12570 TALLOC_CTX
*_mem_save_previous_names_0
;
12571 uint32_t _ptr_manufacturer_name
;
12572 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
12573 uint32_t _ptr_manufacturer_url
;
12574 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
12575 uint32_t _ptr_hardware_id
;
12576 TALLOC_CTX
*_mem_save_hardware_id_0
;
12577 uint32_t _ptr_provider
;
12578 TALLOC_CTX
*_mem_save_provider_0
;
12579 uint32_t _ptr_print_processor
;
12580 TALLOC_CTX
*_mem_save_print_processor_0
;
12581 uint32_t _ptr_vendor_setup
;
12582 TALLOC_CTX
*_mem_save_vendor_setup_0
;
12583 uint32_t _ptr_color_profiles
;
12584 TALLOC_CTX
*_mem_save_color_profiles_0
;
12585 uint32_t _ptr_inf_path
;
12586 TALLOC_CTX
*_mem_save_inf_path_0
;
12587 uint32_t _ptr_core_driver_dependencies
;
12588 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
12589 if (ndr_flags
& NDR_SCALARS
) {
12590 NDR_CHECK(ndr_pull_align(ndr
, 8));
12591 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
12593 uint32_t _flags_save_string
= ndr
->flags
;
12594 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12595 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
12596 if (_ptr_driver_name
) {
12597 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
12598 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
12600 r
->driver_name
= NULL
;
12602 ndr
->flags
= _flags_save_string
;
12605 uint32_t _flags_save_string
= ndr
->flags
;
12606 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12607 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
12608 if (_ptr_architecture
) {
12609 NDR_PULL_ALLOC(ndr
, r
->architecture
);
12610 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
12612 r
->architecture
= NULL
;
12614 ndr
->flags
= _flags_save_string
;
12617 uint32_t _flags_save_string
= ndr
->flags
;
12618 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12619 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
12620 if (_ptr_driver_path
) {
12621 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
12622 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
12624 r
->driver_path
= NULL
;
12626 ndr
->flags
= _flags_save_string
;
12629 uint32_t _flags_save_string
= ndr
->flags
;
12630 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12631 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
12632 if (_ptr_data_file
) {
12633 NDR_PULL_ALLOC(ndr
, r
->data_file
);
12634 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
12636 r
->data_file
= NULL
;
12638 ndr
->flags
= _flags_save_string
;
12641 uint32_t _flags_save_string
= ndr
->flags
;
12642 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12643 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
12644 if (_ptr_config_file
) {
12645 NDR_PULL_ALLOC(ndr
, r
->config_file
);
12646 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
12648 r
->config_file
= NULL
;
12650 ndr
->flags
= _flags_save_string
;
12653 uint32_t _flags_save_string
= ndr
->flags
;
12654 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12655 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
12656 if (_ptr_help_file
) {
12657 NDR_PULL_ALLOC(ndr
, r
->help_file
);
12658 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
12660 r
->help_file
= NULL
;
12662 ndr
->flags
= _flags_save_string
;
12665 uint32_t _flags_save_string
= ndr
->flags
;
12666 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12667 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
12668 if (_ptr_monitor_name
) {
12669 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
12670 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
12672 r
->monitor_name
= NULL
;
12674 ndr
->flags
= _flags_save_string
;
12677 uint32_t _flags_save_string
= ndr
->flags
;
12678 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12679 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
12680 if (_ptr_default_datatype
) {
12681 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
12682 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
12684 r
->default_datatype
= NULL
;
12686 ndr
->flags
= _flags_save_string
;
12689 uint32_t _flags_save_string_array
= ndr
->flags
;
12690 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12691 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
12692 if (_ptr_dependent_files
) {
12693 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
12694 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
12696 r
->dependent_files
= NULL
;
12698 ndr
->flags
= _flags_save_string_array
;
12701 uint32_t _flags_save_string_array
= ndr
->flags
;
12702 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12703 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
12704 if (_ptr_previous_names
) {
12705 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
12706 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
12708 r
->previous_names
= NULL
;
12710 ndr
->flags
= _flags_save_string_array
;
12712 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
12713 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
12715 uint32_t _flags_save_string
= ndr
->flags
;
12716 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12717 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
12718 if (_ptr_manufacturer_name
) {
12719 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
12720 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
12722 r
->manufacturer_name
= NULL
;
12724 ndr
->flags
= _flags_save_string
;
12727 uint32_t _flags_save_string
= ndr
->flags
;
12728 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12729 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
12730 if (_ptr_manufacturer_url
) {
12731 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
12732 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
12734 r
->manufacturer_url
= NULL
;
12736 ndr
->flags
= _flags_save_string
;
12739 uint32_t _flags_save_string
= ndr
->flags
;
12740 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12741 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
12742 if (_ptr_hardware_id
) {
12743 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
12744 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
12746 r
->hardware_id
= NULL
;
12748 ndr
->flags
= _flags_save_string
;
12751 uint32_t _flags_save_string
= ndr
->flags
;
12752 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12753 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
12754 if (_ptr_provider
) {
12755 NDR_PULL_ALLOC(ndr
, r
->provider
);
12756 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
12758 r
->provider
= NULL
;
12760 ndr
->flags
= _flags_save_string
;
12763 uint32_t _flags_save_string
= ndr
->flags
;
12764 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12765 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
12766 if (_ptr_print_processor
) {
12767 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
12768 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
12770 r
->print_processor
= NULL
;
12772 ndr
->flags
= _flags_save_string
;
12775 uint32_t _flags_save_string
= ndr
->flags
;
12776 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12777 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
12778 if (_ptr_vendor_setup
) {
12779 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
12780 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->vendor_setup
, _ptr_vendor_setup
));
12782 r
->vendor_setup
= NULL
;
12784 ndr
->flags
= _flags_save_string
;
12787 uint32_t _flags_save_string_array
= ndr
->flags
;
12788 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12789 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
12790 if (_ptr_color_profiles
) {
12791 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
12792 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->color_profiles
, _ptr_color_profiles
));
12794 r
->color_profiles
= NULL
;
12796 ndr
->flags
= _flags_save_string_array
;
12799 uint32_t _flags_save_string
= ndr
->flags
;
12800 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12801 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
12802 if (_ptr_inf_path
) {
12803 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
12804 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_path
, _ptr_inf_path
));
12806 r
->inf_path
= NULL
;
12808 ndr
->flags
= _flags_save_string
;
12810 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
12812 uint32_t _flags_save_string_array
= ndr
->flags
;
12813 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12814 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
12815 if (_ptr_core_driver_dependencies
) {
12816 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
12817 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->core_driver_dependencies
, _ptr_core_driver_dependencies
));
12819 r
->core_driver_dependencies
= NULL
;
12821 ndr
->flags
= _flags_save_string_array
;
12823 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
12824 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
12826 if (ndr_flags
& NDR_BUFFERS
) {
12828 uint32_t _flags_save_string
= ndr
->flags
;
12829 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12830 if (r
->driver_name
) {
12831 uint32_t _relative_save_offset
;
12832 _relative_save_offset
= ndr
->offset
;
12833 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
12834 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12835 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
12836 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
12837 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
12838 ndr
->offset
= _relative_save_offset
;
12840 ndr
->flags
= _flags_save_string
;
12843 uint32_t _flags_save_string
= ndr
->flags
;
12844 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12845 if (r
->architecture
) {
12846 uint32_t _relative_save_offset
;
12847 _relative_save_offset
= ndr
->offset
;
12848 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12849 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12850 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12851 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12852 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12853 ndr
->offset
= _relative_save_offset
;
12855 ndr
->flags
= _flags_save_string
;
12858 uint32_t _flags_save_string
= ndr
->flags
;
12859 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12860 if (r
->driver_path
) {
12861 uint32_t _relative_save_offset
;
12862 _relative_save_offset
= ndr
->offset
;
12863 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12864 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12865 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12866 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12867 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12868 ndr
->offset
= _relative_save_offset
;
12870 ndr
->flags
= _flags_save_string
;
12873 uint32_t _flags_save_string
= ndr
->flags
;
12874 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12875 if (r
->data_file
) {
12876 uint32_t _relative_save_offset
;
12877 _relative_save_offset
= ndr
->offset
;
12878 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12879 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12880 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12881 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12882 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12883 ndr
->offset
= _relative_save_offset
;
12885 ndr
->flags
= _flags_save_string
;
12888 uint32_t _flags_save_string
= ndr
->flags
;
12889 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12890 if (r
->config_file
) {
12891 uint32_t _relative_save_offset
;
12892 _relative_save_offset
= ndr
->offset
;
12893 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12894 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12895 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12896 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12897 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12898 ndr
->offset
= _relative_save_offset
;
12900 ndr
->flags
= _flags_save_string
;
12903 uint32_t _flags_save_string
= ndr
->flags
;
12904 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12905 if (r
->help_file
) {
12906 uint32_t _relative_save_offset
;
12907 _relative_save_offset
= ndr
->offset
;
12908 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
12909 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12910 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
12911 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
12912 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
12913 ndr
->offset
= _relative_save_offset
;
12915 ndr
->flags
= _flags_save_string
;
12918 uint32_t _flags_save_string
= ndr
->flags
;
12919 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12920 if (r
->monitor_name
) {
12921 uint32_t _relative_save_offset
;
12922 _relative_save_offset
= ndr
->offset
;
12923 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
12924 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12925 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
12926 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
12927 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
12928 ndr
->offset
= _relative_save_offset
;
12930 ndr
->flags
= _flags_save_string
;
12933 uint32_t _flags_save_string
= ndr
->flags
;
12934 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12935 if (r
->default_datatype
) {
12936 uint32_t _relative_save_offset
;
12937 _relative_save_offset
= ndr
->offset
;
12938 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
12939 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12940 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
12941 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
12942 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
12943 ndr
->offset
= _relative_save_offset
;
12945 ndr
->flags
= _flags_save_string
;
12948 uint32_t _flags_save_string_array
= ndr
->flags
;
12949 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12950 if (r
->dependent_files
) {
12951 uint32_t _relative_save_offset
;
12952 _relative_save_offset
= ndr
->offset
;
12953 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
12954 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12955 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
12956 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
12957 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
12958 ndr
->offset
= _relative_save_offset
;
12960 ndr
->flags
= _flags_save_string_array
;
12963 uint32_t _flags_save_string_array
= ndr
->flags
;
12964 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12965 if (r
->previous_names
) {
12966 uint32_t _relative_save_offset
;
12967 _relative_save_offset
= ndr
->offset
;
12968 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
12969 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12970 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
12971 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
12972 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
12973 ndr
->offset
= _relative_save_offset
;
12975 ndr
->flags
= _flags_save_string_array
;
12978 uint32_t _flags_save_string
= ndr
->flags
;
12979 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12980 if (r
->manufacturer_name
) {
12981 uint32_t _relative_save_offset
;
12982 _relative_save_offset
= ndr
->offset
;
12983 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
12984 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12985 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
12986 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
12987 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
12988 ndr
->offset
= _relative_save_offset
;
12990 ndr
->flags
= _flags_save_string
;
12993 uint32_t _flags_save_string
= ndr
->flags
;
12994 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12995 if (r
->manufacturer_url
) {
12996 uint32_t _relative_save_offset
;
12997 _relative_save_offset
= ndr
->offset
;
12998 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
12999 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13000 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
13001 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
13002 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
13003 ndr
->offset
= _relative_save_offset
;
13005 ndr
->flags
= _flags_save_string
;
13008 uint32_t _flags_save_string
= ndr
->flags
;
13009 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13010 if (r
->hardware_id
) {
13011 uint32_t _relative_save_offset
;
13012 _relative_save_offset
= ndr
->offset
;
13013 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
13014 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13015 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
13016 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
13017 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
13018 ndr
->offset
= _relative_save_offset
;
13020 ndr
->flags
= _flags_save_string
;
13023 uint32_t _flags_save_string
= ndr
->flags
;
13024 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13026 uint32_t _relative_save_offset
;
13027 _relative_save_offset
= ndr
->offset
;
13028 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
13029 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13030 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
13031 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
13032 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
13033 ndr
->offset
= _relative_save_offset
;
13035 ndr
->flags
= _flags_save_string
;
13038 uint32_t _flags_save_string
= ndr
->flags
;
13039 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13040 if (r
->print_processor
) {
13041 uint32_t _relative_save_offset
;
13042 _relative_save_offset
= ndr
->offset
;
13043 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
13044 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13045 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
13046 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
13047 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
13048 ndr
->offset
= _relative_save_offset
;
13050 ndr
->flags
= _flags_save_string
;
13053 uint32_t _flags_save_string
= ndr
->flags
;
13054 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13055 if (r
->vendor_setup
) {
13056 uint32_t _relative_save_offset
;
13057 _relative_save_offset
= ndr
->offset
;
13058 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->vendor_setup
));
13059 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13060 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
13061 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->vendor_setup
));
13062 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
13063 ndr
->offset
= _relative_save_offset
;
13065 ndr
->flags
= _flags_save_string
;
13068 uint32_t _flags_save_string_array
= ndr
->flags
;
13069 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13070 if (r
->color_profiles
) {
13071 uint32_t _relative_save_offset
;
13072 _relative_save_offset
= ndr
->offset
;
13073 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->color_profiles
));
13074 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13075 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
13076 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->color_profiles
));
13077 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
13078 ndr
->offset
= _relative_save_offset
;
13080 ndr
->flags
= _flags_save_string_array
;
13083 uint32_t _flags_save_string
= ndr
->flags
;
13084 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13086 uint32_t _relative_save_offset
;
13087 _relative_save_offset
= ndr
->offset
;
13088 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_path
));
13089 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13090 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
13091 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_path
));
13092 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
13093 ndr
->offset
= _relative_save_offset
;
13095 ndr
->flags
= _flags_save_string
;
13098 uint32_t _flags_save_string_array
= ndr
->flags
;
13099 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13100 if (r
->core_driver_dependencies
) {
13101 uint32_t _relative_save_offset
;
13102 _relative_save_offset
= ndr
->offset
;
13103 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->core_driver_dependencies
));
13104 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13105 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
13106 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->core_driver_dependencies
));
13107 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
13108 ndr
->offset
= _relative_save_offset
;
13110 ndr
->flags
= _flags_save_string_array
;
13113 return NDR_ERR_SUCCESS
;
13116 _PUBLIC_
void ndr_print_spoolss_DriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo8
*r
)
13118 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo8");
13120 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13121 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13123 if (r
->driver_name
) {
13124 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13127 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13129 if (r
->architecture
) {
13130 ndr_print_string(ndr
, "architecture", r
->architecture
);
13133 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
13135 if (r
->driver_path
) {
13136 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
13139 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
13141 if (r
->data_file
) {
13142 ndr_print_string(ndr
, "data_file", r
->data_file
);
13145 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
13147 if (r
->config_file
) {
13148 ndr_print_string(ndr
, "config_file", r
->config_file
);
13151 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
13153 if (r
->help_file
) {
13154 ndr_print_string(ndr
, "help_file", r
->help_file
);
13157 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13159 if (r
->monitor_name
) {
13160 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13163 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13165 if (r
->default_datatype
) {
13166 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13169 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
13171 if (r
->dependent_files
) {
13172 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
13175 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13177 if (r
->previous_names
) {
13178 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13181 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13182 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13183 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13185 if (r
->manufacturer_name
) {
13186 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13189 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13191 if (r
->manufacturer_url
) {
13192 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13195 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13197 if (r
->hardware_id
) {
13198 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13201 ndr_print_ptr(ndr
, "provider", r
->provider
);
13204 ndr_print_string(ndr
, "provider", r
->provider
);
13207 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
13209 if (r
->print_processor
) {
13210 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
13213 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
13215 if (r
->vendor_setup
) {
13216 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
13219 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
13221 if (r
->color_profiles
) {
13222 ndr_print_string_array(ndr
, "color_profiles", r
->color_profiles
);
13225 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
13228 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
13231 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
13232 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
13234 if (r
->core_driver_dependencies
) {
13235 ndr_print_string_array(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
13238 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
13239 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
13243 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13245 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo8
, ic
);
13248 static enum ndr_err_code
ndr_push_spoolss_DriverFileType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverFileType r
)
13250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
13251 return NDR_ERR_SUCCESS
;
13254 static enum ndr_err_code
ndr_pull_spoolss_DriverFileType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverFileType
*r
)
13257 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
13259 return NDR_ERR_SUCCESS
;
13262 _PUBLIC_
void ndr_print_spoolss_DriverFileType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverFileType r
)
13264 const char *val
= NULL
;
13267 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING
: val
= "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13268 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION
: val
= "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13269 case SPOOLSS_DRIVER_FILE_TYPE_DATA
: val
= "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13270 case SPOOLSS_DRIVER_FILE_TYPE_HELP
: val
= "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13271 case SPOOLSS_DRIVER_FILE_TYPE_OTHER
: val
= "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13273 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
13276 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverFileInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverFileInfo
*r
)
13278 if (ndr_flags
& NDR_SCALARS
) {
13279 NDR_CHECK(ndr_push_align(ndr
, 4));
13281 uint32_t _flags_save_string
= ndr
->flags
;
13282 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13283 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->file_name
));
13284 ndr
->flags
= _flags_save_string
;
13286 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr
, NDR_SCALARS
, r
->file_type
));
13287 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->file_version
));
13289 if (ndr_flags
& NDR_BUFFERS
) {
13291 uint32_t _flags_save_string
= ndr
->flags
;
13292 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13293 if (r
->file_name
) {
13294 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->file_name
));
13295 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->file_name
));
13297 ndr
->flags
= _flags_save_string
;
13300 return NDR_ERR_SUCCESS
;
13303 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverFileInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverFileInfo
*r
)
13305 uint32_t _ptr_file_name
;
13306 TALLOC_CTX
*_mem_save_file_name_0
;
13307 if (ndr_flags
& NDR_SCALARS
) {
13308 NDR_CHECK(ndr_pull_align(ndr
, 4));
13310 uint32_t _flags_save_string
= ndr
->flags
;
13311 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13312 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_file_name
));
13313 if (_ptr_file_name
) {
13314 NDR_PULL_ALLOC(ndr
, r
->file_name
);
13315 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->file_name
, _ptr_file_name
));
13317 r
->file_name
= NULL
;
13319 ndr
->flags
= _flags_save_string
;
13321 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr
, NDR_SCALARS
, &r
->file_type
));
13322 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->file_version
));
13324 if (ndr_flags
& NDR_BUFFERS
) {
13326 uint32_t _flags_save_string
= ndr
->flags
;
13327 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13328 if (r
->file_name
) {
13329 uint32_t _relative_save_offset
;
13330 _relative_save_offset
= ndr
->offset
;
13331 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->file_name
));
13332 _mem_save_file_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13333 NDR_PULL_SET_MEM_CTX(ndr
, r
->file_name
, 0);
13334 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->file_name
));
13335 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_file_name_0
, 0);
13336 ndr
->offset
= _relative_save_offset
;
13338 ndr
->flags
= _flags_save_string
;
13341 return NDR_ERR_SUCCESS
;
13344 _PUBLIC_
void ndr_print_spoolss_DriverFileInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverFileInfo
*r
)
13346 ndr_print_struct(ndr
, name
, "spoolss_DriverFileInfo");
13348 ndr_print_ptr(ndr
, "file_name", r
->file_name
);
13350 if (r
->file_name
) {
13351 ndr_print_string(ndr
, "file_name", r
->file_name
);
13354 ndr_print_spoolss_DriverFileType(ndr
, "file_type", r
->file_type
);
13355 ndr_print_uint32(ndr
, "file_version", r
->file_version
);
13359 _PUBLIC_
void ndr_print_spoolss_DriverInfo101(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo101
*r
)
13361 uint32_t cntr_file_info_1
;
13362 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo101");
13364 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13365 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13367 if (r
->driver_name
) {
13368 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13371 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13373 if (r
->architecture
) {
13374 ndr_print_string(ndr
, "architecture", r
->architecture
);
13377 ndr_print_ptr(ndr
, "file_info", r
->file_info
);
13379 if (r
->file_info
) {
13380 ndr
->print(ndr
, "%s: ARRAY(%d)", "file_info", (int)r
->file_count
);
13382 for (cntr_file_info_1
=0;cntr_file_info_1
<r
->file_count
;cntr_file_info_1
++) {
13384 if (asprintf(&idx_1
, "[%d]", cntr_file_info_1
) != -1) {
13385 ndr_print_spoolss_DriverFileInfo(ndr
, "file_info", &r
->file_info
[cntr_file_info_1
]);
13392 ndr_print_uint32(ndr
, "file_count", r
->file_count
);
13393 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13395 if (r
->monitor_name
) {
13396 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13399 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13401 if (r
->default_datatype
) {
13402 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13405 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13407 if (r
->previous_names
) {
13408 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13411 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13412 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13413 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13415 if (r
->manufacturer_name
) {
13416 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13419 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13421 if (r
->manufacturer_url
) {
13422 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13425 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13427 if (r
->hardware_id
) {
13428 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13431 ndr_print_ptr(ndr
, "provider", r
->provider
);
13434 ndr_print_string(ndr
, "provider", r
->provider
);
13440 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13442 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo101
, ic
);
13445 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverInfo
*r
)
13447 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
13448 if (ndr_flags
& NDR_SCALARS
) {
13449 int level
= ndr_push_get_switch_value(ndr
, r
);
13452 NDR_CHECK(ndr_push_align(ndr
, 4));
13453 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13454 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13458 NDR_CHECK(ndr_push_align(ndr
, 4));
13459 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13460 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
13464 NDR_CHECK(ndr_push_align(ndr
, 4));
13465 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13466 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
13470 NDR_CHECK(ndr_push_align(ndr
, 4));
13471 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13472 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
13476 NDR_CHECK(ndr_push_align(ndr
, 4));
13477 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13478 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
13482 NDR_CHECK(ndr_push_align(ndr
, 8));
13483 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13484 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
13488 NDR_CHECK(ndr_push_align(ndr
, 8));
13489 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13490 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
13494 NDR_CHECK(ndr_push_align(ndr
, 8));
13495 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13496 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
13504 if (ndr_flags
& NDR_BUFFERS
) {
13505 int level
= ndr_push_get_switch_value(ndr
, r
);
13506 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
13509 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13513 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
13517 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
13521 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
13525 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
13529 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
13533 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
13537 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
13545 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13546 return NDR_ERR_SUCCESS
;
13549 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverInfo
*r
)
13551 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
13553 level
= ndr_pull_get_switch_value(ndr
, r
);
13554 if (ndr_flags
& NDR_SCALARS
) {
13557 NDR_CHECK(ndr_pull_align(ndr
, 4));
13558 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13559 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13563 NDR_CHECK(ndr_pull_align(ndr
, 4));
13564 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13565 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
13569 NDR_CHECK(ndr_pull_align(ndr
, 4));
13570 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13571 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
13575 NDR_CHECK(ndr_pull_align(ndr
, 4));
13576 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13577 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
13581 NDR_CHECK(ndr_pull_align(ndr
, 4));
13582 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13583 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
13587 NDR_CHECK(ndr_pull_align(ndr
, 8));
13588 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13589 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
13593 NDR_CHECK(ndr_pull_align(ndr
, 8));
13594 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13595 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
13599 NDR_CHECK(ndr_pull_align(ndr
, 8));
13600 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13601 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
13609 if (ndr_flags
& NDR_BUFFERS
) {
13610 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
13613 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13617 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
13621 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
13625 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
13629 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
13633 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
13637 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
13641 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
13649 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13650 return NDR_ERR_SUCCESS
;
13653 _PUBLIC_
void ndr_print_spoolss_DriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverInfo
*r
)
13656 level
= ndr_print_get_switch_value(ndr
, r
);
13657 ndr_print_union(ndr
, name
, level
, "spoolss_DriverInfo");
13660 ndr_print_spoolss_DriverInfo1(ndr
, "info1", &r
->info1
);
13664 ndr_print_spoolss_DriverInfo2(ndr
, "info2", &r
->info2
);
13668 ndr_print_spoolss_DriverInfo3(ndr
, "info3", &r
->info3
);
13672 ndr_print_spoolss_DriverInfo4(ndr
, "info4", &r
->info4
);
13676 ndr_print_spoolss_DriverInfo5(ndr
, "info5", &r
->info5
);
13680 ndr_print_spoolss_DriverInfo6(ndr
, "info6", &r
->info6
);
13684 ndr_print_spoolss_DriverInfo8(ndr
, "info8", &r
->info8
);
13688 ndr_print_spoolss_DriverInfo101(ndr
, "info101", &r
->info101
);
13697 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverDirectoryInfo1
*r
)
13699 if (ndr_flags
& NDR_SCALARS
) {
13700 NDR_CHECK(ndr_push_align(ndr
, 4));
13702 uint32_t _flags_save_string
= ndr
->flags
;
13703 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13704 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
13705 ndr
->flags
= _flags_save_string
;
13708 if (ndr_flags
& NDR_BUFFERS
) {
13710 return NDR_ERR_SUCCESS
;
13713 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverDirectoryInfo1
*r
)
13715 if (ndr_flags
& NDR_SCALARS
) {
13716 NDR_CHECK(ndr_pull_align(ndr
, 4));
13718 uint32_t _flags_save_string
= ndr
->flags
;
13719 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13720 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
13721 ndr
->flags
= _flags_save_string
;
13724 if (ndr_flags
& NDR_BUFFERS
) {
13726 return NDR_ERR_SUCCESS
;
13729 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverDirectoryInfo1
*r
)
13731 ndr_print_struct(ndr
, name
, "spoolss_DriverDirectoryInfo1");
13733 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
13737 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13739 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo1
, ic
);
13742 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverDirectoryInfo
*r
)
13744 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
13745 if (ndr_flags
& NDR_SCALARS
) {
13746 int level
= ndr_push_get_switch_value(ndr
, r
);
13749 NDR_CHECK(ndr_push_align(ndr
, 4));
13750 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13751 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13755 NDR_CHECK(ndr_push_align(ndr
, 4));
13756 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13757 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13762 if (ndr_flags
& NDR_BUFFERS
) {
13763 int level
= ndr_push_get_switch_value(ndr
, r
);
13764 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
13774 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13775 return NDR_ERR_SUCCESS
;
13778 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverDirectoryInfo
*r
)
13780 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
13782 level
= ndr_pull_get_switch_value(ndr
, r
);
13783 if (ndr_flags
& NDR_SCALARS
) {
13786 NDR_CHECK(ndr_pull_align(ndr
, 4));
13787 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13788 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13792 NDR_CHECK(ndr_pull_align(ndr
, 4));
13793 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13794 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13799 if (ndr_flags
& NDR_BUFFERS
) {
13800 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
13810 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13811 return NDR_ERR_SUCCESS
;
13814 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverDirectoryInfo
*r
)
13817 level
= ndr_print_get_switch_value(ndr
, r
);
13818 ndr_print_union(ndr
, name
, level
, "spoolss_DriverDirectoryInfo");
13821 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
13825 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
13831 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
13833 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo
, ic
);
13836 static enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorInfo1
*r
)
13838 if (ndr_flags
& NDR_SCALARS
) {
13839 NDR_CHECK(ndr_push_align(ndr
, 4));
13841 uint32_t _flags_save_string
= ndr
->flags
;
13842 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13843 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor_name
));
13844 ndr
->flags
= _flags_save_string
;
13847 if (ndr_flags
& NDR_BUFFERS
) {
13849 uint32_t _flags_save_string
= ndr
->flags
;
13850 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13851 if (r
->print_processor_name
) {
13852 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor_name
));
13853 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor_name
));
13855 ndr
->flags
= _flags_save_string
;
13858 return NDR_ERR_SUCCESS
;
13861 static enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorInfo1
*r
)
13863 uint32_t _ptr_print_processor_name
;
13864 TALLOC_CTX
*_mem_save_print_processor_name_0
;
13865 if (ndr_flags
& NDR_SCALARS
) {
13866 NDR_CHECK(ndr_pull_align(ndr
, 4));
13868 uint32_t _flags_save_string
= ndr
->flags
;
13869 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13870 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
13871 if (_ptr_print_processor_name
) {
13872 NDR_PULL_ALLOC(ndr
, r
->print_processor_name
);
13873 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor_name
, _ptr_print_processor_name
));
13875 r
->print_processor_name
= NULL
;
13877 ndr
->flags
= _flags_save_string
;
13880 if (ndr_flags
& NDR_BUFFERS
) {
13882 uint32_t _flags_save_string
= ndr
->flags
;
13883 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13884 if (r
->print_processor_name
) {
13885 uint32_t _relative_save_offset
;
13886 _relative_save_offset
= ndr
->offset
;
13887 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor_name
));
13888 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13889 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor_name
, 0);
13890 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor_name
));
13891 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
13892 ndr
->offset
= _relative_save_offset
;
13894 ndr
->flags
= _flags_save_string
;
13897 return NDR_ERR_SUCCESS
;
13900 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorInfo1
*r
)
13902 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorInfo1");
13904 ndr_print_ptr(ndr
, "print_processor_name", r
->print_processor_name
);
13906 if (r
->print_processor_name
) {
13907 ndr_print_string(ndr
, "print_processor_name", r
->print_processor_name
);
13913 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorInfo
*r
)
13915 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
13916 if (ndr_flags
& NDR_SCALARS
) {
13917 int level
= ndr_push_get_switch_value(ndr
, r
);
13920 NDR_CHECK(ndr_push_align(ndr
, 4));
13921 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13922 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13930 if (ndr_flags
& NDR_BUFFERS
) {
13931 int level
= ndr_push_get_switch_value(ndr
, r
);
13932 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
13935 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13943 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13944 return NDR_ERR_SUCCESS
;
13947 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorInfo
*r
)
13949 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
13951 level
= ndr_pull_get_switch_value(ndr
, r
);
13952 if (ndr_flags
& NDR_SCALARS
) {
13955 NDR_CHECK(ndr_pull_align(ndr
, 4));
13956 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13957 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13965 if (ndr_flags
& NDR_BUFFERS
) {
13966 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
13969 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13977 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13978 return NDR_ERR_SUCCESS
;
13981 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorInfo
*r
)
13984 level
= ndr_print_get_switch_value(ndr
, r
);
13985 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorInfo");
13988 ndr_print_spoolss_PrintProcessorInfo1(ndr
, "info1", &r
->info1
);
13997 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
13999 if (ndr_flags
& NDR_SCALARS
) {
14000 NDR_CHECK(ndr_push_align(ndr
, 4));
14002 uint32_t _flags_save_string
= ndr
->flags
;
14003 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14004 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
14005 ndr
->flags
= _flags_save_string
;
14008 if (ndr_flags
& NDR_BUFFERS
) {
14010 return NDR_ERR_SUCCESS
;
14013 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14015 if (ndr_flags
& NDR_SCALARS
) {
14016 NDR_CHECK(ndr_pull_align(ndr
, 4));
14018 uint32_t _flags_save_string
= ndr
->flags
;
14019 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14020 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
14021 ndr
->flags
= _flags_save_string
;
14024 if (ndr_flags
& NDR_BUFFERS
) {
14026 return NDR_ERR_SUCCESS
;
14029 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14031 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorDirectoryInfo1");
14033 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
14037 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14039 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo1
, ic
);
14042 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
14044 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14045 if (ndr_flags
& NDR_SCALARS
) {
14046 int level
= ndr_push_get_switch_value(ndr
, r
);
14049 NDR_CHECK(ndr_push_align(ndr
, 4));
14050 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14051 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14055 NDR_CHECK(ndr_push_align(ndr
, 4));
14056 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14057 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14062 if (ndr_flags
& NDR_BUFFERS
) {
14063 int level
= ndr_push_get_switch_value(ndr
, r
);
14064 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14074 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14075 return NDR_ERR_SUCCESS
;
14078 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorDirectoryInfo
*r
)
14080 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14082 level
= ndr_pull_get_switch_value(ndr
, r
);
14083 if (ndr_flags
& NDR_SCALARS
) {
14086 NDR_CHECK(ndr_pull_align(ndr
, 4));
14087 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14088 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14092 NDR_CHECK(ndr_pull_align(ndr
, 4));
14093 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14094 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14099 if (ndr_flags
& NDR_BUFFERS
) {
14100 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14110 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14111 return NDR_ERR_SUCCESS
;
14114 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
14117 level
= ndr_print_get_switch_value(ndr
, r
);
14118 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorDirectoryInfo");
14121 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14125 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14131 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14133 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo
, ic
);
14136 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DocumentInfo1
*r
)
14138 if (ndr_flags
& NDR_SCALARS
) {
14139 NDR_CHECK(ndr_push_align(ndr
, 4));
14140 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
14141 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->output_file
));
14142 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
14144 if (ndr_flags
& NDR_BUFFERS
) {
14145 if (r
->document_name
) {
14146 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14149 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14151 if (r
->output_file
) {
14152 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14153 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14154 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14155 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->output_file
, ndr_charset_length(r
->output_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14158 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
14159 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14160 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
14161 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14164 return NDR_ERR_SUCCESS
;
14167 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DocumentInfo1
*r
)
14169 uint32_t _ptr_document_name
;
14170 TALLOC_CTX
*_mem_save_document_name_0
;
14171 uint32_t _ptr_output_file
;
14172 TALLOC_CTX
*_mem_save_output_file_0
;
14173 uint32_t _ptr_datatype
;
14174 TALLOC_CTX
*_mem_save_datatype_0
;
14175 if (ndr_flags
& NDR_SCALARS
) {
14176 NDR_CHECK(ndr_pull_align(ndr
, 4));
14177 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
14178 if (_ptr_document_name
) {
14179 NDR_PULL_ALLOC(ndr
, r
->document_name
);
14181 r
->document_name
= NULL
;
14183 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_output_file
));
14184 if (_ptr_output_file
) {
14185 NDR_PULL_ALLOC(ndr
, r
->output_file
);
14187 r
->output_file
= NULL
;
14189 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
14190 if (_ptr_datatype
) {
14191 NDR_PULL_ALLOC(ndr
, r
->datatype
);
14193 r
->datatype
= NULL
;
14196 if (ndr_flags
& NDR_BUFFERS
) {
14197 if (r
->document_name
) {
14198 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14199 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
14200 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
14201 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
14202 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
14203 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
));
14205 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
14206 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
14207 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
14209 if (r
->output_file
) {
14210 _mem_save_output_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14211 NDR_PULL_SET_MEM_CTX(ndr
, r
->output_file
, 0);
14212 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->output_file
));
14213 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->output_file
));
14214 if (ndr_get_array_length(ndr
, &r
->output_file
) > ndr_get_array_size(ndr
, &r
->output_file
)) {
14215 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
));
14217 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t)));
14218 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->output_file
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t), CH_UTF16
));
14219 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_output_file_0
, 0);
14222 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14223 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
14224 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
14225 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
14226 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
14227 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
));
14229 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
14230 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
14231 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
14234 return NDR_ERR_SUCCESS
;
14237 _PUBLIC_
void ndr_print_spoolss_DocumentInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DocumentInfo1
*r
)
14239 ndr_print_struct(ndr
, name
, "spoolss_DocumentInfo1");
14241 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
14243 if (r
->document_name
) {
14244 ndr_print_string(ndr
, "document_name", r
->document_name
);
14247 ndr_print_ptr(ndr
, "output_file", r
->output_file
);
14249 if (r
->output_file
) {
14250 ndr_print_string(ndr
, "output_file", r
->output_file
);
14253 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
14256 ndr_print_string(ndr
, "datatype", r
->datatype
);
14262 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DocumentInfo
*r
)
14264 if (ndr_flags
& NDR_SCALARS
) {
14265 int level
= ndr_push_get_switch_value(ndr
, r
);
14266 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
14269 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
14283 if (ndr_flags
& NDR_BUFFERS
) {
14284 int level
= ndr_push_get_switch_value(ndr
, r
);
14288 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14303 return NDR_ERR_SUCCESS
;
14306 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DocumentInfo
*r
)
14310 TALLOC_CTX
*_mem_save_info1_0
;
14311 level
= ndr_pull_get_switch_value(ndr
, r
);
14312 if (ndr_flags
& NDR_SCALARS
) {
14313 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
14314 if (_level
!= level
) {
14315 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
14319 uint32_t _ptr_info1
;
14320 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
14322 NDR_PULL_ALLOC(ndr
, r
->info1
);
14339 if (ndr_flags
& NDR_BUFFERS
) {
14343 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14344 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
14345 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14346 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
14361 return NDR_ERR_SUCCESS
;
14364 _PUBLIC_
void ndr_print_spoolss_DocumentInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DocumentInfo
*r
)
14367 level
= ndr_print_get_switch_value(ndr
, r
);
14368 ndr_print_union(ndr
, name
, level
, "spoolss_DocumentInfo");
14371 ndr_print_ptr(ndr
, "info1", r
->info1
);
14374 ndr_print_spoolss_DocumentInfo1(ndr
, "info1", r
->info1
);
14391 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersion
*r
)
14393 if (ndr_flags
& NDR_SCALARS
) {
14394 NDR_CHECK(ndr_push_align(ndr
, 4));
14395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersion(r
, ndr
->iconv_convenience
, ndr
->flags
)));
14396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
14397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
14398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
14399 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
14401 uint32_t _flags_save_string
= ndr
->flags
;
14402 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14404 struct ndr_push
*_ndr_extra_string
;
14405 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14406 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
14407 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14409 ndr
->flags
= _flags_save_string
;
14412 if (ndr_flags
& NDR_BUFFERS
) {
14414 return NDR_ERR_SUCCESS
;
14417 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersion
*r
)
14419 if (ndr_flags
& NDR_SCALARS
) {
14420 NDR_CHECK(ndr_pull_align(ndr
, 4));
14421 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
14422 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
14423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
14424 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
14425 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
));
14427 uint32_t _flags_save_string
= ndr
->flags
;
14428 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14430 struct ndr_pull
*_ndr_extra_string
;
14431 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14432 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
14433 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14435 ndr
->flags
= _flags_save_string
;
14438 if (ndr_flags
& NDR_BUFFERS
) {
14440 return NDR_ERR_SUCCESS
;
14443 _PUBLIC_
void ndr_print_spoolss_OSVersion(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersion
*r
)
14445 ndr_print_struct(ndr
, name
, "spoolss_OSVersion");
14447 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
);
14448 ndr_print_uint32(ndr
, "major", r
->major
);
14449 ndr_print_uint32(ndr
, "minor", r
->minor
);
14450 ndr_print_uint32(ndr
, "build", r
->build
);
14451 ndr_print_uint32(ndr
, "unknown", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->unknown
);
14452 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
14456 _PUBLIC_
size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14458 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersion
, ic
);
14461 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersionEx(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersionEx
*r
)
14463 if (ndr_flags
& NDR_SCALARS
) {
14464 NDR_CHECK(ndr_push_align(ndr
, 4));
14465 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersionEx(r
, ndr
->iconv_convenience
, ndr
->flags
)));
14466 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
14467 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
14468 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
14469 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
14471 uint32_t _flags_save_string
= ndr
->flags
;
14472 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14474 struct ndr_push
*_ndr_extra_string
;
14475 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14476 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
14477 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14479 ndr
->flags
= _flags_save_string
;
14481 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
14482 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
14484 if (ndr_flags
& NDR_BUFFERS
) {
14486 return NDR_ERR_SUCCESS
;
14489 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersionEx(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersionEx
*r
)
14491 if (ndr_flags
& NDR_SCALARS
) {
14492 NDR_CHECK(ndr_pull_align(ndr
, 4));
14493 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
14494 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
14495 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
14496 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
14497 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
14499 uint32_t _flags_save_string
= ndr
->flags
;
14500 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14502 struct ndr_pull
*_ndr_extra_string
;
14503 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14504 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
14505 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14507 ndr
->flags
= _flags_save_string
;
14509 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
14510 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
14512 if (ndr_flags
& NDR_BUFFERS
) {
14514 return NDR_ERR_SUCCESS
;
14517 _PUBLIC_
void ndr_print_spoolss_OSVersionEx(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersionEx
*r
)
14519 ndr_print_struct(ndr
, name
, "spoolss_OSVersionEx");
14521 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
);
14522 ndr_print_uint32(ndr
, "major", r
->major
);
14523 ndr_print_uint32(ndr
, "minor", r
->minor
);
14524 ndr_print_uint32(ndr
, "build", r
->build
);
14525 ndr_print_uint32(ndr
, "unknown1", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->unknown1
);
14526 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
14527 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
14528 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
14532 _PUBLIC_
size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14534 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersionEx
, ic
);
14537 static enum ndr_err_code
ndr_push_spoolss_PrinterDataType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrinterDataType r
)
14539 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
14540 return NDR_ERR_SUCCESS
;
14543 static enum ndr_err_code
ndr_pull_spoolss_PrinterDataType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrinterDataType
*r
)
14546 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
14548 return NDR_ERR_SUCCESS
;
14551 _PUBLIC_
void ndr_print_spoolss_PrinterDataType(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrinterDataType r
)
14553 const char *val
= NULL
;
14556 case SPOOLSS_PRINTER_DATA_TYPE_NULL
: val
= "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
14557 case SPOOLSS_PRINTER_DATA_TYPE_STRING
: val
= "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
14558 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
: val
= "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
14559 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
: val
= "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
14560 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
: val
= "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
14562 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
14565 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterData
*r
)
14567 if (ndr_flags
& NDR_SCALARS
) {
14568 int level
= ndr_push_get_switch_value(ndr
, r
);
14570 case SPOOLSS_PRINTER_DATA_TYPE_NULL
: {
14573 case SPOOLSS_PRINTER_DATA_TYPE_STRING
: {
14575 uint32_t _flags_save_string
= ndr
->flags
;
14576 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14577 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->string
));
14578 ndr
->flags
= _flags_save_string
;
14582 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
: {
14584 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14585 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14586 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
14587 ndr
->flags
= _flags_save_DATA_BLOB
;
14591 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
: {
14592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->value
));
14595 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
: {
14597 uint32_t _flags_save_string_array
= ndr
->flags
;
14598 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14599 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
14600 ndr
->flags
= _flags_save_string_array
;
14606 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14607 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14608 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->data
));
14609 ndr
->flags
= _flags_save_DATA_BLOB
;
14615 if (ndr_flags
& NDR_BUFFERS
) {
14616 int level
= ndr_push_get_switch_value(ndr
, r
);
14618 case SPOOLSS_PRINTER_DATA_TYPE_NULL
:
14621 case SPOOLSS_PRINTER_DATA_TYPE_STRING
:
14624 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
:
14627 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
:
14630 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
:
14638 return NDR_ERR_SUCCESS
;
14641 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterData
*r
)
14644 level
= ndr_pull_get_switch_value(ndr
, r
);
14645 if (ndr_flags
& NDR_SCALARS
) {
14647 case SPOOLSS_PRINTER_DATA_TYPE_NULL
: {
14650 case SPOOLSS_PRINTER_DATA_TYPE_STRING
: {
14652 uint32_t _flags_save_string
= ndr
->flags
;
14653 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14654 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->string
));
14655 ndr
->flags
= _flags_save_string
;
14659 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
: {
14661 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14662 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14663 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->binary
));
14664 ndr
->flags
= _flags_save_DATA_BLOB
;
14668 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
: {
14669 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value
));
14672 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
: {
14674 uint32_t _flags_save_string_array
= ndr
->flags
;
14675 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14676 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
14677 ndr
->flags
= _flags_save_string_array
;
14683 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14684 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14685 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->data
));
14686 ndr
->flags
= _flags_save_DATA_BLOB
;
14692 if (ndr_flags
& NDR_BUFFERS
) {
14694 case SPOOLSS_PRINTER_DATA_TYPE_NULL
:
14697 case SPOOLSS_PRINTER_DATA_TYPE_STRING
:
14700 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
:
14703 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
:
14706 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
:
14714 return NDR_ERR_SUCCESS
;
14717 _PUBLIC_
void ndr_print_spoolss_PrinterData(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterData
*r
)
14720 level
= ndr_print_get_switch_value(ndr
, r
);
14721 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterData");
14723 case SPOOLSS_PRINTER_DATA_TYPE_NULL
:
14726 case SPOOLSS_PRINTER_DATA_TYPE_STRING
:
14727 ndr_print_string(ndr
, "string", r
->string
);
14730 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
:
14731 ndr_print_DATA_BLOB(ndr
, "binary", r
->binary
);
14734 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
:
14735 ndr_print_uint32(ndr
, "value", r
->value
);
14738 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
:
14739 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
14743 ndr_print_DATA_BLOB(ndr
, "data", r
->data
);
14749 _PUBLIC_
size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14751 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterData
, ic
);
14754 static enum ndr_err_code
ndr_push_spoolss_FormFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_FormFlags r
)
14756 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
14757 return NDR_ERR_SUCCESS
;
14760 static enum ndr_err_code
ndr_pull_spoolss_FormFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_FormFlags
*r
)
14763 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
14765 return NDR_ERR_SUCCESS
;
14768 _PUBLIC_
void ndr_print_spoolss_FormFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_FormFlags r
)
14770 const char *val
= NULL
;
14773 case SPOOLSS_FORM_USER
: val
= "SPOOLSS_FORM_USER"; break;
14774 case SPOOLSS_FORM_BUILTIN
: val
= "SPOOLSS_FORM_BUILTIN"; break;
14775 case SPOOLSS_FORM_PRINTER
: val
= "SPOOLSS_FORM_PRINTER"; break;
14777 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
14780 static enum ndr_err_code
ndr_push_spoolss_FormSize(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormSize
*r
)
14782 if (ndr_flags
& NDR_SCALARS
) {
14783 NDR_CHECK(ndr_push_align(ndr
, 4));
14784 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->width
));
14785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->height
));
14787 if (ndr_flags
& NDR_BUFFERS
) {
14789 return NDR_ERR_SUCCESS
;
14792 static enum ndr_err_code
ndr_pull_spoolss_FormSize(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormSize
*r
)
14794 if (ndr_flags
& NDR_SCALARS
) {
14795 NDR_CHECK(ndr_pull_align(ndr
, 4));
14796 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->width
));
14797 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->height
));
14799 if (ndr_flags
& NDR_BUFFERS
) {
14801 return NDR_ERR_SUCCESS
;
14804 _PUBLIC_
void ndr_print_spoolss_FormSize(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormSize
*r
)
14806 ndr_print_struct(ndr
, name
, "spoolss_FormSize");
14808 ndr_print_uint32(ndr
, "width", r
->width
);
14809 ndr_print_uint32(ndr
, "height", r
->height
);
14813 static enum ndr_err_code
ndr_push_spoolss_FormArea(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormArea
*r
)
14815 if (ndr_flags
& NDR_SCALARS
) {
14816 NDR_CHECK(ndr_push_align(ndr
, 4));
14817 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->left
));
14818 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->top
));
14819 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->right
));
14820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bottom
));
14822 if (ndr_flags
& NDR_BUFFERS
) {
14824 return NDR_ERR_SUCCESS
;
14827 static enum ndr_err_code
ndr_pull_spoolss_FormArea(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormArea
*r
)
14829 if (ndr_flags
& NDR_SCALARS
) {
14830 NDR_CHECK(ndr_pull_align(ndr
, 4));
14831 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->left
));
14832 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->top
));
14833 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->right
));
14834 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bottom
));
14836 if (ndr_flags
& NDR_BUFFERS
) {
14838 return NDR_ERR_SUCCESS
;
14841 _PUBLIC_
void ndr_print_spoolss_FormArea(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormArea
*r
)
14843 ndr_print_struct(ndr
, name
, "spoolss_FormArea");
14845 ndr_print_uint32(ndr
, "left", r
->left
);
14846 ndr_print_uint32(ndr
, "top", r
->top
);
14847 ndr_print_uint32(ndr
, "right", r
->right
);
14848 ndr_print_uint32(ndr
, "bottom", r
->bottom
);
14852 static enum ndr_err_code
ndr_push_spoolss_FormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo1
*r
)
14854 if (ndr_flags
& NDR_SCALARS
) {
14855 NDR_CHECK(ndr_push_align(ndr
, 4));
14856 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
14858 uint32_t _flags_save_string
= ndr
->flags
;
14859 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14860 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
14861 ndr
->flags
= _flags_save_string
;
14863 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
14864 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
14866 if (ndr_flags
& NDR_BUFFERS
) {
14868 uint32_t _flags_save_string
= ndr
->flags
;
14869 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14870 if (r
->form_name
) {
14871 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
14872 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
14874 ndr
->flags
= _flags_save_string
;
14877 return NDR_ERR_SUCCESS
;
14880 static enum ndr_err_code
ndr_pull_spoolss_FormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo1
*r
)
14882 uint32_t _ptr_form_name
;
14883 TALLOC_CTX
*_mem_save_form_name_0
;
14884 if (ndr_flags
& NDR_SCALARS
) {
14885 NDR_CHECK(ndr_pull_align(ndr
, 4));
14886 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
14888 uint32_t _flags_save_string
= ndr
->flags
;
14889 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14890 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
14891 if (_ptr_form_name
) {
14892 NDR_PULL_ALLOC(ndr
, r
->form_name
);
14893 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
14895 r
->form_name
= NULL
;
14897 ndr
->flags
= _flags_save_string
;
14899 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
14900 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
14902 if (ndr_flags
& NDR_BUFFERS
) {
14904 uint32_t _flags_save_string
= ndr
->flags
;
14905 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14906 if (r
->form_name
) {
14907 uint32_t _relative_save_offset
;
14908 _relative_save_offset
= ndr
->offset
;
14909 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
14910 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14911 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
14912 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
14913 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
14914 ndr
->offset
= _relative_save_offset
;
14916 ndr
->flags
= _flags_save_string
;
14919 return NDR_ERR_SUCCESS
;
14922 _PUBLIC_
void ndr_print_spoolss_FormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo1
*r
)
14924 ndr_print_struct(ndr
, name
, "spoolss_FormInfo1");
14926 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
14927 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
14929 if (r
->form_name
) {
14930 ndr_print_string(ndr
, "form_name", r
->form_name
);
14933 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
14934 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
14938 static enum ndr_err_code
ndr_push_spoolss_FormStringType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
14940 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
14941 return NDR_ERR_SUCCESS
;
14944 static enum ndr_err_code
ndr_pull_spoolss_FormStringType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
14947 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
14949 return NDR_ERR_SUCCESS
;
14952 _PUBLIC_
void ndr_print_spoolss_FormStringType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
14954 ndr_print_uint32(ndr
, name
, r
);
14956 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE
, r
);
14957 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL
, r
);
14958 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR
, r
);
14962 static enum ndr_err_code
ndr_push_spoolss_FormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo2
*r
)
14964 if (ndr_flags
& NDR_SCALARS
) {
14965 NDR_CHECK(ndr_push_align(ndr
, 4));
14966 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
14968 uint32_t _flags_save_string
= ndr
->flags
;
14969 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14970 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
14971 ndr
->flags
= _flags_save_string
;
14973 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
14974 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
14976 uint32_t _flags_save_string
= ndr
->flags
;
14977 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
14978 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->keyword
));
14979 ndr
->flags
= _flags_save_string
;
14981 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
14983 uint32_t _flags_save_string
= ndr
->flags
;
14984 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14985 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->mui_dll
));
14986 ndr
->flags
= _flags_save_string
;
14988 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
14990 uint32_t _flags_save_string
= ndr
->flags
;
14991 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14992 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->display_name
));
14993 ndr
->flags
= _flags_save_string
;
14995 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
14997 if (ndr_flags
& NDR_BUFFERS
) {
14999 uint32_t _flags_save_string
= ndr
->flags
;
15000 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15001 if (r
->form_name
) {
15002 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
15003 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
15005 ndr
->flags
= _flags_save_string
;
15008 uint32_t _flags_save_string
= ndr
->flags
;
15009 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15011 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->keyword
));
15012 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->keyword
));
15014 ndr
->flags
= _flags_save_string
;
15017 uint32_t _flags_save_string
= ndr
->flags
;
15018 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15020 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->mui_dll
));
15021 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mui_dll
));
15023 ndr
->flags
= _flags_save_string
;
15026 uint32_t _flags_save_string
= ndr
->flags
;
15027 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15028 if (r
->display_name
) {
15029 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->display_name
));
15030 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->display_name
));
15032 ndr
->flags
= _flags_save_string
;
15035 return NDR_ERR_SUCCESS
;
15038 static enum ndr_err_code
ndr_pull_spoolss_FormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo2
*r
)
15040 uint32_t _ptr_form_name
;
15041 TALLOC_CTX
*_mem_save_form_name_0
;
15042 uint32_t _ptr_keyword
;
15043 TALLOC_CTX
*_mem_save_keyword_0
;
15044 uint32_t _ptr_mui_dll
;
15045 TALLOC_CTX
*_mem_save_mui_dll_0
;
15046 uint32_t _ptr_display_name
;
15047 TALLOC_CTX
*_mem_save_display_name_0
;
15048 if (ndr_flags
& NDR_SCALARS
) {
15049 NDR_CHECK(ndr_pull_align(ndr
, 4));
15050 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15052 uint32_t _flags_save_string
= ndr
->flags
;
15053 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15054 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15055 if (_ptr_form_name
) {
15056 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15057 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
15059 r
->form_name
= NULL
;
15061 ndr
->flags
= _flags_save_string
;
15063 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15064 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15066 uint32_t _flags_save_string
= ndr
->flags
;
15067 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15068 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
15069 if (_ptr_keyword
) {
15070 NDR_PULL_ALLOC(ndr
, r
->keyword
);
15071 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->keyword
, _ptr_keyword
));
15075 ndr
->flags
= _flags_save_string
;
15077 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
15079 uint32_t _flags_save_string
= ndr
->flags
;
15080 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15081 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
15082 if (_ptr_mui_dll
) {
15083 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
15084 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->mui_dll
, _ptr_mui_dll
));
15088 ndr
->flags
= _flags_save_string
;
15090 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
15092 uint32_t _flags_save_string
= ndr
->flags
;
15093 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15094 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
15095 if (_ptr_display_name
) {
15096 NDR_PULL_ALLOC(ndr
, r
->display_name
);
15097 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->display_name
, _ptr_display_name
));
15099 r
->display_name
= NULL
;
15101 ndr
->flags
= _flags_save_string
;
15103 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
15105 if (ndr_flags
& NDR_BUFFERS
) {
15107 uint32_t _flags_save_string
= ndr
->flags
;
15108 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15109 if (r
->form_name
) {
15110 uint32_t _relative_save_offset
;
15111 _relative_save_offset
= ndr
->offset
;
15112 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
15113 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15114 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15115 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
15116 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15117 ndr
->offset
= _relative_save_offset
;
15119 ndr
->flags
= _flags_save_string
;
15122 uint32_t _flags_save_string
= ndr
->flags
;
15123 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15125 uint32_t _relative_save_offset
;
15126 _relative_save_offset
= ndr
->offset
;
15127 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->keyword
));
15128 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15129 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
15130 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->keyword
));
15131 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
15132 ndr
->offset
= _relative_save_offset
;
15134 ndr
->flags
= _flags_save_string
;
15137 uint32_t _flags_save_string
= ndr
->flags
;
15138 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15140 uint32_t _relative_save_offset
;
15141 _relative_save_offset
= ndr
->offset
;
15142 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->mui_dll
));
15143 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15144 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
15145 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mui_dll
));
15146 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
15147 ndr
->offset
= _relative_save_offset
;
15149 ndr
->flags
= _flags_save_string
;
15152 uint32_t _flags_save_string
= ndr
->flags
;
15153 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15154 if (r
->display_name
) {
15155 uint32_t _relative_save_offset
;
15156 _relative_save_offset
= ndr
->offset
;
15157 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->display_name
));
15158 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15159 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
15160 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->display_name
));
15161 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
15162 ndr
->offset
= _relative_save_offset
;
15164 ndr
->flags
= _flags_save_string
;
15167 return NDR_ERR_SUCCESS
;
15170 _PUBLIC_
void ndr_print_spoolss_FormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo2
*r
)
15172 ndr_print_struct(ndr
, name
, "spoolss_FormInfo2");
15174 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15175 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15177 if (r
->form_name
) {
15178 ndr_print_string(ndr
, "form_name", r
->form_name
);
15181 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15182 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15183 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
15186 ndr_print_string(ndr
, "keyword", r
->keyword
);
15189 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
15190 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
15193 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
15196 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
15197 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
15199 if (r
->display_name
) {
15200 ndr_print_string(ndr
, "display_name", r
->display_name
);
15203 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
15207 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_FormInfo
*r
)
15209 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15210 if (ndr_flags
& NDR_SCALARS
) {
15211 int level
= ndr_push_get_switch_value(ndr
, r
);
15214 NDR_CHECK(ndr_push_align(ndr
, 4));
15215 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15216 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15220 NDR_CHECK(ndr_push_align(ndr
, 4));
15221 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15222 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15230 if (ndr_flags
& NDR_BUFFERS
) {
15231 int level
= ndr_push_get_switch_value(ndr
, r
);
15232 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15235 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15239 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15247 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15248 return NDR_ERR_SUCCESS
;
15251 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_FormInfo
*r
)
15253 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15255 level
= ndr_pull_get_switch_value(ndr
, r
);
15256 if (ndr_flags
& NDR_SCALARS
) {
15259 NDR_CHECK(ndr_pull_align(ndr
, 4));
15260 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15261 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15265 NDR_CHECK(ndr_pull_align(ndr
, 4));
15266 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15267 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15275 if (ndr_flags
& NDR_BUFFERS
) {
15276 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15279 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15283 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15291 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15292 return NDR_ERR_SUCCESS
;
15295 _PUBLIC_
void ndr_print_spoolss_FormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_FormInfo
*r
)
15298 level
= ndr_print_get_switch_value(ndr
, r
);
15299 ndr_print_union(ndr
, name
, level
, "spoolss_FormInfo");
15302 ndr_print_spoolss_FormInfo1(ndr
, "info1", &r
->info1
);
15306 ndr_print_spoolss_FormInfo2(ndr
, "info2", &r
->info2
);
15315 _PUBLIC_
size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15317 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo
, ic
);
15320 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo1
*r
)
15322 if (ndr_flags
& NDR_SCALARS
) {
15323 NDR_CHECK(ndr_push_align(ndr
, 4));
15324 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15325 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
15326 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15327 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15329 if (ndr_flags
& NDR_BUFFERS
) {
15330 if (r
->form_name
) {
15331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15333 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15334 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15337 return NDR_ERR_SUCCESS
;
15340 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo1
*r
)
15342 uint32_t _ptr_form_name
;
15343 TALLOC_CTX
*_mem_save_form_name_0
;
15344 if (ndr_flags
& NDR_SCALARS
) {
15345 NDR_CHECK(ndr_pull_align(ndr
, 4));
15346 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15347 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15348 if (_ptr_form_name
) {
15349 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15351 r
->form_name
= NULL
;
15353 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15354 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15356 if (ndr_flags
& NDR_BUFFERS
) {
15357 if (r
->form_name
) {
15358 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15359 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15360 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
15361 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
15362 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
15363 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
));
15365 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
15366 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
15367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15370 return NDR_ERR_SUCCESS
;
15373 _PUBLIC_
void ndr_print_spoolss_AddFormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo1
*r
)
15375 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo1");
15377 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15378 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15380 if (r
->form_name
) {
15381 ndr_print_string(ndr
, "form_name", r
->form_name
);
15384 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15385 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15389 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo2
*r
)
15391 if (ndr_flags
& NDR_SCALARS
) {
15392 NDR_CHECK(ndr_push_align(ndr
, 4));
15393 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15394 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
15395 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15396 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15397 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->keyword
));
15398 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
15399 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->mui_dll
));
15400 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
15401 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->display_name
));
15402 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
15404 if (ndr_flags
& NDR_BUFFERS
) {
15405 if (r
->form_name
) {
15406 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15407 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15409 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15412 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
15413 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15414 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
15415 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->keyword
, ndr_charset_length(r
->keyword
, CH_DOS
), sizeof(uint8_t), CH_DOS
));
15418 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
15419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15420 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
15421 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->mui_dll
, ndr_charset_length(r
->mui_dll
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15423 if (r
->display_name
) {
15424 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
15425 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15426 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
15427 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->display_name
, ndr_charset_length(r
->display_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15430 return NDR_ERR_SUCCESS
;
15433 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo2
*r
)
15435 uint32_t _ptr_form_name
;
15436 TALLOC_CTX
*_mem_save_form_name_0
;
15437 uint32_t _ptr_keyword
;
15438 TALLOC_CTX
*_mem_save_keyword_0
;
15439 uint32_t _ptr_mui_dll
;
15440 TALLOC_CTX
*_mem_save_mui_dll_0
;
15441 uint32_t _ptr_display_name
;
15442 TALLOC_CTX
*_mem_save_display_name_0
;
15443 if (ndr_flags
& NDR_SCALARS
) {
15444 NDR_CHECK(ndr_pull_align(ndr
, 4));
15445 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15446 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15447 if (_ptr_form_name
) {
15448 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15450 r
->form_name
= NULL
;
15452 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15453 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15454 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
15455 if (_ptr_keyword
) {
15456 NDR_PULL_ALLOC(ndr
, r
->keyword
);
15460 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
15461 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
15462 if (_ptr_mui_dll
) {
15463 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
15467 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
15468 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
15469 if (_ptr_display_name
) {
15470 NDR_PULL_ALLOC(ndr
, r
->display_name
);
15472 r
->display_name
= NULL
;
15474 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
15476 if (ndr_flags
& NDR_BUFFERS
) {
15477 if (r
->form_name
) {
15478 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15479 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15480 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
15481 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
15482 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
15483 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
));
15485 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
15486 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
15487 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15490 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15491 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
15492 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->keyword
));
15493 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->keyword
));
15494 if (ndr_get_array_length(ndr
, &r
->keyword
) > ndr_get_array_size(ndr
, &r
->keyword
)) {
15495 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->keyword
), ndr_get_array_length(ndr
, &r
->keyword
));
15497 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t)));
15498 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->keyword
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t), CH_DOS
));
15499 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
15502 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15503 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
15504 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->mui_dll
));
15505 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->mui_dll
));
15506 if (ndr_get_array_length(ndr
, &r
->mui_dll
) > ndr_get_array_size(ndr
, &r
->mui_dll
)) {
15507 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->mui_dll
), ndr_get_array_length(ndr
, &r
->mui_dll
));
15509 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t)));
15510 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->mui_dll
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t), CH_UTF16
));
15511 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
15513 if (r
->display_name
) {
15514 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15515 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
15516 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->display_name
));
15517 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->display_name
));
15518 if (ndr_get_array_length(ndr
, &r
->display_name
) > ndr_get_array_size(ndr
, &r
->display_name
)) {
15519 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->display_name
), ndr_get_array_length(ndr
, &r
->display_name
));
15521 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t)));
15522 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->display_name
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t), CH_UTF16
));
15523 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
15526 return NDR_ERR_SUCCESS
;
15529 _PUBLIC_
void ndr_print_spoolss_AddFormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo2
*r
)
15531 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo2");
15533 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15534 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15536 if (r
->form_name
) {
15537 ndr_print_string(ndr
, "form_name", r
->form_name
);
15540 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15541 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15542 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
15545 ndr_print_string(ndr
, "keyword", r
->keyword
);
15548 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
15549 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
15552 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
15555 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
15556 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
15558 if (r
->display_name
) {
15559 ndr_print_string(ndr
, "display_name", r
->display_name
);
15562 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
15566 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddFormInfo
*r
)
15568 if (ndr_flags
& NDR_SCALARS
) {
15569 int level
= ndr_push_get_switch_value(ndr
, r
);
15570 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
15573 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
15577 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
15581 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15584 if (ndr_flags
& NDR_BUFFERS
) {
15585 int level
= ndr_push_get_switch_value(ndr
, r
);
15589 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
15595 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
15600 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15603 return NDR_ERR_SUCCESS
;
15606 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddFormInfo
*r
)
15610 TALLOC_CTX
*_mem_save_info1_0
;
15611 TALLOC_CTX
*_mem_save_info2_0
;
15612 level
= ndr_pull_get_switch_value(ndr
, r
);
15613 if (ndr_flags
& NDR_SCALARS
) {
15614 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
15615 if (_level
!= level
) {
15616 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
15620 uint32_t _ptr_info1
;
15621 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
15623 NDR_PULL_ALLOC(ndr
, r
->info1
);
15630 uint32_t _ptr_info2
;
15631 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
15633 NDR_PULL_ALLOC(ndr
, r
->info2
);
15640 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15643 if (ndr_flags
& NDR_BUFFERS
) {
15647 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15648 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
15649 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
15650 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
15656 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15657 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
15658 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
15659 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
15664 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15667 return NDR_ERR_SUCCESS
;
15670 _PUBLIC_
void ndr_print_spoolss_AddFormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddFormInfo
*r
)
15673 level
= ndr_print_get_switch_value(ndr
, r
);
15674 ndr_print_union(ndr
, name
, level
, "spoolss_AddFormInfo");
15677 ndr_print_ptr(ndr
, "info1", r
->info1
);
15680 ndr_print_spoolss_AddFormInfo1(ndr
, "info1", r
->info1
);
15686 ndr_print_ptr(ndr
, "info2", r
->info2
);
15689 ndr_print_spoolss_AddFormInfo2(ndr
, "info2", r
->info2
);
15695 ndr_print_bad_level(ndr
, name
, level
);
15699 static enum ndr_err_code
ndr_push_spoolss_PortInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo1
*r
)
15701 if (ndr_flags
& NDR_SCALARS
) {
15702 NDR_CHECK(ndr_push_align(ndr
, 4));
15704 uint32_t _flags_save_string
= ndr
->flags
;
15705 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15706 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
15707 ndr
->flags
= _flags_save_string
;
15710 if (ndr_flags
& NDR_BUFFERS
) {
15712 uint32_t _flags_save_string
= ndr
->flags
;
15713 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15714 if (r
->port_name
) {
15715 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
15716 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
15718 ndr
->flags
= _flags_save_string
;
15721 return NDR_ERR_SUCCESS
;
15724 static enum ndr_err_code
ndr_pull_spoolss_PortInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo1
*r
)
15726 uint32_t _ptr_port_name
;
15727 TALLOC_CTX
*_mem_save_port_name_0
;
15728 if (ndr_flags
& NDR_SCALARS
) {
15729 NDR_CHECK(ndr_pull_align(ndr
, 4));
15731 uint32_t _flags_save_string
= ndr
->flags
;
15732 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15733 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
15734 if (_ptr_port_name
) {
15735 NDR_PULL_ALLOC(ndr
, r
->port_name
);
15736 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
15738 r
->port_name
= NULL
;
15740 ndr
->flags
= _flags_save_string
;
15743 if (ndr_flags
& NDR_BUFFERS
) {
15745 uint32_t _flags_save_string
= ndr
->flags
;
15746 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15747 if (r
->port_name
) {
15748 uint32_t _relative_save_offset
;
15749 _relative_save_offset
= ndr
->offset
;
15750 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
15751 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15752 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
15753 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
15754 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
15755 ndr
->offset
= _relative_save_offset
;
15757 ndr
->flags
= _flags_save_string
;
15760 return NDR_ERR_SUCCESS
;
15763 _PUBLIC_
void ndr_print_spoolss_PortInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo1
*r
)
15765 ndr_print_struct(ndr
, name
, "spoolss_PortInfo1");
15767 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
15769 if (r
->port_name
) {
15770 ndr_print_string(ndr
, "port_name", r
->port_name
);
15776 static enum ndr_err_code
ndr_push_spoolss_PortType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
15778 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15779 return NDR_ERR_SUCCESS
;
15782 static enum ndr_err_code
ndr_pull_spoolss_PortType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
15785 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15787 return NDR_ERR_SUCCESS
;
15790 _PUBLIC_
void ndr_print_spoolss_PortType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
15792 ndr_print_uint32(ndr
, name
, r
);
15794 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE
, r
);
15795 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ
, r
);
15796 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED
, r
);
15797 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED
, r
);
15801 static enum ndr_err_code
ndr_push_spoolss_PortInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo2
*r
)
15803 if (ndr_flags
& NDR_SCALARS
) {
15804 NDR_CHECK(ndr_push_align(ndr
, 4));
15806 uint32_t _flags_save_string
= ndr
->flags
;
15807 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15808 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
15809 ndr
->flags
= _flags_save_string
;
15812 uint32_t _flags_save_string
= ndr
->flags
;
15813 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15814 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
15815 ndr
->flags
= _flags_save_string
;
15818 uint32_t _flags_save_string
= ndr
->flags
;
15819 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15820 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
15821 ndr
->flags
= _flags_save_string
;
15823 NDR_CHECK(ndr_push_spoolss_PortType(ndr
, NDR_SCALARS
, r
->port_type
));
15824 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
15826 if (ndr_flags
& NDR_BUFFERS
) {
15828 uint32_t _flags_save_string
= ndr
->flags
;
15829 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15830 if (r
->port_name
) {
15831 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
15832 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
15834 ndr
->flags
= _flags_save_string
;
15837 uint32_t _flags_save_string
= ndr
->flags
;
15838 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15839 if (r
->monitor_name
) {
15840 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
15841 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
15843 ndr
->flags
= _flags_save_string
;
15846 uint32_t _flags_save_string
= ndr
->flags
;
15847 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15848 if (r
->description
) {
15849 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->description
));
15850 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
15852 ndr
->flags
= _flags_save_string
;
15855 return NDR_ERR_SUCCESS
;
15858 static enum ndr_err_code
ndr_pull_spoolss_PortInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo2
*r
)
15860 uint32_t _ptr_port_name
;
15861 TALLOC_CTX
*_mem_save_port_name_0
;
15862 uint32_t _ptr_monitor_name
;
15863 TALLOC_CTX
*_mem_save_monitor_name_0
;
15864 uint32_t _ptr_description
;
15865 TALLOC_CTX
*_mem_save_description_0
;
15866 if (ndr_flags
& NDR_SCALARS
) {
15867 NDR_CHECK(ndr_pull_align(ndr
, 4));
15869 uint32_t _flags_save_string
= ndr
->flags
;
15870 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15871 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
15872 if (_ptr_port_name
) {
15873 NDR_PULL_ALLOC(ndr
, r
->port_name
);
15874 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
15876 r
->port_name
= NULL
;
15878 ndr
->flags
= _flags_save_string
;
15881 uint32_t _flags_save_string
= ndr
->flags
;
15882 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15883 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
15884 if (_ptr_monitor_name
) {
15885 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
15886 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
15888 r
->monitor_name
= NULL
;
15890 ndr
->flags
= _flags_save_string
;
15893 uint32_t _flags_save_string
= ndr
->flags
;
15894 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15895 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
15896 if (_ptr_description
) {
15897 NDR_PULL_ALLOC(ndr
, r
->description
);
15898 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
15900 r
->description
= NULL
;
15902 ndr
->flags
= _flags_save_string
;
15904 NDR_CHECK(ndr_pull_spoolss_PortType(ndr
, NDR_SCALARS
, &r
->port_type
));
15905 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
15907 if (ndr_flags
& NDR_BUFFERS
) {
15909 uint32_t _flags_save_string
= ndr
->flags
;
15910 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15911 if (r
->port_name
) {
15912 uint32_t _relative_save_offset
;
15913 _relative_save_offset
= ndr
->offset
;
15914 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
15915 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15916 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
15917 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
15918 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
15919 ndr
->offset
= _relative_save_offset
;
15921 ndr
->flags
= _flags_save_string
;
15924 uint32_t _flags_save_string
= ndr
->flags
;
15925 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15926 if (r
->monitor_name
) {
15927 uint32_t _relative_save_offset
;
15928 _relative_save_offset
= ndr
->offset
;
15929 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
15930 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15931 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
15932 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
15933 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
15934 ndr
->offset
= _relative_save_offset
;
15936 ndr
->flags
= _flags_save_string
;
15939 uint32_t _flags_save_string
= ndr
->flags
;
15940 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15941 if (r
->description
) {
15942 uint32_t _relative_save_offset
;
15943 _relative_save_offset
= ndr
->offset
;
15944 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
15945 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15946 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
15947 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
15948 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
15949 ndr
->offset
= _relative_save_offset
;
15951 ndr
->flags
= _flags_save_string
;
15954 return NDR_ERR_SUCCESS
;
15957 _PUBLIC_
void ndr_print_spoolss_PortInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo2
*r
)
15959 ndr_print_struct(ndr
, name
, "spoolss_PortInfo2");
15961 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
15963 if (r
->port_name
) {
15964 ndr_print_string(ndr
, "port_name", r
->port_name
);
15967 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
15969 if (r
->monitor_name
) {
15970 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
15973 ndr_print_ptr(ndr
, "description", r
->description
);
15975 if (r
->description
) {
15976 ndr_print_string(ndr
, "description", r
->description
);
15979 ndr_print_spoolss_PortType(ndr
, "port_type", r
->port_type
);
15980 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
15984 static enum ndr_err_code
ndr_push_spoolss_PortStatus(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortStatus r
)
15986 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15987 return NDR_ERR_SUCCESS
;
15990 static enum ndr_err_code
ndr_pull_spoolss_PortStatus(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortStatus
*r
)
15993 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15995 return NDR_ERR_SUCCESS
;
15998 _PUBLIC_
void ndr_print_spoolss_PortStatus(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortStatus r
)
16000 const char *val
= NULL
;
16003 case PORT_STATUS_CLEAR
: val
= "PORT_STATUS_CLEAR"; break;
16004 case PORT_STATUS_OFFLINE
: val
= "PORT_STATUS_OFFLINE"; break;
16005 case PORT_STATUS_PAPER_JAM
: val
= "PORT_STATUS_PAPER_JAM"; break;
16006 case PORT_STATUS_PAPER_OUT
: val
= "PORT_STATUS_PAPER_OUT"; break;
16007 case PORT_STATUS_OUTPUT_BIN_FULL
: val
= "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16008 case PORT_STATUS_PAPER_PROBLEM
: val
= "PORT_STATUS_PAPER_PROBLEM"; break;
16009 case PORT_STATUS_NO_TONER
: val
= "PORT_STATUS_NO_TONER"; break;
16010 case PORT_STATUS_DOOR_OPEN
: val
= "PORT_STATUS_DOOR_OPEN"; break;
16011 case PORT_STATUS_USER_INTERVENTION
: val
= "PORT_STATUS_USER_INTERVENTION"; break;
16012 case PORT_STATUS_OUT_OF_MEMORY
: val
= "PORT_STATUS_OUT_OF_MEMORY"; break;
16013 case PORT_STATUS_TONER_LOW
: val
= "PORT_STATUS_TONER_LOW"; break;
16014 case PORT_STATUS_WARMING_UP
: val
= "PORT_STATUS_WARMING_UP"; break;
16015 case PORT_STATUS_POWER_SAVE
: val
= "PORT_STATUS_POWER_SAVE"; break;
16017 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16020 static enum ndr_err_code
ndr_push_spoolss_PortSeverity(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortSeverity r
)
16022 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16023 return NDR_ERR_SUCCESS
;
16026 static enum ndr_err_code
ndr_pull_spoolss_PortSeverity(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortSeverity
*r
)
16029 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16031 return NDR_ERR_SUCCESS
;
16034 _PUBLIC_
void ndr_print_spoolss_PortSeverity(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortSeverity r
)
16036 const char *val
= NULL
;
16039 case PORT_STATUS_TYPE_ERROR
: val
= "PORT_STATUS_TYPE_ERROR"; break;
16040 case PORT_STATUS_TYPE_WARNING
: val
= "PORT_STATUS_TYPE_WARNING"; break;
16041 case PORT_STATUS_TYPE_INFO
: val
= "PORT_STATUS_TYPE_INFO"; break;
16043 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16046 static enum ndr_err_code
ndr_push_spoolss_PortInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo3
*r
)
16048 if (ndr_flags
& NDR_SCALARS
) {
16049 NDR_CHECK(ndr_push_align(ndr
, 4));
16050 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr
, NDR_SCALARS
, r
->status
));
16052 uint32_t _flags_save_string
= ndr
->flags
;
16053 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16054 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->status_string
));
16055 ndr
->flags
= _flags_save_string
;
16057 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr
, NDR_SCALARS
, r
->severity
));
16059 if (ndr_flags
& NDR_BUFFERS
) {
16061 uint32_t _flags_save_string
= ndr
->flags
;
16062 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16063 if (r
->status_string
) {
16064 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->status_string
));
16065 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->status_string
));
16067 ndr
->flags
= _flags_save_string
;
16070 return NDR_ERR_SUCCESS
;
16073 static enum ndr_err_code
ndr_pull_spoolss_PortInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo3
*r
)
16075 uint32_t _ptr_status_string
;
16076 TALLOC_CTX
*_mem_save_status_string_0
;
16077 if (ndr_flags
& NDR_SCALARS
) {
16078 NDR_CHECK(ndr_pull_align(ndr
, 4));
16079 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr
, NDR_SCALARS
, &r
->status
));
16081 uint32_t _flags_save_string
= ndr
->flags
;
16082 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16083 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_status_string
));
16084 if (_ptr_status_string
) {
16085 NDR_PULL_ALLOC(ndr
, r
->status_string
);
16086 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->status_string
, _ptr_status_string
));
16088 r
->status_string
= NULL
;
16090 ndr
->flags
= _flags_save_string
;
16092 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr
, NDR_SCALARS
, &r
->severity
));
16094 if (ndr_flags
& NDR_BUFFERS
) {
16096 uint32_t _flags_save_string
= ndr
->flags
;
16097 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16098 if (r
->status_string
) {
16099 uint32_t _relative_save_offset
;
16100 _relative_save_offset
= ndr
->offset
;
16101 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->status_string
));
16102 _mem_save_status_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16103 NDR_PULL_SET_MEM_CTX(ndr
, r
->status_string
, 0);
16104 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->status_string
));
16105 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_string_0
, 0);
16106 ndr
->offset
= _relative_save_offset
;
16108 ndr
->flags
= _flags_save_string
;
16111 return NDR_ERR_SUCCESS
;
16114 _PUBLIC_
void ndr_print_spoolss_PortInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo3
*r
)
16116 ndr_print_struct(ndr
, name
, "spoolss_PortInfo3");
16118 ndr_print_spoolss_PortStatus(ndr
, "status", r
->status
);
16119 ndr_print_ptr(ndr
, "status_string", r
->status_string
);
16121 if (r
->status_string
) {
16122 ndr_print_string(ndr
, "status_string", r
->status_string
);
16125 ndr_print_spoolss_PortSeverity(ndr
, "severity", r
->severity
);
16129 static enum ndr_err_code
ndr_push_spoolss_PortInfoFF(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfoFF
*r
)
16131 if (ndr_flags
& NDR_SCALARS
) {
16132 NDR_CHECK(ndr_push_align(ndr
, 4));
16134 uint32_t _flags_save_string
= ndr
->flags
;
16135 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16136 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
16137 ndr
->flags
= _flags_save_string
;
16139 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->monitor_data
));
16141 if (ndr_flags
& NDR_BUFFERS
) {
16143 uint32_t _flags_save_string
= ndr
->flags
;
16144 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16145 if (r
->port_name
) {
16146 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
16147 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
16149 ndr
->flags
= _flags_save_string
;
16152 return NDR_ERR_SUCCESS
;
16155 static enum ndr_err_code
ndr_pull_spoolss_PortInfoFF(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfoFF
*r
)
16157 uint32_t _ptr_port_name
;
16158 TALLOC_CTX
*_mem_save_port_name_0
;
16159 if (ndr_flags
& NDR_SCALARS
) {
16160 NDR_CHECK(ndr_pull_align(ndr
, 4));
16162 uint32_t _flags_save_string
= ndr
->flags
;
16163 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16164 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
16165 if (_ptr_port_name
) {
16166 NDR_PULL_ALLOC(ndr
, r
->port_name
);
16167 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
16169 r
->port_name
= NULL
;
16171 ndr
->flags
= _flags_save_string
;
16173 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->monitor_data
));
16175 if (ndr_flags
& NDR_BUFFERS
) {
16177 uint32_t _flags_save_string
= ndr
->flags
;
16178 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16179 if (r
->port_name
) {
16180 uint32_t _relative_save_offset
;
16181 _relative_save_offset
= ndr
->offset
;
16182 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
16183 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16184 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
16185 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
16186 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
16187 ndr
->offset
= _relative_save_offset
;
16189 ndr
->flags
= _flags_save_string
;
16192 return NDR_ERR_SUCCESS
;
16195 _PUBLIC_
void ndr_print_spoolss_PortInfoFF(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfoFF
*r
)
16197 ndr_print_struct(ndr
, name
, "spoolss_PortInfoFF");
16199 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
16201 if (r
->port_name
) {
16202 ndr_print_string(ndr
, "port_name", r
->port_name
);
16205 ndr_print_DATA_BLOB(ndr
, "monitor_data", r
->monitor_data
);
16209 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PortInfo
*r
)
16211 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16212 if (ndr_flags
& NDR_SCALARS
) {
16213 int level
= ndr_push_get_switch_value(ndr
, r
);
16216 NDR_CHECK(ndr_push_align(ndr
, 4));
16217 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16218 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16222 NDR_CHECK(ndr_push_align(ndr
, 4));
16223 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16224 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16228 NDR_CHECK(ndr_push_align(ndr
, 4));
16229 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16230 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
16234 NDR_CHECK(ndr_push_align(ndr
, 4));
16235 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16236 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
16244 if (ndr_flags
& NDR_BUFFERS
) {
16245 int level
= ndr_push_get_switch_value(ndr
, r
);
16246 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16249 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16253 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16257 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
16261 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
16269 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16270 return NDR_ERR_SUCCESS
;
16273 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PortInfo
*r
)
16275 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16277 level
= ndr_pull_get_switch_value(ndr
, r
);
16278 if (ndr_flags
& NDR_SCALARS
) {
16281 NDR_CHECK(ndr_pull_align(ndr
, 4));
16282 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16283 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16287 NDR_CHECK(ndr_pull_align(ndr
, 4));
16288 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16289 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16293 NDR_CHECK(ndr_pull_align(ndr
, 4));
16294 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16295 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
16299 NDR_CHECK(ndr_pull_align(ndr
, 4));
16300 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16301 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
16309 if (ndr_flags
& NDR_BUFFERS
) {
16310 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16313 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16317 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16321 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
16325 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
16333 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16334 return NDR_ERR_SUCCESS
;
16337 _PUBLIC_
void ndr_print_spoolss_PortInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PortInfo
*r
)
16340 level
= ndr_print_get_switch_value(ndr
, r
);
16341 ndr_print_union(ndr
, name
, level
, "spoolss_PortInfo");
16344 ndr_print_spoolss_PortInfo1(ndr
, "info1", &r
->info1
);
16348 ndr_print_spoolss_PortInfo2(ndr
, "info2", &r
->info2
);
16352 ndr_print_spoolss_PortInfo3(ndr
, "info3", &r
->info3
);
16356 ndr_print_spoolss_PortInfoFF(ndr
, "infoFF", &r
->infoFF
);
16365 static enum ndr_err_code
ndr_push_spoolss_MonitorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo1
*r
)
16367 if (ndr_flags
& NDR_SCALARS
) {
16368 NDR_CHECK(ndr_push_align(ndr
, 4));
16370 uint32_t _flags_save_string
= ndr
->flags
;
16371 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16372 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
16373 ndr
->flags
= _flags_save_string
;
16376 if (ndr_flags
& NDR_BUFFERS
) {
16378 uint32_t _flags_save_string
= ndr
->flags
;
16379 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16380 if (r
->monitor_name
) {
16381 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
16382 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
16384 ndr
->flags
= _flags_save_string
;
16387 return NDR_ERR_SUCCESS
;
16390 static enum ndr_err_code
ndr_pull_spoolss_MonitorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo1
*r
)
16392 uint32_t _ptr_monitor_name
;
16393 TALLOC_CTX
*_mem_save_monitor_name_0
;
16394 if (ndr_flags
& NDR_SCALARS
) {
16395 NDR_CHECK(ndr_pull_align(ndr
, 4));
16397 uint32_t _flags_save_string
= ndr
->flags
;
16398 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16399 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
16400 if (_ptr_monitor_name
) {
16401 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
16402 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
16404 r
->monitor_name
= NULL
;
16406 ndr
->flags
= _flags_save_string
;
16409 if (ndr_flags
& NDR_BUFFERS
) {
16411 uint32_t _flags_save_string
= ndr
->flags
;
16412 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16413 if (r
->monitor_name
) {
16414 uint32_t _relative_save_offset
;
16415 _relative_save_offset
= ndr
->offset
;
16416 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
16417 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16418 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
16419 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
16420 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
16421 ndr
->offset
= _relative_save_offset
;
16423 ndr
->flags
= _flags_save_string
;
16426 return NDR_ERR_SUCCESS
;
16429 _PUBLIC_
void ndr_print_spoolss_MonitorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo1
*r
)
16431 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo1");
16433 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
16435 if (r
->monitor_name
) {
16436 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
16442 static enum ndr_err_code
ndr_push_spoolss_MonitorInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo2
*r
)
16444 if (ndr_flags
& NDR_SCALARS
) {
16445 NDR_CHECK(ndr_push_align(ndr
, 4));
16447 uint32_t _flags_save_string
= ndr
->flags
;
16448 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16449 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
16450 ndr
->flags
= _flags_save_string
;
16453 uint32_t _flags_save_string
= ndr
->flags
;
16454 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16455 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->environment
));
16456 ndr
->flags
= _flags_save_string
;
16459 uint32_t _flags_save_string
= ndr
->flags
;
16460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16461 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dll_name
));
16462 ndr
->flags
= _flags_save_string
;
16465 if (ndr_flags
& NDR_BUFFERS
) {
16467 uint32_t _flags_save_string
= ndr
->flags
;
16468 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16469 if (r
->monitor_name
) {
16470 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
16471 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
16473 ndr
->flags
= _flags_save_string
;
16476 uint32_t _flags_save_string
= ndr
->flags
;
16477 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16478 if (r
->environment
) {
16479 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->environment
));
16480 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->environment
));
16482 ndr
->flags
= _flags_save_string
;
16485 uint32_t _flags_save_string
= ndr
->flags
;
16486 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16488 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dll_name
));
16489 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
16491 ndr
->flags
= _flags_save_string
;
16494 return NDR_ERR_SUCCESS
;
16497 static enum ndr_err_code
ndr_pull_spoolss_MonitorInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo2
*r
)
16499 uint32_t _ptr_monitor_name
;
16500 TALLOC_CTX
*_mem_save_monitor_name_0
;
16501 uint32_t _ptr_environment
;
16502 TALLOC_CTX
*_mem_save_environment_0
;
16503 uint32_t _ptr_dll_name
;
16504 TALLOC_CTX
*_mem_save_dll_name_0
;
16505 if (ndr_flags
& NDR_SCALARS
) {
16506 NDR_CHECK(ndr_pull_align(ndr
, 4));
16508 uint32_t _flags_save_string
= ndr
->flags
;
16509 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16510 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
16511 if (_ptr_monitor_name
) {
16512 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
16513 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
16515 r
->monitor_name
= NULL
;
16517 ndr
->flags
= _flags_save_string
;
16520 uint32_t _flags_save_string
= ndr
->flags
;
16521 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16522 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
16523 if (_ptr_environment
) {
16524 NDR_PULL_ALLOC(ndr
, r
->environment
);
16525 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->environment
, _ptr_environment
));
16527 r
->environment
= NULL
;
16529 ndr
->flags
= _flags_save_string
;
16532 uint32_t _flags_save_string
= ndr
->flags
;
16533 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16534 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dll_name
));
16535 if (_ptr_dll_name
) {
16536 NDR_PULL_ALLOC(ndr
, r
->dll_name
);
16537 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dll_name
, _ptr_dll_name
));
16539 r
->dll_name
= NULL
;
16541 ndr
->flags
= _flags_save_string
;
16544 if (ndr_flags
& NDR_BUFFERS
) {
16546 uint32_t _flags_save_string
= ndr
->flags
;
16547 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16548 if (r
->monitor_name
) {
16549 uint32_t _relative_save_offset
;
16550 _relative_save_offset
= ndr
->offset
;
16551 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
16552 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16553 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
16554 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
16555 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
16556 ndr
->offset
= _relative_save_offset
;
16558 ndr
->flags
= _flags_save_string
;
16561 uint32_t _flags_save_string
= ndr
->flags
;
16562 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16563 if (r
->environment
) {
16564 uint32_t _relative_save_offset
;
16565 _relative_save_offset
= ndr
->offset
;
16566 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->environment
));
16567 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16568 NDR_PULL_SET_MEM_CTX(ndr
, r
->environment
, 0);
16569 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->environment
));
16570 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
16571 ndr
->offset
= _relative_save_offset
;
16573 ndr
->flags
= _flags_save_string
;
16576 uint32_t _flags_save_string
= ndr
->flags
;
16577 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16579 uint32_t _relative_save_offset
;
16580 _relative_save_offset
= ndr
->offset
;
16581 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dll_name
));
16582 _mem_save_dll_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16583 NDR_PULL_SET_MEM_CTX(ndr
, r
->dll_name
, 0);
16584 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
16585 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dll_name_0
, 0);
16586 ndr
->offset
= _relative_save_offset
;
16588 ndr
->flags
= _flags_save_string
;
16591 return NDR_ERR_SUCCESS
;
16594 _PUBLIC_
void ndr_print_spoolss_MonitorInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo2
*r
)
16596 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo2");
16598 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
16600 if (r
->monitor_name
) {
16601 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
16604 ndr_print_ptr(ndr
, "environment", r
->environment
);
16606 if (r
->environment
) {
16607 ndr_print_string(ndr
, "environment", r
->environment
);
16610 ndr_print_ptr(ndr
, "dll_name", r
->dll_name
);
16613 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
16619 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_MonitorInfo
*r
)
16621 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16622 if (ndr_flags
& NDR_SCALARS
) {
16623 int level
= ndr_push_get_switch_value(ndr
, r
);
16626 NDR_CHECK(ndr_push_align(ndr
, 4));
16627 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16628 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16632 NDR_CHECK(ndr_push_align(ndr
, 4));
16633 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16634 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16642 if (ndr_flags
& NDR_BUFFERS
) {
16643 int level
= ndr_push_get_switch_value(ndr
, r
);
16644 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16647 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16651 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16659 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16660 return NDR_ERR_SUCCESS
;
16663 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_MonitorInfo
*r
)
16665 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16667 level
= ndr_pull_get_switch_value(ndr
, r
);
16668 if (ndr_flags
& NDR_SCALARS
) {
16671 NDR_CHECK(ndr_pull_align(ndr
, 4));
16672 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16673 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16677 NDR_CHECK(ndr_pull_align(ndr
, 4));
16678 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16679 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16687 if (ndr_flags
& NDR_BUFFERS
) {
16688 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16691 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16695 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16703 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16704 return NDR_ERR_SUCCESS
;
16707 _PUBLIC_
void ndr_print_spoolss_MonitorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_MonitorInfo
*r
)
16710 level
= ndr_print_get_switch_value(ndr
, r
);
16711 ndr_print_union(ndr
, name
, level
, "spoolss_MonitorInfo");
16714 ndr_print_spoolss_MonitorInfo1(ndr
, "info1", &r
->info1
);
16718 ndr_print_spoolss_MonitorInfo2(ndr
, "info2", &r
->info2
);
16727 static enum ndr_err_code
ndr_push_spoolss_PrinterChangeFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
16729 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16730 return NDR_ERR_SUCCESS
;
16733 static enum ndr_err_code
ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
16736 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16738 return NDR_ERR_SUCCESS
;
16741 _PUBLIC_
void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
16743 ndr_print_uint32(ndr
, name
, r
);
16745 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER
, r
);
16746 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER
, r
);
16747 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER
, r
);
16748 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
, r
);
16749 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB
, r
);
16750 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB
, r
);
16751 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB
, r
);
16752 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB
, r
);
16753 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM
, r
);
16754 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM
, r
);
16755 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM
, r
);
16756 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT
, r
);
16757 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT
, r
);
16758 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT
, r
);
16759 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR
, r
);
16760 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR
, r
);
16761 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER
, r
);
16762 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER
, r
);
16763 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER
, r
);
16764 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER
, r
);
16765 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT
, r
);
16769 static enum ndr_err_code
ndr_push_spoolss_Field(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_Field r
)
16771 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
16772 return NDR_ERR_SUCCESS
;
16775 static enum ndr_err_code
ndr_pull_spoolss_Field(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_Field
*r
)
16778 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
16780 return NDR_ERR_SUCCESS
;
16783 _PUBLIC_
void ndr_print_spoolss_Field(struct ndr_print
*ndr
, const char *name
, enum spoolss_Field r
)
16785 const char *val
= NULL
;
16788 case SPOOLSS_FIELD_SERVER_NAME
: val
= "SPOOLSS_FIELD_SERVER_NAME"; break;
16789 case SPOOLSS_FIELD_PRINTER_NAME
: val
= "SPOOLSS_FIELD_PRINTER_NAME"; break;
16790 case SPOOLSS_FIELD_SHARE_NAME
: val
= "SPOOLSS_FIELD_SHARE_NAME"; break;
16791 case SPOOLSS_FIELD_PORT_NAME
: val
= "SPOOLSS_FIELD_PORT_NAME"; break;
16792 case SPOOLSS_FIELD_DRIVER_NAME
: val
= "SPOOLSS_FIELD_DRIVER_NAME"; break;
16793 case SPOOLSS_FIELD_COMMENT
: val
= "SPOOLSS_FIELD_COMMENT"; break;
16794 case SPOOLSS_FIELD_LOCATION
: val
= "SPOOLSS_FIELD_LOCATION"; break;
16795 case SPOOLSS_FIELD_DEVMODE
: val
= "SPOOLSS_FIELD_DEVMODE"; break;
16796 case SPOOLSS_FIELD_SEPFILE
: val
= "SPOOLSS_FIELD_SEPFILE"; break;
16797 case SPOOLSS_FIELD_PRINT_PROCESSOR
: val
= "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
16798 case SPOOLSS_FIELD_PARAMETERS
: val
= "SPOOLSS_FIELD_PARAMETERS"; break;
16799 case SPOOLSS_FIELD_DATATYPE
: val
= "SPOOLSS_FIELD_DATATYPE"; break;
16800 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR
: val
= "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
16801 case SPOOLSS_FIELD_ATTRIBUTES
: val
= "SPOOLSS_FIELD_ATTRIBUTES"; break;
16802 case SPOOLSS_FIELD_PRIORITY
: val
= "SPOOLSS_FIELD_PRIORITY"; break;
16803 case SPOOLSS_FIELD_DEFAULT_PRIORITY
: val
= "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
16804 case SPOOLSS_FIELD_START_TIME
: val
= "SPOOLSS_FIELD_START_TIME"; break;
16805 case SPOOLSS_FIELD_UNTIL_TIME
: val
= "SPOOLSS_FIELD_UNTIL_TIME"; break;
16806 case SPOOLSS_FIELD_STATUS
: val
= "SPOOLSS_FIELD_STATUS"; break;
16807 case SPOOLSS_FIELD_STATUS_STRING
: val
= "SPOOLSS_FIELD_STATUS_STRING"; break;
16808 case SPOOLSS_FIELD_CJOBS
: val
= "SPOOLSS_FIELD_CJOBS"; break;
16809 case SPOOLSS_FIELD_AVERAGE_PPM
: val
= "SPOOLSS_FIELD_AVERAGE_PPM"; break;
16810 case SPOOLSS_FIELD_TOTAL_PAGES
: val
= "SPOOLSS_FIELD_TOTAL_PAGES"; break;
16811 case SPOOLSS_FIELD_PAGES_PRINTED
: val
= "SPOOLSS_FIELD_PAGES_PRINTED"; break;
16812 case SPOOLSS_FIELD_TOTAL_BYTES
: val
= "SPOOLSS_FIELD_TOTAL_BYTES"; break;
16813 case SPOOLSS_FIELD_BYTES_PRINTED
: val
= "SPOOLSS_FIELD_BYTES_PRINTED"; break;
16815 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16818 static enum ndr_err_code
ndr_push_spoolss_NotifyType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyType r
)
16820 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
16821 return NDR_ERR_SUCCESS
;
16824 static enum ndr_err_code
ndr_pull_spoolss_NotifyType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyType
*r
)
16827 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
16829 return NDR_ERR_SUCCESS
;
16832 _PUBLIC_
void ndr_print_spoolss_NotifyType(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyType r
)
16834 const char *val
= NULL
;
16837 case SPOOLSS_NOTIFY_PRINTER
: val
= "SPOOLSS_NOTIFY_PRINTER"; break;
16838 case SPOOLSS_NOTIFY_JOB
: val
= "SPOOLSS_NOTIFY_JOB"; break;
16840 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16843 static enum ndr_err_code
ndr_push_spoolss_NotifyOptionType(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOptionType
*r
)
16845 uint32_t cntr_fields_1
;
16846 if (ndr_flags
& NDR_SCALARS
) {
16847 NDR_CHECK(ndr_push_align(ndr
, 4));
16848 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
16849 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->u1
));
16850 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u2
));
16851 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u3
));
16852 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
16853 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->fields
));
16855 if (ndr_flags
& NDR_BUFFERS
) {
16857 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
16858 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
16859 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, r
->fields
[cntr_fields_1
]));
16863 return NDR_ERR_SUCCESS
;
16866 static enum ndr_err_code
ndr_pull_spoolss_NotifyOptionType(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOptionType
*r
)
16868 uint32_t _ptr_fields
;
16869 uint32_t cntr_fields_1
;
16870 TALLOC_CTX
*_mem_save_fields_0
;
16871 TALLOC_CTX
*_mem_save_fields_1
;
16872 if (ndr_flags
& NDR_SCALARS
) {
16873 NDR_CHECK(ndr_pull_align(ndr
, 4));
16874 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
16875 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->u1
));
16876 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u2
));
16877 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u3
));
16878 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
16879 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_fields
));
16881 NDR_PULL_ALLOC(ndr
, r
->fields
);
16886 if (ndr_flags
& NDR_BUFFERS
) {
16888 _mem_save_fields_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16889 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
16890 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->fields
));
16891 NDR_PULL_ALLOC_N(ndr
, r
->fields
, ndr_get_array_size(ndr
, &r
->fields
));
16892 _mem_save_fields_1
= NDR_PULL_GET_MEM_CTX(ndr
);
16893 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
16894 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
16895 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
16897 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_1
, 0);
16898 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_0
, 0);
16901 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->fields
, r
->count
));
16904 return NDR_ERR_SUCCESS
;
16907 _PUBLIC_
void ndr_print_spoolss_NotifyOptionType(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOptionType
*r
)
16909 uint32_t cntr_fields_1
;
16910 ndr_print_struct(ndr
, name
, "spoolss_NotifyOptionType");
16912 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
16913 ndr_print_uint16(ndr
, "u1", r
->u1
);
16914 ndr_print_uint32(ndr
, "u2", r
->u2
);
16915 ndr_print_uint32(ndr
, "u3", r
->u3
);
16916 ndr_print_uint32(ndr
, "count", r
->count
);
16917 ndr_print_ptr(ndr
, "fields", r
->fields
);
16920 ndr
->print(ndr
, "%s: ARRAY(%d)", "fields", (int)r
->count
);
16922 for (cntr_fields_1
=0;cntr_fields_1
<r
->count
;cntr_fields_1
++) {
16924 if (asprintf(&idx_1
, "[%d]", cntr_fields_1
) != -1) {
16925 ndr_print_spoolss_Field(ndr
, "fields", r
->fields
[cntr_fields_1
]);
16935 static enum ndr_err_code
ndr_push_spoolssNotifyOptionFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
16937 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16938 return NDR_ERR_SUCCESS
;
16941 static enum ndr_err_code
ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
16944 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16946 return NDR_ERR_SUCCESS
;
16949 _PUBLIC_
void ndr_print_spoolssNotifyOptionFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
16951 ndr_print_uint32(ndr
, name
, r
);
16953 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH
, r
);
16957 static enum ndr_err_code
ndr_push_spoolss_NotifyOption(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOption
*r
)
16959 uint32_t cntr_types_1
;
16960 if (ndr_flags
& NDR_SCALARS
) {
16961 NDR_CHECK(ndr_push_align(ndr
, 4));
16962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
16963 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, r
->flags
));
16964 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
16965 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->types
));
16967 if (ndr_flags
& NDR_BUFFERS
) {
16969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
16970 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
16971 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
16973 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
16974 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
16978 return NDR_ERR_SUCCESS
;
16981 static enum ndr_err_code
ndr_pull_spoolss_NotifyOption(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOption
*r
)
16983 uint32_t _ptr_types
;
16984 uint32_t cntr_types_1
;
16985 TALLOC_CTX
*_mem_save_types_0
;
16986 TALLOC_CTX
*_mem_save_types_1
;
16987 if (ndr_flags
& NDR_SCALARS
) {
16988 NDR_CHECK(ndr_pull_align(ndr
, 4));
16989 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
16990 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, &r
->flags
));
16991 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
16992 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_types
));
16994 NDR_PULL_ALLOC(ndr
, r
->types
);
16999 if (ndr_flags
& NDR_BUFFERS
) {
17001 _mem_save_types_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17002 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
17003 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->types
));
17004 NDR_PULL_ALLOC_N(ndr
, r
->types
, ndr_get_array_size(ndr
, &r
->types
));
17005 _mem_save_types_1
= NDR_PULL_GET_MEM_CTX(ndr
);
17006 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
17007 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17008 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
17010 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17011 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
17013 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_1
, 0);
17014 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_0
, 0);
17017 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->types
, r
->count
));
17020 return NDR_ERR_SUCCESS
;
17023 _PUBLIC_
void ndr_print_spoolss_NotifyOption(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOption
*r
)
17025 uint32_t cntr_types_1
;
17026 ndr_print_struct(ndr
, name
, "spoolss_NotifyOption");
17028 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
17029 ndr_print_spoolssNotifyOptionFlags(ndr
, "flags", r
->flags
);
17030 ndr_print_uint32(ndr
, "count", r
->count
);
17031 ndr_print_ptr(ndr
, "types", r
->types
);
17034 ndr
->print(ndr
, "%s: ARRAY(%d)", "types", (int)r
->count
);
17036 for (cntr_types_1
=0;cntr_types_1
<r
->count
;cntr_types_1
++) {
17038 if (asprintf(&idx_1
, "[%d]", cntr_types_1
) != -1) {
17039 ndr_print_spoolss_NotifyOptionType(ndr
, "types", &r
->types
[cntr_types_1
]);
17049 static enum ndr_err_code
ndr_push_spoolss_NotifyString(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyString
*r
)
17051 if (ndr_flags
& NDR_SCALARS
) {
17052 NDR_CHECK(ndr_push_align(ndr
, 4));
17053 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
17054 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->string
));
17056 if (ndr_flags
& NDR_BUFFERS
) {
17058 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
/ 2));
17059 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->string
, r
->size
/ 2, sizeof(uint16_t), CH_UTF16
));
17062 return NDR_ERR_SUCCESS
;
17065 static enum ndr_err_code
ndr_pull_spoolss_NotifyString(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyString
*r
)
17067 uint32_t _ptr_string
;
17068 TALLOC_CTX
*_mem_save_string_0
;
17069 if (ndr_flags
& NDR_SCALARS
) {
17070 NDR_CHECK(ndr_pull_align(ndr
, 4));
17071 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
17072 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_string
));
17074 NDR_PULL_ALLOC(ndr
, r
->string
);
17079 if (ndr_flags
& NDR_BUFFERS
) {
17081 _mem_save_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17082 NDR_PULL_SET_MEM_CTX(ndr
, r
->string
, 0);
17083 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->string
));
17084 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->string
, ndr_get_array_size(ndr
, &r
->string
), sizeof(uint16_t), CH_UTF16
));
17085 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_string_0
, 0);
17088 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->string
, r
->size
/ 2));
17091 return NDR_ERR_SUCCESS
;
17094 _PUBLIC_
void ndr_print_spoolss_NotifyString(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyString
*r
)
17096 ndr_print_struct(ndr
, name
, "spoolss_NotifyString");
17098 ndr_print_uint32(ndr
, "size", r
->size
);
17099 ndr_print_ptr(ndr
, "string", r
->string
);
17102 ndr_print_string(ndr
, "string", r
->string
);
17108 static enum ndr_err_code
ndr_push_spoolss_NotifyTable(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyTable r
)
17110 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17111 return NDR_ERR_SUCCESS
;
17114 static enum ndr_err_code
ndr_pull_spoolss_NotifyTable(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyTable
*r
)
17117 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17119 return NDR_ERR_SUCCESS
;
17122 _PUBLIC_
void ndr_print_spoolss_NotifyTable(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyTable r
)
17124 const char *val
= NULL
;
17127 case NOTIFY_TABLE_DWORD
: val
= "NOTIFY_TABLE_DWORD"; break;
17128 case NOTIFY_TABLE_STRING
: val
= "NOTIFY_TABLE_STRING"; break;
17129 case NOTIFY_TABLE_DEVMODE
: val
= "NOTIFY_TABLE_DEVMODE"; break;
17130 case NOTIFY_TABLE_TIME
: val
= "NOTIFY_TABLE_TIME"; break;
17131 case NOTIFY_TABLE_SECURITYDESCRIPTOR
: val
= "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
17133 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17136 static enum ndr_err_code
ndr_push_spoolss_NotifyData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_NotifyData
*r
)
17138 if (ndr_flags
& NDR_SCALARS
) {
17139 int level
= ndr_push_get_switch_value(ndr
, r
);
17140 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
17143 uint32_t cntr_integer_0
;
17144 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
17145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->integer
[cntr_integer_0
]));
17150 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
17154 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
17158 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
17162 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
17166 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17169 if (ndr_flags
& NDR_BUFFERS
) {
17170 int level
= ndr_push_get_switch_value(ndr
, r
);
17176 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
17180 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
17184 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
17188 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
17192 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17195 return NDR_ERR_SUCCESS
;
17198 static enum ndr_err_code
ndr_pull_spoolss_NotifyData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_NotifyData
*r
)
17202 level
= ndr_pull_get_switch_value(ndr
, r
);
17203 if (ndr_flags
& NDR_SCALARS
) {
17204 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
17205 if (_level
!= level
) {
17206 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
17210 uint32_t cntr_integer_0
;
17211 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
17212 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->integer
[cntr_integer_0
]));
17217 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
17221 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
17225 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
17229 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
17233 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17236 if (ndr_flags
& NDR_BUFFERS
) {
17242 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
17246 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
17250 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
17254 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
17258 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17261 return NDR_ERR_SUCCESS
;
17264 _PUBLIC_
void ndr_print_spoolss_NotifyData(struct ndr_print
*ndr
, const char *name
, const union spoolss_NotifyData
*r
)
17267 uint32_t cntr_integer_0
;
17268 level
= ndr_print_get_switch_value(ndr
, r
);
17269 ndr_print_union(ndr
, name
, level
, "spoolss_NotifyData");
17272 ndr
->print(ndr
, "%s: ARRAY(%d)", "integer", (int)2);
17274 for (cntr_integer_0
=0;cntr_integer_0
<2;cntr_integer_0
++) {
17276 if (asprintf(&idx_0
, "[%d]", cntr_integer_0
) != -1) {
17277 ndr_print_uint32(ndr
, "integer", r
->integer
[cntr_integer_0
]);
17285 ndr_print_spoolss_NotifyString(ndr
, "string", &r
->string
);
17289 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode", &r
->devmode
);
17293 ndr_print_spoolss_TimeCtr(ndr
, "time", &r
->time
);
17297 ndr_print_sec_desc_buf(ndr
, "sd", &r
->sd
);
17301 ndr_print_bad_level(ndr
, name
, level
);
17305 static enum ndr_err_code
ndr_push_spoolss_Notify(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_Notify
*r
)
17307 if (ndr_flags
& NDR_SCALARS
) {
17308 NDR_CHECK(ndr_push_align(ndr
, 4));
17309 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
17310 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, r
->field
));
17311 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr
, NDR_SCALARS
, r
->variable_type
));
17312 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
17313 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
17314 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
17316 if (ndr_flags
& NDR_BUFFERS
) {
17317 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
17319 return NDR_ERR_SUCCESS
;
17322 static enum ndr_err_code
ndr_pull_spoolss_Notify(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Notify
*r
)
17324 if (ndr_flags
& NDR_SCALARS
) {
17325 NDR_CHECK(ndr_pull_align(ndr
, 4));
17326 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
17327 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
17328 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr
, NDR_SCALARS
, &r
->variable_type
));
17329 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
17330 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
17331 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
17333 if (ndr_flags
& NDR_BUFFERS
) {
17334 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
17336 return NDR_ERR_SUCCESS
;
17339 _PUBLIC_
void ndr_print_spoolss_Notify(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Notify
*r
)
17341 ndr_print_struct(ndr
, name
, "spoolss_Notify");
17343 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
17344 ndr_print_spoolss_Field(ndr
, "field", r
->field
);
17345 ndr_print_spoolss_NotifyTable(ndr
, "variable_type", r
->variable_type
);
17346 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
17347 ndr_print_set_switch_value(ndr
, &r
->data
, r
->variable_type
);
17348 ndr_print_spoolss_NotifyData(ndr
, "data", &r
->data
);
17352 static enum ndr_err_code
ndr_push_spoolss_NotifyInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyInfo
*r
)
17354 uint32_t cntr_notifies_0
;
17355 if (ndr_flags
& NDR_SCALARS
) {
17356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17357 NDR_CHECK(ndr_push_align(ndr
, 4));
17358 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
17359 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
17360 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17361 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17362 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
17365 if (ndr_flags
& NDR_BUFFERS
) {
17366 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17367 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
17370 return NDR_ERR_SUCCESS
;
17373 static enum ndr_err_code
ndr_pull_spoolss_NotifyInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyInfo
*r
)
17375 uint32_t cntr_notifies_0
;
17376 TALLOC_CTX
*_mem_save_notifies_0
;
17377 if (ndr_flags
& NDR_SCALARS
) {
17378 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notifies
));
17379 NDR_CHECK(ndr_pull_align(ndr
, 4));
17380 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
17381 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
17382 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
17383 NDR_PULL_ALLOC_N(ndr
, r
->notifies
, ndr_get_array_size(ndr
, &r
->notifies
));
17384 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17385 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
17386 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17387 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
17389 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
17391 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->notifies
, r
->count
));
17394 if (ndr_flags
& NDR_BUFFERS
) {
17395 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17396 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
17397 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17398 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
17400 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
17402 return NDR_ERR_SUCCESS
;
17405 _PUBLIC_
void ndr_print_spoolss_NotifyInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyInfo
*r
)
17407 uint32_t cntr_notifies_0
;
17408 ndr_print_struct(ndr
, name
, "spoolss_NotifyInfo");
17410 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
17411 ndr_print_uint32(ndr
, "flags", r
->flags
);
17412 ndr_print_uint32(ndr
, "count", r
->count
);
17413 ndr
->print(ndr
, "%s: ARRAY(%d)", "notifies", (int)r
->count
);
17415 for (cntr_notifies_0
=0;cntr_notifies_0
<r
->count
;cntr_notifies_0
++) {
17417 if (asprintf(&idx_0
, "[%d]", cntr_notifies_0
) != -1) {
17418 ndr_print_spoolss_Notify(ndr
, "notifies", &r
->notifies
[cntr_notifies_0
]);
17426 static enum ndr_err_code
ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_ReplyPrinterInfo
*r
)
17428 if (ndr_flags
& NDR_SCALARS
) {
17429 int level
= ndr_push_get_switch_value(ndr
, r
);
17430 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
17433 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
17437 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17440 if (ndr_flags
& NDR_BUFFERS
) {
17441 int level
= ndr_push_get_switch_value(ndr
, r
);
17445 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
17450 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17453 return NDR_ERR_SUCCESS
;
17456 static enum ndr_err_code
ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_ReplyPrinterInfo
*r
)
17460 TALLOC_CTX
*_mem_save_info0_0
;
17461 level
= ndr_pull_get_switch_value(ndr
, r
);
17462 if (ndr_flags
& NDR_SCALARS
) {
17463 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
17464 if (_level
!= level
) {
17465 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
17469 uint32_t _ptr_info0
;
17470 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
17472 NDR_PULL_ALLOC(ndr
, r
->info0
);
17479 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17482 if (ndr_flags
& NDR_BUFFERS
) {
17486 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17487 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
17488 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
17489 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
17494 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17497 return NDR_ERR_SUCCESS
;
17500 _PUBLIC_
void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_ReplyPrinterInfo
*r
)
17503 level
= ndr_print_get_switch_value(ndr
, r
);
17504 ndr_print_union(ndr
, name
, level
, "spoolss_ReplyPrinterInfo");
17507 ndr_print_ptr(ndr
, "info0", r
->info0
);
17510 ndr_print_spoolss_NotifyInfo(ndr
, "info0", r
->info0
);
17516 ndr_print_bad_level(ndr
, name
, level
);
17520 static enum ndr_err_code
ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17522 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17523 return NDR_ERR_SUCCESS
;
17526 static enum ndr_err_code
ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17529 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17531 return NDR_ERR_SUCCESS
;
17534 _PUBLIC_
void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17536 ndr_print_uint32(ndr
, name
, r
);
17538 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED
, r
);
17539 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED
, r
);
17540 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH
, r
);
17544 static enum ndr_err_code
ndr_push_spoolss_UserLevel1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel1
*r
)
17546 if (ndr_flags
& NDR_SCALARS
) {
17547 NDR_CHECK(ndr_push_align(ndr
, 4));
17548 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
17549 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
17550 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
17551 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
17552 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
17553 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
17554 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
17556 if (ndr_flags
& NDR_BUFFERS
) {
17558 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
17559 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17560 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
17561 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17564 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
17565 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17566 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
17567 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17570 return NDR_ERR_SUCCESS
;
17573 static enum ndr_err_code
ndr_pull_spoolss_UserLevel1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel1
*r
)
17575 uint32_t _ptr_client
;
17576 TALLOC_CTX
*_mem_save_client_0
;
17577 uint32_t _ptr_user
;
17578 TALLOC_CTX
*_mem_save_user_0
;
17579 if (ndr_flags
& NDR_SCALARS
) {
17580 NDR_CHECK(ndr_pull_align(ndr
, 4));
17581 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
17582 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
17584 NDR_PULL_ALLOC(ndr
, r
->client
);
17588 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
17590 NDR_PULL_ALLOC(ndr
, r
->user
);
17594 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
17595 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
17596 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
17597 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
17599 if (ndr_flags
& NDR_BUFFERS
) {
17601 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17602 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
17603 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
17604 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
17605 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
17606 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
));
17608 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
17609 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
17610 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
17613 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17614 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
17615 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
17616 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
17617 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
17618 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
));
17620 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
17621 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
17622 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
17625 return NDR_ERR_SUCCESS
;
17628 _PUBLIC_
void ndr_print_spoolss_UserLevel1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel1
*r
)
17630 ndr_print_struct(ndr
, name
, "spoolss_UserLevel1");
17632 ndr_print_uint32(ndr
, "size", r
->size
);
17633 ndr_print_ptr(ndr
, "client", r
->client
);
17636 ndr_print_string(ndr
, "client", r
->client
);
17639 ndr_print_ptr(ndr
, "user", r
->user
);
17642 ndr_print_string(ndr
, "user", r
->user
);
17645 ndr_print_uint32(ndr
, "build", r
->build
);
17646 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
17647 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
17648 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
17652 static enum ndr_err_code
ndr_push_spoolss_UserLevel2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel2
*r
)
17654 if (ndr_flags
& NDR_SCALARS
) {
17655 NDR_CHECK(ndr_push_align(ndr
, 4));
17656 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->not_used
));
17658 if (ndr_flags
& NDR_BUFFERS
) {
17660 return NDR_ERR_SUCCESS
;
17663 static enum ndr_err_code
ndr_pull_spoolss_UserLevel2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel2
*r
)
17665 if (ndr_flags
& NDR_SCALARS
) {
17666 NDR_CHECK(ndr_pull_align(ndr
, 4));
17667 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->not_used
));
17669 if (ndr_flags
& NDR_BUFFERS
) {
17671 return NDR_ERR_SUCCESS
;
17674 _PUBLIC_
void ndr_print_spoolss_UserLevel2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel2
*r
)
17676 ndr_print_struct(ndr
, name
, "spoolss_UserLevel2");
17678 ndr_print_uint32(ndr
, "not_used", r
->not_used
);
17682 static enum ndr_err_code
ndr_push_spoolss_UserLevel3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel3
*r
)
17684 if (ndr_flags
& NDR_SCALARS
) {
17685 NDR_CHECK(ndr_push_align(ndr
, 4));
17686 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
17687 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
17688 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size2
));
17689 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
17690 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
17691 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
17692 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
17693 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
17694 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
17695 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reserved
));
17697 if (ndr_flags
& NDR_BUFFERS
) {
17699 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
17700 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17701 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
17702 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17705 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
17706 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17707 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
17708 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17711 return NDR_ERR_SUCCESS
;
17714 static enum ndr_err_code
ndr_pull_spoolss_UserLevel3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel3
*r
)
17716 uint32_t _ptr_client
;
17717 TALLOC_CTX
*_mem_save_client_0
;
17718 uint32_t _ptr_user
;
17719 TALLOC_CTX
*_mem_save_user_0
;
17720 if (ndr_flags
& NDR_SCALARS
) {
17721 NDR_CHECK(ndr_pull_align(ndr
, 4));
17722 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
17723 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
17724 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size2
));
17725 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
17727 NDR_PULL_ALLOC(ndr
, r
->client
);
17731 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
17733 NDR_PULL_ALLOC(ndr
, r
->user
);
17737 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
17738 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
17739 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
17740 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
17741 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reserved
));
17743 if (ndr_flags
& NDR_BUFFERS
) {
17745 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17746 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
17747 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
17748 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
17749 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
17750 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
));
17752 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
17753 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
17754 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
17757 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17758 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
17759 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
17760 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
17761 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
17762 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
));
17764 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
17765 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
17766 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
17769 return NDR_ERR_SUCCESS
;
17772 _PUBLIC_
void ndr_print_spoolss_UserLevel3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel3
*r
)
17774 ndr_print_struct(ndr
, name
, "spoolss_UserLevel3");
17776 ndr_print_uint32(ndr
, "size", r
->size
);
17777 ndr_print_uint32(ndr
, "flags", r
->flags
);
17778 ndr_print_uint32(ndr
, "size2", r
->size2
);
17779 ndr_print_ptr(ndr
, "client", r
->client
);
17782 ndr_print_string(ndr
, "client", r
->client
);
17785 ndr_print_ptr(ndr
, "user", r
->user
);
17788 ndr_print_string(ndr
, "user", r
->user
);
17791 ndr_print_uint32(ndr
, "build", r
->build
);
17792 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
17793 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
17794 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
17795 ndr_print_udlong(ndr
, "reserved", r
->reserved
);
17799 static enum ndr_err_code
ndr_push_spoolss_UserLevel(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_UserLevel
*r
)
17801 if (ndr_flags
& NDR_SCALARS
) {
17802 int level
= ndr_push_get_switch_value(ndr
, r
);
17803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
17806 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level1
));
17810 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level2
));
17814 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level3
));
17818 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17821 if (ndr_flags
& NDR_BUFFERS
) {
17822 int level
= ndr_push_get_switch_value(ndr
, r
);
17826 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
17832 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
17838 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
17843 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17846 return NDR_ERR_SUCCESS
;
17849 static enum ndr_err_code
ndr_pull_spoolss_UserLevel(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_UserLevel
*r
)
17853 TALLOC_CTX
*_mem_save_level1_0
;
17854 TALLOC_CTX
*_mem_save_level2_0
;
17855 TALLOC_CTX
*_mem_save_level3_0
;
17856 level
= ndr_pull_get_switch_value(ndr
, r
);
17857 if (ndr_flags
& NDR_SCALARS
) {
17858 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
17859 if (_level
!= level
) {
17860 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
17864 uint32_t _ptr_level1
;
17865 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level1
));
17867 NDR_PULL_ALLOC(ndr
, r
->level1
);
17874 uint32_t _ptr_level2
;
17875 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level2
));
17877 NDR_PULL_ALLOC(ndr
, r
->level2
);
17884 uint32_t _ptr_level3
;
17885 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level3
));
17887 NDR_PULL_ALLOC(ndr
, r
->level3
);
17894 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17897 if (ndr_flags
& NDR_BUFFERS
) {
17901 _mem_save_level1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17902 NDR_PULL_SET_MEM_CTX(ndr
, r
->level1
, 0);
17903 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
17904 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level1_0
, 0);
17910 _mem_save_level2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17911 NDR_PULL_SET_MEM_CTX(ndr
, r
->level2
, 0);
17912 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
17913 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level2_0
, 0);
17919 _mem_save_level3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17920 NDR_PULL_SET_MEM_CTX(ndr
, r
->level3
, 0);
17921 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
17922 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level3_0
, 0);
17927 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17930 return NDR_ERR_SUCCESS
;
17933 _PUBLIC_
void ndr_print_spoolss_UserLevel(struct ndr_print
*ndr
, const char *name
, const union spoolss_UserLevel
*r
)
17936 level
= ndr_print_get_switch_value(ndr
, r
);
17937 ndr_print_union(ndr
, name
, level
, "spoolss_UserLevel");
17940 ndr_print_ptr(ndr
, "level1", r
->level1
);
17943 ndr_print_spoolss_UserLevel1(ndr
, "level1", r
->level1
);
17949 ndr_print_ptr(ndr
, "level2", r
->level2
);
17952 ndr_print_spoolss_UserLevel2(ndr
, "level2", r
->level2
);
17958 ndr_print_ptr(ndr
, "level3", r
->level3
);
17961 ndr_print_spoolss_UserLevel3(ndr
, "level3", r
->level3
);
17967 ndr_print_bad_level(ndr
, name
, level
);
17971 static enum ndr_err_code
ndr_push_spoolss_UserLevelCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevelCtr
*r
)
17973 if (ndr_flags
& NDR_SCALARS
) {
17974 NDR_CHECK(ndr_push_align(ndr
, 4));
17975 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
17976 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->user_info
, r
->level
));
17977 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
17979 if (ndr_flags
& NDR_BUFFERS
) {
17980 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
17982 return NDR_ERR_SUCCESS
;
17985 static enum ndr_err_code
ndr_pull_spoolss_UserLevelCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevelCtr
*r
)
17987 if (ndr_flags
& NDR_SCALARS
) {
17988 NDR_CHECK(ndr_pull_align(ndr
, 4));
17989 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
17990 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->user_info
, r
->level
));
17991 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
17993 if (ndr_flags
& NDR_BUFFERS
) {
17994 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
17996 return NDR_ERR_SUCCESS
;
17999 _PUBLIC_
void ndr_print_spoolss_UserLevelCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevelCtr
*r
)
18001 ndr_print_struct(ndr
, name
, "spoolss_UserLevelCtr");
18003 ndr_print_uint32(ndr
, "level", r
->level
);
18004 ndr_print_set_switch_value(ndr
, &r
->user_info
, r
->level
);
18005 ndr_print_spoolss_UserLevel(ndr
, "user_info", &r
->user_info
);
18009 static enum ndr_err_code
ndr_push_spoolss_AccessRights(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18011 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18012 return NDR_ERR_SUCCESS
;
18015 static enum ndr_err_code
ndr_pull_spoolss_AccessRights(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18018 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18020 return NDR_ERR_SUCCESS
;
18023 _PUBLIC_
void ndr_print_spoolss_AccessRights(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18025 ndr_print_uint32(ndr
, name
, r
);
18027 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER
, r
);
18028 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE
, r
);
18029 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER
, r
);
18030 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE
, r
);
18031 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER
, r
);
18032 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ
, r
);
18036 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeleteDriverFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18038 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18039 return NDR_ERR_SUCCESS
;
18042 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18045 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18047 return NDR_ERR_SUCCESS
;
18050 _PUBLIC_
void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18052 ndr_print_uint32(ndr
, name
, r
);
18054 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES
, r
);
18055 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION
, r
);
18056 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES
, r
);
18060 static enum ndr_err_code
ndr_push_spoolss_PortProtocol(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortProtocol r
)
18062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18063 return NDR_ERR_SUCCESS
;
18066 static enum ndr_err_code
ndr_pull_spoolss_PortProtocol(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortProtocol
*r
)
18069 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18071 return NDR_ERR_SUCCESS
;
18074 _PUBLIC_
void ndr_print_spoolss_PortProtocol(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortProtocol r
)
18076 const char *val
= NULL
;
18079 case PROTOCOL_RAWTCP_TYPE
: val
= "PROTOCOL_RAWTCP_TYPE"; break;
18080 case PROTOCOL_LPR_TYPE
: val
= "PROTOCOL_LPR_TYPE"; break;
18082 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18085 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData1
*r
)
18087 if (ndr_flags
& NDR_SCALARS
) {
18088 NDR_CHECK(ndr_push_align(ndr
, 4));
18089 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18090 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000001));
18091 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
18092 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
18093 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
18094 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
18095 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18096 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
18097 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18098 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
18099 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
18100 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
18102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
18103 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
18105 if (ndr_flags
& NDR_BUFFERS
) {
18107 return NDR_ERR_SUCCESS
;
18110 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData1
*r
)
18112 if (ndr_flags
& NDR_SCALARS
) {
18113 NDR_CHECK(ndr_pull_align(ndr
, 4));
18114 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18115 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
18116 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
18117 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18118 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
18119 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
18120 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18121 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
18122 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18123 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
18124 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
18125 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18126 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
18127 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
18128 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
18130 if (ndr_flags
& NDR_BUFFERS
) {
18132 return NDR_ERR_SUCCESS
;
18135 _PUBLIC_
void ndr_print_spoolss_PortData1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData1
*r
)
18137 ndr_print_struct(ndr
, name
, "spoolss_PortData1");
18139 ndr_print_string(ndr
, "portname", r
->portname
);
18140 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000001:r
->version
);
18141 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
18142 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
18143 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
18144 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
18145 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
18146 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
18147 ndr_print_string(ndr
, "queue", r
->queue
);
18148 ndr_print_string(ndr
, "ip_address", r
->ip_address
);
18149 ndr_print_string(ndr
, "hardware_address", r
->hardware_address
);
18150 ndr_print_string(ndr
, "device_type", r
->device_type
);
18151 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
18152 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
18153 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
18157 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData2
*r
)
18159 if (ndr_flags
& NDR_SCALARS
) {
18160 NDR_CHECK(ndr_push_align(ndr
, 4));
18161 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000002));
18163 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
18164 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
18165 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
18166 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
18167 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18168 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
18169 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18170 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18171 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
18172 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
18173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
18174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_monitor_mib_index
));
18176 if (ndr_flags
& NDR_BUFFERS
) {
18178 return NDR_ERR_SUCCESS
;
18181 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData2
*r
)
18183 if (ndr_flags
& NDR_SCALARS
) {
18184 NDR_CHECK(ndr_pull_align(ndr
, 4));
18185 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18186 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
18187 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
18188 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18189 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
18190 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
18191 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18192 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
18193 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18194 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18195 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
18196 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
18197 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
18198 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_monitor_mib_index
));
18200 if (ndr_flags
& NDR_BUFFERS
) {
18202 return NDR_ERR_SUCCESS
;
18205 _PUBLIC_
void ndr_print_spoolss_PortData2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData2
*r
)
18207 ndr_print_struct(ndr
, name
, "spoolss_PortData2");
18209 ndr_print_string(ndr
, "portname", r
->portname
);
18210 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000002:r
->version
);
18211 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
18212 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
18213 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
18214 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
18215 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
18216 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
18217 ndr_print_string(ndr
, "queue", r
->queue
);
18218 ndr_print_string(ndr
, "device_type", r
->device_type
);
18219 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
18220 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
18221 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
18222 ndr_print_uint32(ndr
, "port_monitor_mib_index", r
->port_monitor_mib_index
);
18226 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorUi(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorUi
*r
)
18228 if (ndr_flags
& NDR_SCALARS
) {
18229 NDR_CHECK(ndr_push_align(ndr
, 4));
18231 uint32_t _flags_save_string
= ndr
->flags
;
18232 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18233 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
18234 ndr
->flags
= _flags_save_string
;
18237 if (ndr_flags
& NDR_BUFFERS
) {
18239 return NDR_ERR_SUCCESS
;
18242 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorUi(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorUi
*r
)
18244 if (ndr_flags
& NDR_SCALARS
) {
18245 NDR_CHECK(ndr_pull_align(ndr
, 4));
18247 uint32_t _flags_save_string
= ndr
->flags
;
18248 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18249 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
18250 ndr
->flags
= _flags_save_string
;
18253 if (ndr_flags
& NDR_BUFFERS
) {
18255 return NDR_ERR_SUCCESS
;
18258 _PUBLIC_
void ndr_print_spoolss_MonitorUi(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorUi
*r
)
18260 ndr_print_struct(ndr
, name
, "spoolss_MonitorUi");
18262 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
18266 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18268 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18269 return NDR_ERR_SUCCESS
;
18272 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18275 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18277 return NDR_ERR_SUCCESS
;
18280 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18282 ndr_print_uint32(ndr
, name
, r
);
18284 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE
, r
);
18285 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE
, r
);
18286 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES
, r
);
18287 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES
, r
);
18288 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY
, r
);
18289 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER
, r
);
18290 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS
, r
);
18291 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE
, r
);
18295 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinters
*r
)
18297 if (flags
& NDR_IN
) {
18298 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
18299 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
18300 if (r
->in
.server
) {
18301 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18302 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18303 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18304 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18306 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18307 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
18308 if (r
->in
.buffer
) {
18309 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
18311 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
18313 if (flags
& NDR_OUT
) {
18314 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
18316 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
18318 if (r
->out
.needed
== NULL
) {
18319 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18321 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
18322 if (r
->out
.count
== NULL
) {
18323 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18325 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
18326 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18328 return NDR_ERR_SUCCESS
;
18331 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinters
*r
)
18333 uint32_t _ptr_server
;
18334 uint32_t _ptr_buffer
;
18335 uint32_t _ptr_info
;
18336 TALLOC_CTX
*_mem_save_server_0
;
18337 TALLOC_CTX
*_mem_save_buffer_0
;
18338 TALLOC_CTX
*_mem_save_info_0
;
18339 TALLOC_CTX
*_mem_save_needed_0
;
18340 TALLOC_CTX
*_mem_save_count_0
;
18341 if (flags
& NDR_IN
) {
18342 ZERO_STRUCT(r
->out
);
18344 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
18345 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
18347 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
18349 r
->in
.server
= NULL
;
18351 if (r
->in
.server
) {
18352 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18353 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
18354 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
18355 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
18356 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
18357 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
));
18359 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
18360 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
18361 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
18363 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18364 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
18366 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
18368 r
->in
.buffer
= NULL
;
18370 if (r
->in
.buffer
) {
18371 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18372 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
18373 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
18374 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
18376 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
18377 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18378 ZERO_STRUCTP(r
->out
.needed
);
18379 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
18380 ZERO_STRUCTP(r
->out
.count
);
18382 if (flags
& NDR_OUT
) {
18383 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
18385 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
18387 r
->out
.info
= NULL
;
18390 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18391 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
18392 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
18393 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
18395 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18396 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18398 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18399 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
18400 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
18401 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
18402 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18403 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
18405 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18406 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
18407 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
18408 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
18409 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18411 return NDR_ERR_SUCCESS
;
18414 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinters
*r
)
18416 uint32_t cntr_info_0
;
18417 if (flags
& NDR_IN
) {
18418 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
18421 if (flags
& NDR_OUT
) {
18422 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18423 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
18424 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
18426 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18427 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
18430 return NDR_ERR_SUCCESS
;
18433 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinters
*r
)
18435 uint32_t cntr_info_0
;
18436 TALLOC_CTX
*_mem_save_info_0
;
18437 if (flags
& NDR_IN
) {
18438 ZERO_STRUCT(r
->out
);
18440 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18441 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
18443 if (flags
& NDR_OUT
) {
18444 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
18445 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18446 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
18447 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18448 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
18449 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
18451 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18452 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
18454 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
18456 return NDR_ERR_SUCCESS
;
18459 _PUBLIC_
void ndr_print_spoolss_EnumPrinters(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinters
*r
)
18461 uint32_t cntr_info_1
;
18462 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinters");
18464 if (flags
& NDR_SET_VALUES
) {
18465 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18467 if (flags
& NDR_IN
) {
18468 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinters");
18470 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->in
.flags
);
18471 ndr_print_ptr(ndr
, "server", r
->in
.server
);
18473 if (r
->in
.server
) {
18474 ndr_print_string(ndr
, "server", r
->in
.server
);
18477 ndr_print_uint32(ndr
, "level", r
->in
.level
);
18478 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
18480 if (r
->in
.buffer
) {
18481 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
18484 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
18487 if (flags
& NDR_OUT
) {
18488 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinters");
18490 ndr_print_ptr(ndr
, "count", r
->out
.count
);
18492 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
18494 ndr_print_ptr(ndr
, "info", r
->out
.info
);
18497 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
18499 for (cntr_info_1
=0;cntr_info_1
<*r
->out
.count
;cntr_info_1
++) {
18501 if (asprintf(&idx_1
, "[%d]", cntr_info_1
) != -1) {
18502 ndr_print_set_switch_value(ndr
, &r
->out
.info
[cntr_info_1
], r
->in
.level
);
18503 ndr_print_spoolss_PrinterInfo(ndr
, "info", &r
->out
.info
[cntr_info_1
]);
18510 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
18512 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
18514 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18520 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinter
*r
)
18522 if (flags
& NDR_IN
) {
18523 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
18524 if (r
->in
.printername
) {
18525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
18526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18527 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
18528 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18530 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
18531 if (r
->in
.datatype
) {
18532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
18533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
18535 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18537 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
18538 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
18540 if (flags
& NDR_OUT
) {
18541 if (r
->out
.handle
== NULL
) {
18542 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18544 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
18545 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18547 return NDR_ERR_SUCCESS
;
18550 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinter
*r
)
18552 uint32_t _ptr_printername
;
18553 uint32_t _ptr_datatype
;
18554 TALLOC_CTX
*_mem_save_printername_0
;
18555 TALLOC_CTX
*_mem_save_datatype_0
;
18556 TALLOC_CTX
*_mem_save_handle_0
;
18557 if (flags
& NDR_IN
) {
18558 ZERO_STRUCT(r
->out
);
18560 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
18561 if (_ptr_printername
) {
18562 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
18564 r
->in
.printername
= NULL
;
18566 if (r
->in
.printername
) {
18567 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18568 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
18569 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
18570 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
18571 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
18572 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
));
18574 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
18575 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
18576 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
18578 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
18579 if (_ptr_datatype
) {
18580 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
18582 r
->in
.datatype
= NULL
;
18584 if (r
->in
.datatype
) {
18585 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18586 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
18587 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
18588 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
18589 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
18590 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
));
18592 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
18593 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
18594 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
18596 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
18597 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
18598 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
18599 ZERO_STRUCTP(r
->out
.handle
);
18601 if (flags
& NDR_OUT
) {
18602 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18603 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
18605 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18606 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
18607 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
18608 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
18609 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18611 return NDR_ERR_SUCCESS
;
18614 _PUBLIC_
void ndr_print_spoolss_OpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinter
*r
)
18616 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinter");
18618 if (flags
& NDR_SET_VALUES
) {
18619 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18621 if (flags
& NDR_IN
) {
18622 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinter");
18624 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
18626 if (r
->in
.printername
) {
18627 ndr_print_string(ndr
, "printername", r
->in
.printername
);
18630 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
18632 if (r
->in
.datatype
) {
18633 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
18636 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
18637 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
18640 if (flags
& NDR_OUT
) {
18641 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinter");
18643 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
18645 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
18647 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18653 static enum ndr_err_code
ndr_push_spoolss_SetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetJob
*r
)
18655 if (flags
& NDR_IN
) {
18656 if (r
->in
.handle
== NULL
) {
18657 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18659 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
18660 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
18661 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.ctr
));
18663 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
18665 NDR_CHECK(ndr_push_spoolss_JobControl(ndr
, NDR_SCALARS
, r
->in
.command
));
18667 if (flags
& NDR_OUT
) {
18668 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18670 return NDR_ERR_SUCCESS
;
18673 static enum ndr_err_code
ndr_pull_spoolss_SetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetJob
*r
)
18676 TALLOC_CTX
*_mem_save_handle_0
;
18677 TALLOC_CTX
*_mem_save_ctr_0
;
18678 if (flags
& NDR_IN
) {
18679 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18680 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
18682 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18683 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
18684 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
18685 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
18686 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
18687 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
18689 NDR_PULL_ALLOC(ndr
, r
->in
.ctr
);
18694 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18695 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.ctr
, 0);
18696 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
18697 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, 0);
18699 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
18701 if (flags
& NDR_OUT
) {
18702 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18704 return NDR_ERR_SUCCESS
;
18707 _PUBLIC_
void ndr_print_spoolss_SetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetJob
*r
)
18709 ndr_print_struct(ndr
, name
, "spoolss_SetJob");
18711 if (flags
& NDR_SET_VALUES
) {
18712 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18714 if (flags
& NDR_IN
) {
18715 ndr_print_struct(ndr
, "in", "spoolss_SetJob");
18717 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
18719 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
18721 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
18722 ndr_print_ptr(ndr
, "ctr", r
->in
.ctr
);
18725 ndr_print_spoolss_JobInfoContainer(ndr
, "ctr", r
->in
.ctr
);
18728 ndr_print_spoolss_JobControl(ndr
, "command", r
->in
.command
);
18731 if (flags
& NDR_OUT
) {
18732 ndr_print_struct(ndr
, "out", "spoolss_SetJob");
18734 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18740 static enum ndr_err_code
ndr_push_spoolss_GetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetJob
*r
)
18742 if (flags
& NDR_IN
) {
18743 if (r
->in
.handle
== NULL
) {
18744 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18746 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
18747 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
18748 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18749 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
18750 if (r
->in
.buffer
) {
18751 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
18753 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
18755 if (flags
& NDR_OUT
) {
18756 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
18759 struct ndr_push
*_ndr_info
;
18760 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
18761 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
18762 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
18763 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
18766 if (r
->out
.needed
== NULL
) {
18767 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18769 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
18770 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18772 return NDR_ERR_SUCCESS
;
18775 static enum ndr_err_code
ndr_pull_spoolss_GetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetJob
*r
)
18777 uint32_t _ptr_buffer
;
18778 uint32_t _ptr_info
;
18779 TALLOC_CTX
*_mem_save_handle_0
;
18780 TALLOC_CTX
*_mem_save_buffer_0
;
18781 TALLOC_CTX
*_mem_save_info_0
;
18782 TALLOC_CTX
*_mem_save_needed_0
;
18783 if (flags
& NDR_IN
) {
18784 ZERO_STRUCT(r
->out
);
18786 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18787 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
18789 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18790 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
18791 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
18792 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
18793 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
18794 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18795 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
18797 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
18799 r
->in
.buffer
= NULL
;
18801 if (r
->in
.buffer
) {
18802 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18803 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
18804 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
18805 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
18807 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
18808 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18809 ZERO_STRUCTP(r
->out
.needed
);
18811 if (flags
& NDR_OUT
) {
18812 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
18814 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
18816 r
->out
.info
= NULL
;
18819 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18820 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
18822 struct ndr_pull
*_ndr_info
;
18823 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
18824 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
18825 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
18826 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
18828 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
18830 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18831 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18833 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18834 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
18835 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
18836 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
18837 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18839 return NDR_ERR_SUCCESS
;
18842 _PUBLIC_
void ndr_print_spoolss_GetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetJob
*r
)
18844 ndr_print_struct(ndr
, name
, "spoolss_GetJob");
18846 if (flags
& NDR_SET_VALUES
) {
18847 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18849 if (flags
& NDR_IN
) {
18850 ndr_print_struct(ndr
, "in", "spoolss_GetJob");
18852 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
18854 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
18856 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
18857 ndr_print_uint32(ndr
, "level", r
->in
.level
);
18858 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
18860 if (r
->in
.buffer
) {
18861 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
18864 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
18867 if (flags
& NDR_OUT
) {
18868 ndr_print_struct(ndr
, "out", "spoolss_GetJob");
18870 ndr_print_ptr(ndr
, "info", r
->out
.info
);
18873 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
18874 ndr_print_spoolss_JobInfo(ndr
, "info", r
->out
.info
);
18877 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
18879 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
18881 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18887 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumJobs
*r
)
18889 if (flags
& NDR_IN
) {
18890 if (r
->in
.handle
== NULL
) {
18891 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18893 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
18894 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.firstjob
));
18895 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.numjobs
));
18896 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18897 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
18898 if (r
->in
.buffer
) {
18899 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
18901 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
18903 if (flags
& NDR_OUT
) {
18904 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
18906 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
18908 if (r
->out
.needed
== NULL
) {
18909 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18911 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
18912 if (r
->out
.count
== NULL
) {
18913 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18915 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
18916 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18918 return NDR_ERR_SUCCESS
;
18921 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumJobs
*r
)
18923 uint32_t _ptr_buffer
;
18924 uint32_t _ptr_info
;
18925 TALLOC_CTX
*_mem_save_handle_0
;
18926 TALLOC_CTX
*_mem_save_buffer_0
;
18927 TALLOC_CTX
*_mem_save_info_0
;
18928 TALLOC_CTX
*_mem_save_needed_0
;
18929 TALLOC_CTX
*_mem_save_count_0
;
18930 if (flags
& NDR_IN
) {
18931 ZERO_STRUCT(r
->out
);
18933 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18934 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
18936 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18937 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
18938 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
18939 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
18940 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.firstjob
));
18941 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.numjobs
));
18942 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18943 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
18945 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
18947 r
->in
.buffer
= NULL
;
18949 if (r
->in
.buffer
) {
18950 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18951 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
18952 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
18953 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
18955 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
18956 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18957 ZERO_STRUCTP(r
->out
.needed
);
18958 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
18959 ZERO_STRUCTP(r
->out
.count
);
18961 if (flags
& NDR_OUT
) {
18962 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
18964 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
18966 r
->out
.info
= NULL
;
18969 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18970 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
18971 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
18972 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
18974 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18975 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18977 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18978 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
18979 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
18980 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
18981 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18982 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
18984 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18985 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
18986 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
18987 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
18988 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18990 return NDR_ERR_SUCCESS
;
18993 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumJobs
*r
)
18995 uint32_t cntr_info_0
;
18996 if (flags
& NDR_IN
) {
18997 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18998 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
19000 if (flags
& NDR_OUT
) {
19001 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19002 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19003 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19005 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19006 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19009 return NDR_ERR_SUCCESS
;
19012 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumJobs
*r
)
19014 uint32_t cntr_info_0
;
19015 TALLOC_CTX
*_mem_save_info_0
;
19016 if (flags
& NDR_IN
) {
19017 ZERO_STRUCT(r
->out
);
19019 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19020 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
19022 if (flags
& NDR_OUT
) {
19023 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
19024 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19025 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19026 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19027 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19028 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19030 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19031 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19033 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19035 return NDR_ERR_SUCCESS
;
19038 _PUBLIC_
void ndr_print_spoolss_EnumJobs(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumJobs
*r
)
19040 uint32_t cntr_info_1
;
19041 ndr_print_struct(ndr
, name
, "spoolss_EnumJobs");
19043 if (flags
& NDR_SET_VALUES
) {
19044 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19046 if (flags
& NDR_IN
) {
19047 ndr_print_struct(ndr
, "in", "spoolss_EnumJobs");
19049 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19051 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19053 ndr_print_uint32(ndr
, "firstjob", r
->in
.firstjob
);
19054 ndr_print_uint32(ndr
, "numjobs", r
->in
.numjobs
);
19055 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19056 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19058 if (r
->in
.buffer
) {
19059 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19062 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19065 if (flags
& NDR_OUT
) {
19066 ndr_print_struct(ndr
, "out", "spoolss_EnumJobs");
19068 ndr_print_ptr(ndr
, "count", r
->out
.count
);
19070 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
19072 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19075 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
19077 for (cntr_info_1
=0;cntr_info_1
<*r
->out
.count
;cntr_info_1
++) {
19079 if (asprintf(&idx_1
, "[%d]", cntr_info_1
) != -1) {
19080 ndr_print_set_switch_value(ndr
, &r
->out
.info
[cntr_info_1
], r
->in
.level
);
19081 ndr_print_spoolss_JobInfo(ndr
, "info", &r
->out
.info
[cntr_info_1
]);
19088 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19090 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19092 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19098 static enum ndr_err_code
ndr_push_spoolss_AddPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinter
*r
)
19100 if (flags
& NDR_IN
) {
19102 if (flags
& NDR_OUT
) {
19103 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19105 return NDR_ERR_SUCCESS
;
19108 static enum ndr_err_code
ndr_pull_spoolss_AddPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinter
*r
)
19110 if (flags
& NDR_IN
) {
19112 if (flags
& NDR_OUT
) {
19113 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19115 return NDR_ERR_SUCCESS
;
19118 _PUBLIC_
void ndr_print_spoolss_AddPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinter
*r
)
19120 ndr_print_struct(ndr
, name
, "spoolss_AddPrinter");
19122 if (flags
& NDR_SET_VALUES
) {
19123 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19125 if (flags
& NDR_IN
) {
19126 ndr_print_struct(ndr
, "in", "spoolss_AddPrinter");
19130 if (flags
& NDR_OUT
) {
19131 ndr_print_struct(ndr
, "out", "spoolss_AddPrinter");
19133 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19139 static enum ndr_err_code
ndr_push_spoolss_DeletePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinter
*r
)
19141 if (flags
& NDR_IN
) {
19142 if (r
->in
.handle
== NULL
) {
19143 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19145 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19147 if (flags
& NDR_OUT
) {
19148 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19150 return NDR_ERR_SUCCESS
;
19153 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinter
*r
)
19155 TALLOC_CTX
*_mem_save_handle_0
;
19156 if (flags
& NDR_IN
) {
19157 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19158 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19160 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19161 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19162 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19163 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19165 if (flags
& NDR_OUT
) {
19166 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19168 return NDR_ERR_SUCCESS
;
19171 _PUBLIC_
void ndr_print_spoolss_DeletePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinter
*r
)
19173 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinter");
19175 if (flags
& NDR_SET_VALUES
) {
19176 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19178 if (flags
& NDR_IN
) {
19179 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinter");
19181 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19183 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19187 if (flags
& NDR_OUT
) {
19188 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinter");
19190 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19196 static enum ndr_err_code
ndr_push_spoolss_SetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinter
*r
)
19198 if (flags
& NDR_IN
) {
19199 if (r
->in
.handle
== NULL
) {
19200 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19202 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19203 if (r
->in
.info_ctr
== NULL
) {
19204 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19206 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
19207 if (r
->in
.devmode_ctr
== NULL
) {
19208 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19210 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
19211 if (r
->in
.secdesc_ctr
== NULL
) {
19212 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19214 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
19215 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr
, NDR_SCALARS
, r
->in
.command
));
19217 if (flags
& NDR_OUT
) {
19218 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19220 return NDR_ERR_SUCCESS
;
19223 static enum ndr_err_code
ndr_pull_spoolss_SetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinter
*r
)
19225 TALLOC_CTX
*_mem_save_handle_0
;
19226 TALLOC_CTX
*_mem_save_info_ctr_0
;
19227 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
19228 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
19229 if (flags
& NDR_IN
) {
19230 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19231 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19233 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19234 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19235 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19236 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19237 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19238 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
19240 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19241 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
19242 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
19243 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
19244 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19245 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
19247 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19248 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
19249 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
19250 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
19251 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19252 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
19254 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19255 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
19256 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
19257 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
19258 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
19260 if (flags
& NDR_OUT
) {
19261 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19263 return NDR_ERR_SUCCESS
;
19266 _PUBLIC_
void ndr_print_spoolss_SetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinter
*r
)
19268 ndr_print_struct(ndr
, name
, "spoolss_SetPrinter");
19270 if (flags
& NDR_SET_VALUES
) {
19271 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19273 if (flags
& NDR_IN
) {
19274 ndr_print_struct(ndr
, "in", "spoolss_SetPrinter");
19276 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19278 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19280 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
19282 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
19284 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
19286 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
19288 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
19290 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
19292 ndr_print_spoolss_PrinterControl(ndr
, "command", r
->in
.command
);
19295 if (flags
& NDR_OUT
) {
19296 ndr_print_struct(ndr
, "out", "spoolss_SetPrinter");
19298 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19304 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinter
*r
)
19306 if (flags
& NDR_IN
) {
19307 if (r
->in
.handle
== NULL
) {
19308 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19310 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19311 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19312 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19313 if (r
->in
.buffer
) {
19314 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19316 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19318 if (flags
& NDR_OUT
) {
19319 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19322 struct ndr_push
*_ndr_info
;
19323 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
19324 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
19325 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
19326 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
19329 if (r
->out
.needed
== NULL
) {
19330 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19333 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19335 return NDR_ERR_SUCCESS
;
19338 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinter
*r
)
19340 uint32_t _ptr_buffer
;
19341 uint32_t _ptr_info
;
19342 TALLOC_CTX
*_mem_save_handle_0
;
19343 TALLOC_CTX
*_mem_save_buffer_0
;
19344 TALLOC_CTX
*_mem_save_info_0
;
19345 TALLOC_CTX
*_mem_save_needed_0
;
19346 if (flags
& NDR_IN
) {
19347 ZERO_STRUCT(r
->out
);
19349 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19350 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19352 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19353 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19354 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19355 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19356 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19357 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19359 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19361 r
->in
.buffer
= NULL
;
19363 if (r
->in
.buffer
) {
19364 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19365 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19366 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19369 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19370 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19371 ZERO_STRUCTP(r
->out
.needed
);
19373 if (flags
& NDR_OUT
) {
19374 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19376 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19378 r
->out
.info
= NULL
;
19381 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19382 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19384 struct ndr_pull
*_ndr_info
;
19385 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
19386 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
19387 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
19388 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
19390 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19392 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19393 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19395 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19396 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19397 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19398 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19399 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19401 return NDR_ERR_SUCCESS
;
19404 _PUBLIC_
void ndr_print_spoolss_GetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinter
*r
)
19406 ndr_print_struct(ndr
, name
, "spoolss_GetPrinter");
19408 if (flags
& NDR_SET_VALUES
) {
19409 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19411 if (flags
& NDR_IN
) {
19412 ndr_print_struct(ndr
, "in", "spoolss_GetPrinter");
19414 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19416 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19418 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19419 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19421 if (r
->in
.buffer
) {
19422 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19425 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19428 if (flags
& NDR_OUT
) {
19429 ndr_print_struct(ndr
, "out", "spoolss_GetPrinter");
19431 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19434 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
19435 ndr_print_spoolss_PrinterInfo(ndr
, "info", r
->out
.info
);
19438 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19440 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19442 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19448 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
19450 if (flags
& NDR_IN
) {
19451 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
19452 if (r
->in
.servername
) {
19453 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
19454 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19455 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
19456 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19458 if (r
->in
.info_ctr
== NULL
) {
19459 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19461 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
19463 if (flags
& NDR_OUT
) {
19464 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19466 return NDR_ERR_SUCCESS
;
19469 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriver
*r
)
19471 uint32_t _ptr_servername
;
19472 TALLOC_CTX
*_mem_save_servername_0
;
19473 TALLOC_CTX
*_mem_save_info_ctr_0
;
19474 if (flags
& NDR_IN
) {
19475 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
19476 if (_ptr_servername
) {
19477 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
19479 r
->in
.servername
= NULL
;
19481 if (r
->in
.servername
) {
19482 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19483 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
19484 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
19485 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
19486 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
19487 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
));
19489 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
19490 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
19491 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
19493 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19494 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
19496 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19497 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
19498 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
19499 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
19501 if (flags
& NDR_OUT
) {
19502 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19504 return NDR_ERR_SUCCESS
;
19507 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
19509 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriver");
19511 if (flags
& NDR_SET_VALUES
) {
19512 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19514 if (flags
& NDR_IN
) {
19515 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriver");
19517 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
19519 if (r
->in
.servername
) {
19520 ndr_print_string(ndr
, "servername", r
->in
.servername
);
19523 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
19525 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
19529 if (flags
& NDR_OUT
) {
19530 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriver");
19532 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19538 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDrivers
*r
)
19540 if (flags
& NDR_IN
) {
19541 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
19542 if (r
->in
.server
) {
19543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19544 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19545 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19546 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19548 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
19549 if (r
->in
.environment
) {
19550 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
19551 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19552 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
19553 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19555 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19556 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19557 if (r
->in
.buffer
) {
19558 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19560 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19562 if (flags
& NDR_OUT
) {
19563 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19565 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
19567 if (r
->out
.needed
== NULL
) {
19568 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19570 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19571 if (r
->out
.count
== NULL
) {
19572 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19574 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
19575 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19577 return NDR_ERR_SUCCESS
;
19580 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDrivers
*r
)
19582 uint32_t _ptr_server
;
19583 uint32_t _ptr_environment
;
19584 uint32_t _ptr_buffer
;
19585 uint32_t _ptr_info
;
19586 TALLOC_CTX
*_mem_save_server_0
;
19587 TALLOC_CTX
*_mem_save_environment_0
;
19588 TALLOC_CTX
*_mem_save_buffer_0
;
19589 TALLOC_CTX
*_mem_save_info_0
;
19590 TALLOC_CTX
*_mem_save_needed_0
;
19591 TALLOC_CTX
*_mem_save_count_0
;
19592 if (flags
& NDR_IN
) {
19593 ZERO_STRUCT(r
->out
);
19595 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
19597 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
19599 r
->in
.server
= NULL
;
19601 if (r
->in
.server
) {
19602 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19603 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
19604 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
19605 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
19606 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
19607 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
));
19609 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
19610 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
19611 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
19613 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
19614 if (_ptr_environment
) {
19615 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
19617 r
->in
.environment
= NULL
;
19619 if (r
->in
.environment
) {
19620 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19621 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
19622 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
19623 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
19624 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
19625 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
));
19627 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
19628 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
19629 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
19631 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19632 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19634 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19636 r
->in
.buffer
= NULL
;
19638 if (r
->in
.buffer
) {
19639 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19640 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19641 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19642 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19644 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19645 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19646 ZERO_STRUCTP(r
->out
.needed
);
19647 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19648 ZERO_STRUCTP(r
->out
.count
);
19650 if (flags
& NDR_OUT
) {
19651 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19653 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19655 r
->out
.info
= NULL
;
19658 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19659 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19660 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
19661 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19663 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19664 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19666 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19667 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19668 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19669 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19670 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19671 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19673 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19674 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
19675 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
19676 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
19677 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19679 return NDR_ERR_SUCCESS
;
19682 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDrivers
*r
)
19684 uint32_t cntr_info_0
;
19685 if (flags
& NDR_IN
) {
19686 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19687 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
19689 if (flags
& NDR_OUT
) {
19690 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19691 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19692 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19694 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19695 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19698 return NDR_ERR_SUCCESS
;
19701 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDrivers
*r
)
19703 uint32_t cntr_info_0
;
19704 TALLOC_CTX
*_mem_save_info_0
;
19705 if (flags
& NDR_IN
) {
19706 ZERO_STRUCT(r
->out
);
19708 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19709 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
19711 if (flags
& NDR_OUT
) {
19712 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
19713 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19714 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19715 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19716 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19717 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19719 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19720 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19722 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19724 return NDR_ERR_SUCCESS
;
19727 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDrivers
*r
)
19729 uint32_t cntr_info_1
;
19730 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDrivers");
19732 if (flags
& NDR_SET_VALUES
) {
19733 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19735 if (flags
& NDR_IN
) {
19736 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDrivers");
19738 ndr_print_ptr(ndr
, "server", r
->in
.server
);
19740 if (r
->in
.server
) {
19741 ndr_print_string(ndr
, "server", r
->in
.server
);
19744 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
19746 if (r
->in
.environment
) {
19747 ndr_print_string(ndr
, "environment", r
->in
.environment
);
19750 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19751 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19753 if (r
->in
.buffer
) {
19754 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19757 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19760 if (flags
& NDR_OUT
) {
19761 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDrivers");
19763 ndr_print_ptr(ndr
, "count", r
->out
.count
);
19765 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
19767 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19770 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
19772 for (cntr_info_1
=0;cntr_info_1
<*r
->out
.count
;cntr_info_1
++) {
19774 if (asprintf(&idx_1
, "[%d]", cntr_info_1
) != -1) {
19775 ndr_print_set_switch_value(ndr
, &r
->out
.info
[cntr_info_1
], r
->in
.level
);
19776 ndr_print_spoolss_DriverInfo(ndr
, "info", &r
->out
.info
[cntr_info_1
]);
19783 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19785 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19787 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19793 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
19795 if (flags
& NDR_IN
) {
19797 if (flags
& NDR_OUT
) {
19798 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19800 return NDR_ERR_SUCCESS
;
19803 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver
*r
)
19805 if (flags
& NDR_IN
) {
19807 if (flags
& NDR_OUT
) {
19808 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19810 return NDR_ERR_SUCCESS
;
19813 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
19815 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver");
19817 if (flags
& NDR_SET_VALUES
) {
19818 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19820 if (flags
& NDR_IN
) {
19821 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver");
19825 if (flags
& NDR_OUT
) {
19826 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver");
19828 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19834 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
19836 if (flags
& NDR_IN
) {
19837 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
19838 if (r
->in
.server
) {
19839 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19840 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19841 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19842 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19844 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
19845 if (r
->in
.environment
) {
19846 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
19847 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19848 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
19849 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19851 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19852 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19853 if (r
->in
.buffer
) {
19854 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19856 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19858 if (flags
& NDR_OUT
) {
19859 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19862 struct ndr_push
*_ndr_info
;
19863 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
19864 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
19865 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
19866 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
19869 if (r
->out
.needed
== NULL
) {
19870 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19872 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19873 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19875 return NDR_ERR_SUCCESS
;
19878 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverDirectory
*r
)
19880 uint32_t _ptr_server
;
19881 uint32_t _ptr_environment
;
19882 uint32_t _ptr_buffer
;
19883 uint32_t _ptr_info
;
19884 TALLOC_CTX
*_mem_save_server_0
;
19885 TALLOC_CTX
*_mem_save_environment_0
;
19886 TALLOC_CTX
*_mem_save_buffer_0
;
19887 TALLOC_CTX
*_mem_save_info_0
;
19888 TALLOC_CTX
*_mem_save_needed_0
;
19889 if (flags
& NDR_IN
) {
19890 ZERO_STRUCT(r
->out
);
19892 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
19894 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
19896 r
->in
.server
= NULL
;
19898 if (r
->in
.server
) {
19899 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19900 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
19901 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
19902 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
19903 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
19904 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
));
19906 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
19907 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
19908 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
19910 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
19911 if (_ptr_environment
) {
19912 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
19914 r
->in
.environment
= NULL
;
19916 if (r
->in
.environment
) {
19917 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19918 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
19919 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
19920 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
19921 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
19922 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
));
19924 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
19925 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
19926 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
19928 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19929 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19931 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19933 r
->in
.buffer
= NULL
;
19935 if (r
->in
.buffer
) {
19936 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19937 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19938 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19939 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19941 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19942 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19943 ZERO_STRUCTP(r
->out
.needed
);
19945 if (flags
& NDR_OUT
) {
19946 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19948 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19950 r
->out
.info
= NULL
;
19953 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19954 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19956 struct ndr_pull
*_ndr_info
;
19957 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
19958 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
19959 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
19960 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
19962 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19964 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19965 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19967 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19968 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19969 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19970 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19971 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19973 return NDR_ERR_SUCCESS
;
19976 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
19978 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverDirectory");
19980 if (flags
& NDR_SET_VALUES
) {
19981 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19983 if (flags
& NDR_IN
) {
19984 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverDirectory");
19986 ndr_print_ptr(ndr
, "server", r
->in
.server
);
19988 if (r
->in
.server
) {
19989 ndr_print_string(ndr
, "server", r
->in
.server
);
19992 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
19994 if (r
->in
.environment
) {
19995 ndr_print_string(ndr
, "environment", r
->in
.environment
);
19998 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19999 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20001 if (r
->in
.buffer
) {
20002 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20005 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20008 if (flags
& NDR_OUT
) {
20009 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverDirectory");
20011 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20014 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20015 ndr_print_spoolss_DriverDirectoryInfo(ndr
, "info", r
->out
.info
);
20018 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20020 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20022 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20028 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
20030 if (flags
& NDR_IN
) {
20031 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20032 if (r
->in
.server
) {
20033 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20034 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20035 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20036 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20038 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20039 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20040 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20041 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20042 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
20043 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20044 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
20045 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20047 if (flags
& NDR_OUT
) {
20048 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20050 return NDR_ERR_SUCCESS
;
20053 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriver
*r
)
20055 uint32_t _ptr_server
;
20056 TALLOC_CTX
*_mem_save_server_0
;
20057 if (flags
& NDR_IN
) {
20058 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20060 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20062 r
->in
.server
= NULL
;
20064 if (r
->in
.server
) {
20065 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20066 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20067 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20068 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20069 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20070 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
));
20072 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20073 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20074 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20076 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
20077 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
20078 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
20079 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
));
20081 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
20082 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
20083 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
20084 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
20085 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
20086 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
));
20088 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
20089 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
20091 if (flags
& NDR_OUT
) {
20092 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20094 return NDR_ERR_SUCCESS
;
20097 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
20099 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriver");
20101 if (flags
& NDR_SET_VALUES
) {
20102 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20104 if (flags
& NDR_IN
) {
20105 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriver");
20107 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20109 if (r
->in
.server
) {
20110 ndr_print_string(ndr
, "server", r
->in
.server
);
20113 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
20114 ndr_print_string(ndr
, "driver", r
->in
.driver
);
20117 if (flags
& NDR_OUT
) {
20118 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriver");
20120 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20126 static enum ndr_err_code
ndr_push_spoolss_AddPrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
20128 if (flags
& NDR_IN
) {
20129 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20130 if (r
->in
.server
) {
20131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20133 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20134 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20139 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20140 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
20141 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20142 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
20143 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
));
20144 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
20145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20146 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
20147 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
));
20149 if (flags
& NDR_OUT
) {
20150 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20152 return NDR_ERR_SUCCESS
;
20155 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProcessor
*r
)
20157 uint32_t _ptr_server
;
20158 TALLOC_CTX
*_mem_save_server_0
;
20159 if (flags
& NDR_IN
) {
20160 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20162 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20164 r
->in
.server
= NULL
;
20166 if (r
->in
.server
) {
20167 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20168 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20169 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20170 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20171 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20172 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
));
20174 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20175 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20176 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20178 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
20179 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
20180 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
20181 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
));
20183 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
20184 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
20185 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.path_name
));
20186 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.path_name
));
20187 if (ndr_get_array_length(ndr
, &r
->in
.path_name
) > ndr_get_array_size(ndr
, &r
->in
.path_name
)) {
20188 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
));
20190 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.path_name
), sizeof(uint16_t)));
20191 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
));
20192 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
20193 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
20194 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
20195 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
));
20197 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
20198 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
));
20200 if (flags
& NDR_OUT
) {
20201 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20203 return NDR_ERR_SUCCESS
;
20206 _PUBLIC_
void ndr_print_spoolss_AddPrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
20208 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProcessor");
20210 if (flags
& NDR_SET_VALUES
) {
20211 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20213 if (flags
& NDR_IN
) {
20214 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProcessor");
20216 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20218 if (r
->in
.server
) {
20219 ndr_print_string(ndr
, "server", r
->in
.server
);
20222 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
20223 ndr_print_string(ndr
, "path_name", r
->in
.path_name
);
20224 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
20227 if (flags
& NDR_OUT
) {
20228 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProcessor");
20230 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20236 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcessors
*r
)
20238 if (flags
& NDR_IN
) {
20239 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
20240 if (r
->in
.servername
) {
20241 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20242 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20243 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20244 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20246 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
20247 if (r
->in
.environment
) {
20248 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20249 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20251 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20253 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20254 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20255 if (r
->in
.buffer
) {
20256 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20258 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20260 if (flags
& NDR_OUT
) {
20261 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20263 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20265 if (r
->out
.needed
== NULL
) {
20266 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20268 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20269 if (r
->out
.count
== NULL
) {
20270 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20272 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20273 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20275 return NDR_ERR_SUCCESS
;
20278 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcessors
*r
)
20280 uint32_t _ptr_servername
;
20281 uint32_t _ptr_environment
;
20282 uint32_t _ptr_buffer
;
20283 uint32_t _ptr_info
;
20284 TALLOC_CTX
*_mem_save_servername_0
;
20285 TALLOC_CTX
*_mem_save_environment_0
;
20286 TALLOC_CTX
*_mem_save_buffer_0
;
20287 TALLOC_CTX
*_mem_save_info_0
;
20288 TALLOC_CTX
*_mem_save_needed_0
;
20289 TALLOC_CTX
*_mem_save_count_0
;
20290 if (flags
& NDR_IN
) {
20291 ZERO_STRUCT(r
->out
);
20293 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
20294 if (_ptr_servername
) {
20295 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
20297 r
->in
.servername
= NULL
;
20299 if (r
->in
.servername
) {
20300 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20301 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
20302 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
20303 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
20304 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
20305 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
));
20307 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
20308 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
20309 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
20311 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
20312 if (_ptr_environment
) {
20313 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
20315 r
->in
.environment
= NULL
;
20317 if (r
->in
.environment
) {
20318 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20319 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
20320 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
20321 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
20322 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
20323 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
));
20325 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
20326 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
20327 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
20329 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20330 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20332 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20334 r
->in
.buffer
= NULL
;
20336 if (r
->in
.buffer
) {
20337 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20338 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20339 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20340 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20342 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20343 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20344 ZERO_STRUCTP(r
->out
.needed
);
20345 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20346 ZERO_STRUCTP(r
->out
.count
);
20348 if (flags
& NDR_OUT
) {
20349 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20351 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20353 r
->out
.info
= NULL
;
20356 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20357 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20358 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
20359 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20361 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20362 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20364 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20365 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20366 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20368 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20369 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20371 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20372 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
20373 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
20374 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
20375 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20377 return NDR_ERR_SUCCESS
;
20380 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcessors
*r
)
20382 uint32_t cntr_info_0
;
20383 if (flags
& NDR_IN
) {
20384 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20385 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
20387 if (flags
& NDR_OUT
) {
20388 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20389 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20390 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20392 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20393 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20396 return NDR_ERR_SUCCESS
;
20399 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcessors
*r
)
20401 uint32_t cntr_info_0
;
20402 TALLOC_CTX
*_mem_save_info_0
;
20403 if (flags
& NDR_IN
) {
20404 ZERO_STRUCT(r
->out
);
20406 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20407 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
20409 if (flags
& NDR_OUT
) {
20410 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
20411 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20412 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20413 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20414 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20415 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20417 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20418 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20420 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20422 return NDR_ERR_SUCCESS
;
20425 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcessors
*r
)
20427 uint32_t cntr_info_1
;
20428 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcessors");
20430 if (flags
& NDR_SET_VALUES
) {
20431 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20433 if (flags
& NDR_IN
) {
20434 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcessors");
20436 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
20438 if (r
->in
.servername
) {
20439 ndr_print_string(ndr
, "servername", r
->in
.servername
);
20442 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
20444 if (r
->in
.environment
) {
20445 ndr_print_string(ndr
, "environment", r
->in
.environment
);
20448 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20449 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20451 if (r
->in
.buffer
) {
20452 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20455 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20458 if (flags
& NDR_OUT
) {
20459 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcessors");
20461 ndr_print_ptr(ndr
, "count", r
->out
.count
);
20463 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
20465 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20468 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
20470 for (cntr_info_1
=0;cntr_info_1
<*r
->out
.count
;cntr_info_1
++) {
20472 if (asprintf(&idx_1
, "[%d]", cntr_info_1
) != -1) {
20473 ndr_print_set_switch_value(ndr
, &r
->out
.info
[cntr_info_1
], r
->in
.level
);
20474 ndr_print_spoolss_PrintProcessorInfo(ndr
, "info", &r
->out
.info
[cntr_info_1
]);
20481 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20483 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20485 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20491 static enum ndr_err_code
ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
20493 if (flags
& NDR_IN
) {
20494 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20495 if (r
->in
.server
) {
20496 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20497 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20498 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20499 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20501 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
20502 if (r
->in
.environment
) {
20503 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20504 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20505 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20506 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20508 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20509 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20510 if (r
->in
.buffer
) {
20511 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20513 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20515 if (flags
& NDR_OUT
) {
20516 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20519 struct ndr_push
*_ndr_info
;
20520 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20521 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20522 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
20523 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20526 if (r
->out
.needed
== NULL
) {
20527 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20529 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20530 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20532 return NDR_ERR_SUCCESS
;
20535 static enum ndr_err_code
ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrintProcessorDirectory
*r
)
20537 uint32_t _ptr_server
;
20538 uint32_t _ptr_environment
;
20539 uint32_t _ptr_buffer
;
20540 uint32_t _ptr_info
;
20541 TALLOC_CTX
*_mem_save_server_0
;
20542 TALLOC_CTX
*_mem_save_environment_0
;
20543 TALLOC_CTX
*_mem_save_buffer_0
;
20544 TALLOC_CTX
*_mem_save_info_0
;
20545 TALLOC_CTX
*_mem_save_needed_0
;
20546 if (flags
& NDR_IN
) {
20547 ZERO_STRUCT(r
->out
);
20549 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20551 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20553 r
->in
.server
= NULL
;
20555 if (r
->in
.server
) {
20556 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20557 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20558 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20559 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20560 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20561 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
));
20563 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20564 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20565 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20567 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
20568 if (_ptr_environment
) {
20569 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
20571 r
->in
.environment
= NULL
;
20573 if (r
->in
.environment
) {
20574 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20575 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
20576 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
20577 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
20578 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
20579 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
));
20581 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
20582 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
20583 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
20585 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20586 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20588 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20590 r
->in
.buffer
= NULL
;
20592 if (r
->in
.buffer
) {
20593 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20594 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20595 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20596 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20598 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20599 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20600 ZERO_STRUCTP(r
->out
.needed
);
20602 if (flags
& NDR_OUT
) {
20603 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20605 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20607 r
->out
.info
= NULL
;
20610 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20611 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20613 struct ndr_pull
*_ndr_info
;
20614 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20615 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20616 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
20617 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20619 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20621 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20622 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20624 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20625 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20626 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20627 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20628 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20630 return NDR_ERR_SUCCESS
;
20633 _PUBLIC_
void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
20635 ndr_print_struct(ndr
, name
, "spoolss_GetPrintProcessorDirectory");
20637 if (flags
& NDR_SET_VALUES
) {
20638 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20640 if (flags
& NDR_IN
) {
20641 ndr_print_struct(ndr
, "in", "spoolss_GetPrintProcessorDirectory");
20643 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20645 if (r
->in
.server
) {
20646 ndr_print_string(ndr
, "server", r
->in
.server
);
20649 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
20651 if (r
->in
.environment
) {
20652 ndr_print_string(ndr
, "environment", r
->in
.environment
);
20655 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20656 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20658 if (r
->in
.buffer
) {
20659 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20662 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20665 if (flags
& NDR_OUT
) {
20666 ndr_print_struct(ndr
, "out", "spoolss_GetPrintProcessorDirectory");
20668 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20671 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20672 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr
, "info", r
->out
.info
);
20675 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20677 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20679 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20685 static enum ndr_err_code
ndr_push_spoolss_StartDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartDocPrinter
*r
)
20687 if (flags
& NDR_IN
) {
20688 if (r
->in
.handle
== NULL
) {
20689 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20691 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20692 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20693 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
20694 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
20696 if (flags
& NDR_OUT
) {
20697 if (r
->out
.job_id
== NULL
) {
20698 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20700 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.job_id
));
20701 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20703 return NDR_ERR_SUCCESS
;
20706 static enum ndr_err_code
ndr_pull_spoolss_StartDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartDocPrinter
*r
)
20708 TALLOC_CTX
*_mem_save_handle_0
;
20709 TALLOC_CTX
*_mem_save_job_id_0
;
20710 if (flags
& NDR_IN
) {
20711 ZERO_STRUCT(r
->out
);
20713 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20714 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20716 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20717 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20718 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20719 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20720 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20721 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
20722 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
20723 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
20724 ZERO_STRUCTP(r
->out
.job_id
);
20726 if (flags
& NDR_OUT
) {
20727 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20728 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
20730 _mem_save_job_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20731 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.job_id
, LIBNDR_FLAG_REF_ALLOC
);
20732 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.job_id
));
20733 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_job_id_0
, LIBNDR_FLAG_REF_ALLOC
);
20734 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20736 return NDR_ERR_SUCCESS
;
20739 _PUBLIC_
void ndr_print_spoolss_StartDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartDocPrinter
*r
)
20741 ndr_print_struct(ndr
, name
, "spoolss_StartDocPrinter");
20743 if (flags
& NDR_SET_VALUES
) {
20744 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20746 if (flags
& NDR_IN
) {
20747 ndr_print_struct(ndr
, "in", "spoolss_StartDocPrinter");
20749 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20751 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20753 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20754 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
20755 ndr_print_spoolss_DocumentInfo(ndr
, "info", &r
->in
.info
);
20758 if (flags
& NDR_OUT
) {
20759 ndr_print_struct(ndr
, "out", "spoolss_StartDocPrinter");
20761 ndr_print_ptr(ndr
, "job_id", r
->out
.job_id
);
20763 ndr_print_uint32(ndr
, "job_id", *r
->out
.job_id
);
20765 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20771 static enum ndr_err_code
ndr_push_spoolss_StartPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartPagePrinter
*r
)
20773 if (flags
& NDR_IN
) {
20774 if (r
->in
.handle
== NULL
) {
20775 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20777 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20779 if (flags
& NDR_OUT
) {
20780 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20782 return NDR_ERR_SUCCESS
;
20785 static enum ndr_err_code
ndr_pull_spoolss_StartPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartPagePrinter
*r
)
20787 TALLOC_CTX
*_mem_save_handle_0
;
20788 if (flags
& NDR_IN
) {
20789 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20790 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20792 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20793 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20794 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20795 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20797 if (flags
& NDR_OUT
) {
20798 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20800 return NDR_ERR_SUCCESS
;
20803 _PUBLIC_
void ndr_print_spoolss_StartPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartPagePrinter
*r
)
20805 ndr_print_struct(ndr
, name
, "spoolss_StartPagePrinter");
20807 if (flags
& NDR_SET_VALUES
) {
20808 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20810 if (flags
& NDR_IN
) {
20811 ndr_print_struct(ndr
, "in", "spoolss_StartPagePrinter");
20813 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20815 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20819 if (flags
& NDR_OUT
) {
20820 ndr_print_struct(ndr
, "out", "spoolss_StartPagePrinter");
20822 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20828 static enum ndr_err_code
ndr_push_spoolss_WritePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_WritePrinter
*r
)
20830 if (flags
& NDR_IN
) {
20831 if (r
->in
.handle
== NULL
) {
20832 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20834 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20835 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
20836 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data
.length
));
20838 if (flags
& NDR_OUT
) {
20839 if (r
->out
.num_written
== NULL
) {
20840 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20842 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_written
));
20843 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20845 return NDR_ERR_SUCCESS
;
20848 static enum ndr_err_code
ndr_pull_spoolss_WritePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_WritePrinter
*r
)
20850 TALLOC_CTX
*_mem_save_handle_0
;
20851 TALLOC_CTX
*_mem_save_num_written_0
;
20852 if (flags
& NDR_IN
) {
20853 ZERO_STRUCT(r
->out
);
20855 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20856 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20858 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20859 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20860 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20861 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20862 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.data
));
20863 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._data_size
));
20864 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
20865 ZERO_STRUCTP(r
->out
.num_written
);
20867 if (flags
& NDR_OUT
) {
20868 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20869 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
20871 _mem_save_num_written_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20872 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_written
, LIBNDR_FLAG_REF_ALLOC
);
20873 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_written
));
20874 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_written_0
, LIBNDR_FLAG_REF_ALLOC
);
20875 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20877 return NDR_ERR_SUCCESS
;
20880 _PUBLIC_
void ndr_print_spoolss_WritePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WritePrinter
*r
)
20882 ndr_print_struct(ndr
, name
, "spoolss_WritePrinter");
20884 if (flags
& NDR_SET_VALUES
) {
20885 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20887 if (flags
& NDR_IN
) {
20888 ndr_print_struct(ndr
, "in", "spoolss_WritePrinter");
20890 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20892 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20894 ndr_print_DATA_BLOB(ndr
, "data", r
->in
.data
);
20895 ndr_print_uint32(ndr
, "_data_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.data
.length
:r
->in
._data_size
);
20898 if (flags
& NDR_OUT
) {
20899 ndr_print_struct(ndr
, "out", "spoolss_WritePrinter");
20901 ndr_print_ptr(ndr
, "num_written", r
->out
.num_written
);
20903 ndr_print_uint32(ndr
, "num_written", *r
->out
.num_written
);
20905 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20911 static enum ndr_err_code
ndr_push_spoolss_EndPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndPagePrinter
*r
)
20913 if (flags
& NDR_IN
) {
20914 if (r
->in
.handle
== NULL
) {
20915 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20917 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20919 if (flags
& NDR_OUT
) {
20920 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20922 return NDR_ERR_SUCCESS
;
20925 static enum ndr_err_code
ndr_pull_spoolss_EndPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndPagePrinter
*r
)
20927 TALLOC_CTX
*_mem_save_handle_0
;
20928 if (flags
& NDR_IN
) {
20929 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20930 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20932 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20933 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20934 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20935 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20937 if (flags
& NDR_OUT
) {
20938 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20940 return NDR_ERR_SUCCESS
;
20943 _PUBLIC_
void ndr_print_spoolss_EndPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndPagePrinter
*r
)
20945 ndr_print_struct(ndr
, name
, "spoolss_EndPagePrinter");
20947 if (flags
& NDR_SET_VALUES
) {
20948 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20950 if (flags
& NDR_IN
) {
20951 ndr_print_struct(ndr
, "in", "spoolss_EndPagePrinter");
20953 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20955 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20959 if (flags
& NDR_OUT
) {
20960 ndr_print_struct(ndr
, "out", "spoolss_EndPagePrinter");
20962 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20968 static enum ndr_err_code
ndr_push_spoolss_AbortPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AbortPrinter
*r
)
20970 if (flags
& NDR_IN
) {
20971 if (r
->in
.handle
== NULL
) {
20972 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20974 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20976 if (flags
& NDR_OUT
) {
20977 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20979 return NDR_ERR_SUCCESS
;
20982 static enum ndr_err_code
ndr_pull_spoolss_AbortPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AbortPrinter
*r
)
20984 TALLOC_CTX
*_mem_save_handle_0
;
20985 if (flags
& NDR_IN
) {
20986 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20987 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20989 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20990 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20991 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20992 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20994 if (flags
& NDR_OUT
) {
20995 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20997 return NDR_ERR_SUCCESS
;
21000 _PUBLIC_
void ndr_print_spoolss_AbortPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AbortPrinter
*r
)
21002 ndr_print_struct(ndr
, name
, "spoolss_AbortPrinter");
21004 if (flags
& NDR_SET_VALUES
) {
21005 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21007 if (flags
& NDR_IN
) {
21008 ndr_print_struct(ndr
, "in", "spoolss_AbortPrinter");
21010 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21012 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21016 if (flags
& NDR_OUT
) {
21017 ndr_print_struct(ndr
, "out", "spoolss_AbortPrinter");
21019 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21025 static enum ndr_err_code
ndr_push_spoolss_ReadPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReadPrinter
*r
)
21027 if (flags
& NDR_IN
) {
21028 if (r
->in
.handle
== NULL
) {
21029 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21031 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21032 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
21034 if (flags
& NDR_OUT
) {
21035 if (r
->out
.data
== NULL
) {
21036 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21038 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
21039 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_size
));
21040 if (r
->out
._data_size
== NULL
) {
21041 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21043 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._data_size
));
21044 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21046 return NDR_ERR_SUCCESS
;
21049 static enum ndr_err_code
ndr_pull_spoolss_ReadPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReadPrinter
*r
)
21051 TALLOC_CTX
*_mem_save_handle_0
;
21052 TALLOC_CTX
*_mem_save__data_size_0
;
21053 if (flags
& NDR_IN
) {
21054 ZERO_STRUCT(r
->out
);
21056 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21057 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21059 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21060 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21061 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21062 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21063 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_size
));
21064 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_size
);
21065 memset(r
->out
.data
, 0, (r
->in
.data_size
) * sizeof(*r
->out
.data
));
21066 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
21067 ZERO_STRUCTP(r
->out
._data_size
);
21069 if (flags
& NDR_OUT
) {
21070 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
21071 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21072 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
21074 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
21075 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21076 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
21078 _mem_save__data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21079 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._data_size
, LIBNDR_FLAG_REF_ALLOC
);
21080 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._data_size
));
21081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__data_size_0
, LIBNDR_FLAG_REF_ALLOC
);
21082 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21084 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_size
));
21087 return NDR_ERR_SUCCESS
;
21090 _PUBLIC_
void ndr_print_spoolss_ReadPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReadPrinter
*r
)
21092 ndr_print_struct(ndr
, name
, "spoolss_ReadPrinter");
21094 if (flags
& NDR_SET_VALUES
) {
21095 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21097 if (flags
& NDR_IN
) {
21098 ndr_print_struct(ndr
, "in", "spoolss_ReadPrinter");
21100 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21102 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21104 ndr_print_uint32(ndr
, "data_size", r
->in
.data_size
);
21107 if (flags
& NDR_OUT
) {
21108 ndr_print_struct(ndr
, "out", "spoolss_ReadPrinter");
21110 ndr_print_ptr(ndr
, "data", r
->out
.data
);
21112 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_size
);
21114 ndr_print_ptr(ndr
, "_data_size", r
->out
._data_size
);
21116 ndr_print_uint32(ndr
, "_data_size", *r
->out
._data_size
);
21118 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21124 static enum ndr_err_code
ndr_push_spoolss_EndDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndDocPrinter
*r
)
21126 if (flags
& NDR_IN
) {
21127 if (r
->in
.handle
== NULL
) {
21128 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21130 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21132 if (flags
& NDR_OUT
) {
21133 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21135 return NDR_ERR_SUCCESS
;
21138 static enum ndr_err_code
ndr_pull_spoolss_EndDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndDocPrinter
*r
)
21140 TALLOC_CTX
*_mem_save_handle_0
;
21141 if (flags
& NDR_IN
) {
21142 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21143 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21145 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21146 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21147 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21148 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21150 if (flags
& NDR_OUT
) {
21151 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21153 return NDR_ERR_SUCCESS
;
21156 _PUBLIC_
void ndr_print_spoolss_EndDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndDocPrinter
*r
)
21158 ndr_print_struct(ndr
, name
, "spoolss_EndDocPrinter");
21160 if (flags
& NDR_SET_VALUES
) {
21161 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21163 if (flags
& NDR_IN
) {
21164 ndr_print_struct(ndr
, "in", "spoolss_EndDocPrinter");
21166 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21168 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21172 if (flags
& NDR_OUT
) {
21173 ndr_print_struct(ndr
, "out", "spoolss_EndDocPrinter");
21175 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21181 static enum ndr_err_code
ndr_push_spoolss_AddJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddJob
*r
)
21183 if (flags
& NDR_IN
) {
21184 if (r
->in
.handle
== NULL
) {
21185 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21187 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21188 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21189 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21190 if (r
->in
.buffer
) {
21191 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21192 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
21194 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21196 if (flags
& NDR_OUT
) {
21197 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
21198 if (r
->out
.buffer
) {
21199 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21200 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
21202 if (r
->out
.needed
== NULL
) {
21203 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21206 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21208 return NDR_ERR_SUCCESS
;
21211 static enum ndr_err_code
ndr_pull_spoolss_AddJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddJob
*r
)
21213 uint32_t _ptr_buffer
;
21214 TALLOC_CTX
*_mem_save_handle_0
;
21215 TALLOC_CTX
*_mem_save_buffer_0
;
21216 TALLOC_CTX
*_mem_save_needed_0
;
21217 if (flags
& NDR_IN
) {
21218 ZERO_STRUCT(r
->out
);
21220 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21221 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21223 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21224 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21225 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21226 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21227 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21228 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21230 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21232 r
->in
.buffer
= NULL
;
21234 if (r
->in
.buffer
) {
21235 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21236 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21237 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
21238 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
21239 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
21240 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21242 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21243 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21244 ZERO_STRUCTP(r
->out
.needed
);
21245 if (r
->in
.buffer
) {
21246 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
21249 if (flags
& NDR_OUT
) {
21250 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21252 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
21254 r
->out
.buffer
= NULL
;
21256 if (r
->out
.buffer
) {
21257 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21258 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
21259 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
21260 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
21261 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
21262 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21264 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21265 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21267 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21268 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21269 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21270 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21271 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21272 if (r
->out
.buffer
) {
21273 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
21276 return NDR_ERR_SUCCESS
;
21279 _PUBLIC_
void ndr_print_spoolss_AddJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddJob
*r
)
21281 ndr_print_struct(ndr
, name
, "spoolss_AddJob");
21283 if (flags
& NDR_SET_VALUES
) {
21284 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21286 if (flags
& NDR_IN
) {
21287 ndr_print_struct(ndr
, "in", "spoolss_AddJob");
21289 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21291 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21293 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21294 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21296 if (r
->in
.buffer
) {
21297 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
21300 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21303 if (flags
& NDR_OUT
) {
21304 ndr_print_struct(ndr
, "out", "spoolss_AddJob");
21306 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
21308 if (r
->out
.buffer
) {
21309 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
21312 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21314 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21316 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21322 static enum ndr_err_code
ndr_push_spoolss_ScheduleJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_ScheduleJob
*r
)
21324 if (flags
& NDR_IN
) {
21325 if (r
->in
.handle
== NULL
) {
21326 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21328 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21329 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.jobid
));
21331 if (flags
& NDR_OUT
) {
21332 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21334 return NDR_ERR_SUCCESS
;
21337 static enum ndr_err_code
ndr_pull_spoolss_ScheduleJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_ScheduleJob
*r
)
21339 TALLOC_CTX
*_mem_save_handle_0
;
21340 if (flags
& NDR_IN
) {
21341 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21342 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21344 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21345 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21346 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21347 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21348 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.jobid
));
21350 if (flags
& NDR_OUT
) {
21351 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21353 return NDR_ERR_SUCCESS
;
21356 _PUBLIC_
void ndr_print_spoolss_ScheduleJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ScheduleJob
*r
)
21358 ndr_print_struct(ndr
, name
, "spoolss_ScheduleJob");
21360 if (flags
& NDR_SET_VALUES
) {
21361 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21363 if (flags
& NDR_IN
) {
21364 ndr_print_struct(ndr
, "in", "spoolss_ScheduleJob");
21366 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21368 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21370 ndr_print_uint32(ndr
, "jobid", r
->in
.jobid
);
21373 if (flags
& NDR_OUT
) {
21374 ndr_print_struct(ndr
, "out", "spoolss_ScheduleJob");
21376 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21382 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_GetPrinterData
*r
)
21384 if (flags
& NDR_IN
) {
21385 if (r
->in
.handle
== NULL
) {
21386 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21388 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21389 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
21390 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
21392 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
));
21393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21395 if (flags
& NDR_OUT
) {
21396 if (r
->out
.type
== NULL
) {
21397 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21399 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, *r
->out
.type
));
21400 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.data
));
21401 if (r
->out
.needed
== NULL
) {
21402 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21404 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21405 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21407 return NDR_ERR_SUCCESS
;
21410 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct _spoolss_GetPrinterData
*r
)
21412 TALLOC_CTX
*_mem_save_handle_0
;
21413 TALLOC_CTX
*_mem_save_type_0
;
21414 TALLOC_CTX
*_mem_save_needed_0
;
21415 if (flags
& NDR_IN
) {
21416 ZERO_STRUCT(r
->out
);
21418 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21419 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21421 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21422 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21423 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21424 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21425 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
21426 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
21427 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
21428 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
));
21430 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
21431 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
));
21432 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21433 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
21434 ZERO_STRUCTP(r
->out
.type
);
21435 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21436 ZERO_STRUCTP(r
->out
.needed
);
21438 if (flags
& NDR_OUT
) {
21439 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21440 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
21442 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21443 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
21444 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, r
->out
.type
));
21445 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
21446 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->out
.data
));
21447 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21448 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21450 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21451 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21452 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21453 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21454 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21456 return NDR_ERR_SUCCESS
;
21459 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_GetPrinterData
*r
)
21461 if (flags
& NDR_IN
) {
21462 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, r
->in
.type
));
21464 if (flags
& NDR_OUT
) {
21465 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.data
, r
->in
.type
));
21466 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->out
.data
));
21468 return NDR_ERR_SUCCESS
;
21471 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct __spoolss_GetPrinterData
*r
)
21473 if (flags
& NDR_IN
) {
21474 ZERO_STRUCT(r
->out
);
21476 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, &r
->in
.type
));
21478 if (flags
& NDR_OUT
) {
21479 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.data
, r
->in
.type
));
21480 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->out
.data
));
21482 return NDR_ERR_SUCCESS
;
21485 _PUBLIC_
void ndr_print_spoolss_GetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterData
*r
)
21487 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterData");
21489 if (flags
& NDR_SET_VALUES
) {
21490 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21492 if (flags
& NDR_IN
) {
21493 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterData");
21495 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21497 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21499 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
21500 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21503 if (flags
& NDR_OUT
) {
21504 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterData");
21506 ndr_print_ptr(ndr
, "type", r
->out
.type
);
21508 ndr_print_spoolss_PrinterDataType(ndr
, "type", *r
->out
.type
);
21510 ndr_print_set_switch_value(ndr
, &r
->out
.data
, *r
->out
.type
);
21511 ndr_print_spoolss_PrinterData(ndr
, "data", &r
->out
.data
);
21512 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21514 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21516 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21522 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_SetPrinterData
*r
)
21524 if (flags
& NDR_IN
) {
21525 if (r
->in
.handle
== NULL
) {
21526 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21528 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21529 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
21530 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
21532 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
));
21533 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, r
->in
.type
));
21534 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
21535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
._offered
));
21537 if (flags
& NDR_OUT
) {
21538 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21540 return NDR_ERR_SUCCESS
;
21543 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_SetPrinterData
*r
)
21545 if (flags
& NDR_IN
) {
21546 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, r
->in
.type
));
21548 if (flags
& NDR_OUT
) {
21549 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.data
, r
->in
.type
));
21550 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->out
.data
));
21552 return NDR_ERR_SUCCESS
;
21555 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterData
*r
)
21557 TALLOC_CTX
*_mem_save_handle_0
;
21558 if (flags
& NDR_IN
) {
21559 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21560 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21562 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21563 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21564 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21565 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21566 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
21567 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
21568 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
21569 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
));
21571 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
21572 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
));
21573 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, &r
->in
.type
));
21575 struct ndr_pull
*_ndr_data
;
21576 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 4, -1));
21577 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, &r
->in
.data
, r
->in
.type
));
21578 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
21579 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 4, -1));
21581 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._offered
));
21583 if (flags
& NDR_OUT
) {
21584 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21586 return NDR_ERR_SUCCESS
;
21589 _PUBLIC_
void ndr_print_spoolss_SetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterData
*r
)
21591 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterData");
21593 if (flags
& NDR_SET_VALUES
) {
21594 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21596 if (flags
& NDR_IN
) {
21597 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterData");
21599 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21601 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21603 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
21604 ndr_print_spoolss_PrinterDataType(ndr
, "type", r
->in
.type
);
21605 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.type
);
21606 ndr_print_spoolss_PrinterData(ndr
, "data", &r
->in
.data
);
21607 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
);
21610 if (flags
& NDR_OUT
) {
21611 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterData");
21613 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21619 static enum ndr_err_code
ndr_push_spoolss_WaitForPrinterChange(struct ndr_push
*ndr
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
21621 if (flags
& NDR_IN
) {
21623 if (flags
& NDR_OUT
) {
21624 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21626 return NDR_ERR_SUCCESS
;
21629 static enum ndr_err_code
ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull
*ndr
, int flags
, struct spoolss_WaitForPrinterChange
*r
)
21631 if (flags
& NDR_IN
) {
21633 if (flags
& NDR_OUT
) {
21634 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21636 return NDR_ERR_SUCCESS
;
21639 _PUBLIC_
void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
21641 ndr_print_struct(ndr
, name
, "spoolss_WaitForPrinterChange");
21643 if (flags
& NDR_SET_VALUES
) {
21644 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21646 if (flags
& NDR_IN
) {
21647 ndr_print_struct(ndr
, "in", "spoolss_WaitForPrinterChange");
21651 if (flags
& NDR_OUT
) {
21652 ndr_print_struct(ndr
, "out", "spoolss_WaitForPrinterChange");
21654 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21660 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ClosePrinter
*r
)
21662 if (flags
& NDR_IN
) {
21663 if (r
->in
.handle
== NULL
) {
21664 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21666 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21668 if (flags
& NDR_OUT
) {
21669 if (r
->out
.handle
== NULL
) {
21670 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21672 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21673 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21675 return NDR_ERR_SUCCESS
;
21678 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ClosePrinter
*r
)
21680 TALLOC_CTX
*_mem_save_handle_0
;
21681 if (flags
& NDR_IN
) {
21682 ZERO_STRUCT(r
->out
);
21684 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21685 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21687 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21688 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21689 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21691 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21692 *r
->out
.handle
= *r
->in
.handle
;
21694 if (flags
& NDR_OUT
) {
21695 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21696 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21698 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21699 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21700 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21701 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21702 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21704 return NDR_ERR_SUCCESS
;
21707 _PUBLIC_
void ndr_print_spoolss_ClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ClosePrinter
*r
)
21709 ndr_print_struct(ndr
, name
, "spoolss_ClosePrinter");
21711 if (flags
& NDR_SET_VALUES
) {
21712 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21714 if (flags
& NDR_IN
) {
21715 ndr_print_struct(ndr
, "in", "spoolss_ClosePrinter");
21717 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21719 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21723 if (flags
& NDR_OUT
) {
21724 ndr_print_struct(ndr
, "out", "spoolss_ClosePrinter");
21726 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
21728 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
21730 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21736 static enum ndr_err_code
ndr_push_spoolss_AddForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddForm
*r
)
21738 if (flags
& NDR_IN
) {
21739 if (r
->in
.handle
== NULL
) {
21740 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21742 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21743 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21744 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
21745 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
21747 if (flags
& NDR_OUT
) {
21748 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21750 return NDR_ERR_SUCCESS
;
21753 static enum ndr_err_code
ndr_pull_spoolss_AddForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddForm
*r
)
21755 TALLOC_CTX
*_mem_save_handle_0
;
21756 if (flags
& NDR_IN
) {
21757 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21758 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21760 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21761 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21762 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21763 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21764 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21765 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
21766 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
21768 if (flags
& NDR_OUT
) {
21769 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21771 return NDR_ERR_SUCCESS
;
21774 _PUBLIC_
void ndr_print_spoolss_AddForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddForm
*r
)
21776 ndr_print_struct(ndr
, name
, "spoolss_AddForm");
21778 if (flags
& NDR_SET_VALUES
) {
21779 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21781 if (flags
& NDR_IN
) {
21782 ndr_print_struct(ndr
, "in", "spoolss_AddForm");
21784 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21786 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21788 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21789 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
21790 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
21793 if (flags
& NDR_OUT
) {
21794 ndr_print_struct(ndr
, "out", "spoolss_AddForm");
21796 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21802 static enum ndr_err_code
ndr_push_spoolss_DeleteForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteForm
*r
)
21804 if (flags
& NDR_IN
) {
21805 if (r
->in
.handle
== NULL
) {
21806 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21808 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21809 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
21810 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21811 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
21812 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
));
21814 if (flags
& NDR_OUT
) {
21815 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21817 return NDR_ERR_SUCCESS
;
21820 static enum ndr_err_code
ndr_pull_spoolss_DeleteForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteForm
*r
)
21822 TALLOC_CTX
*_mem_save_handle_0
;
21823 if (flags
& NDR_IN
) {
21824 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21825 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21827 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21828 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21829 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21830 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21831 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
21832 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
21833 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
21834 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
));
21836 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
21837 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
));
21839 if (flags
& NDR_OUT
) {
21840 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21842 return NDR_ERR_SUCCESS
;
21845 _PUBLIC_
void ndr_print_spoolss_DeleteForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteForm
*r
)
21847 ndr_print_struct(ndr
, name
, "spoolss_DeleteForm");
21849 if (flags
& NDR_SET_VALUES
) {
21850 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21852 if (flags
& NDR_IN
) {
21853 ndr_print_struct(ndr
, "in", "spoolss_DeleteForm");
21855 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21857 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21859 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
21862 if (flags
& NDR_OUT
) {
21863 ndr_print_struct(ndr
, "out", "spoolss_DeleteForm");
21865 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21871 static enum ndr_err_code
ndr_push_spoolss_GetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetForm
*r
)
21873 if (flags
& NDR_IN
) {
21874 if (r
->in
.handle
== NULL
) {
21875 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21877 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21878 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
21879 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21880 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
21881 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
));
21882 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21883 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21884 if (r
->in
.buffer
) {
21885 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21887 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21889 if (flags
& NDR_OUT
) {
21890 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21893 struct ndr_push
*_ndr_info
;
21894 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21895 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21896 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21897 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21900 if (r
->out
.needed
== NULL
) {
21901 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21903 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21904 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21906 return NDR_ERR_SUCCESS
;
21909 static enum ndr_err_code
ndr_pull_spoolss_GetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetForm
*r
)
21911 uint32_t _ptr_buffer
;
21912 uint32_t _ptr_info
;
21913 TALLOC_CTX
*_mem_save_handle_0
;
21914 TALLOC_CTX
*_mem_save_buffer_0
;
21915 TALLOC_CTX
*_mem_save_info_0
;
21916 TALLOC_CTX
*_mem_save_needed_0
;
21917 if (flags
& NDR_IN
) {
21918 ZERO_STRUCT(r
->out
);
21920 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21921 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21923 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21924 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21925 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21926 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21927 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
21928 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
21929 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
21930 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
));
21932 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
21933 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
));
21934 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21935 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21937 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21939 r
->in
.buffer
= NULL
;
21941 if (r
->in
.buffer
) {
21942 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21943 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21944 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21945 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21947 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21948 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21949 ZERO_STRUCTP(r
->out
.needed
);
21951 if (flags
& NDR_OUT
) {
21952 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21954 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21956 r
->out
.info
= NULL
;
21959 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21960 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21962 struct ndr_pull
*_ndr_info
;
21963 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21964 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21965 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21966 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21968 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21970 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21971 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21973 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21974 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21975 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21976 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21977 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21979 return NDR_ERR_SUCCESS
;
21982 _PUBLIC_
void ndr_print_spoolss_GetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetForm
*r
)
21984 ndr_print_struct(ndr
, name
, "spoolss_GetForm");
21986 if (flags
& NDR_SET_VALUES
) {
21987 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21989 if (flags
& NDR_IN
) {
21990 ndr_print_struct(ndr
, "in", "spoolss_GetForm");
21992 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21994 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21996 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
21997 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21998 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22000 if (r
->in
.buffer
) {
22001 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22004 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22007 if (flags
& NDR_OUT
) {
22008 ndr_print_struct(ndr
, "out", "spoolss_GetForm");
22010 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22013 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22014 ndr_print_spoolss_FormInfo(ndr
, "info", r
->out
.info
);
22017 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22019 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22021 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22027 static enum ndr_err_code
ndr_push_spoolss_SetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetForm
*r
)
22029 if (flags
& NDR_IN
) {
22030 if (r
->in
.handle
== NULL
) {
22031 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22033 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22034 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22035 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22036 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22037 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
));
22038 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22039 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22040 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22042 if (flags
& NDR_OUT
) {
22043 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22045 return NDR_ERR_SUCCESS
;
22048 static enum ndr_err_code
ndr_pull_spoolss_SetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetForm
*r
)
22050 TALLOC_CTX
*_mem_save_handle_0
;
22051 if (flags
& NDR_IN
) {
22052 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22053 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22055 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22056 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22057 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22058 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22059 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
22060 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
22061 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
22062 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
));
22064 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
22065 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
));
22066 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22067 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22068 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22070 if (flags
& NDR_OUT
) {
22071 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22073 return NDR_ERR_SUCCESS
;
22076 _PUBLIC_
void ndr_print_spoolss_SetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetForm
*r
)
22078 ndr_print_struct(ndr
, name
, "spoolss_SetForm");
22080 if (flags
& NDR_SET_VALUES
) {
22081 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22083 if (flags
& NDR_IN
) {
22084 ndr_print_struct(ndr
, "in", "spoolss_SetForm");
22086 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22088 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22090 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
22091 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22092 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
22093 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
22096 if (flags
& NDR_OUT
) {
22097 ndr_print_struct(ndr
, "out", "spoolss_SetForm");
22099 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22105 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumForms
*r
)
22107 if (flags
& NDR_IN
) {
22108 if (r
->in
.handle
== NULL
) {
22109 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22111 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22112 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22113 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22114 if (r
->in
.buffer
) {
22115 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22119 if (flags
& NDR_OUT
) {
22120 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22122 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
22124 if (r
->out
.needed
== NULL
) {
22125 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22127 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22128 if (r
->out
.count
== NULL
) {
22129 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
22132 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22134 return NDR_ERR_SUCCESS
;
22137 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumForms
*r
)
22139 uint32_t _ptr_buffer
;
22140 uint32_t _ptr_info
;
22141 TALLOC_CTX
*_mem_save_handle_0
;
22142 TALLOC_CTX
*_mem_save_buffer_0
;
22143 TALLOC_CTX
*_mem_save_info_0
;
22144 TALLOC_CTX
*_mem_save_needed_0
;
22145 TALLOC_CTX
*_mem_save_count_0
;
22146 if (flags
& NDR_IN
) {
22147 ZERO_STRUCT(r
->out
);
22149 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22150 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22152 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22153 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22154 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22155 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22156 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22157 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22159 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22161 r
->in
.buffer
= NULL
;
22163 if (r
->in
.buffer
) {
22164 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22165 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22166 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22167 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22169 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22170 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22171 ZERO_STRUCTP(r
->out
.needed
);
22172 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22173 ZERO_STRUCTP(r
->out
.count
);
22175 if (flags
& NDR_OUT
) {
22176 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22178 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22180 r
->out
.info
= NULL
;
22183 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22184 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22185 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
22186 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22188 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22189 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22191 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22192 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22193 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22194 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22195 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22196 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22198 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22199 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
22200 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
22201 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
22202 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22204 return NDR_ERR_SUCCESS
;
22207 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumForms
*r
)
22209 uint32_t cntr_info_0
;
22210 if (flags
& NDR_IN
) {
22211 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22212 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
22214 if (flags
& NDR_OUT
) {
22215 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22216 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22217 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22219 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22220 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22223 return NDR_ERR_SUCCESS
;
22226 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumForms
*r
)
22228 uint32_t cntr_info_0
;
22229 TALLOC_CTX
*_mem_save_info_0
;
22230 if (flags
& NDR_IN
) {
22231 ZERO_STRUCT(r
->out
);
22233 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22234 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
22236 if (flags
& NDR_OUT
) {
22237 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
22238 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22239 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22240 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22241 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22242 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22244 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22245 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22247 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22249 return NDR_ERR_SUCCESS
;
22252 _PUBLIC_
void ndr_print_spoolss_EnumForms(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumForms
*r
)
22254 uint32_t cntr_info_1
;
22255 ndr_print_struct(ndr
, name
, "spoolss_EnumForms");
22257 if (flags
& NDR_SET_VALUES
) {
22258 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22260 if (flags
& NDR_IN
) {
22261 ndr_print_struct(ndr
, "in", "spoolss_EnumForms");
22263 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22265 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22267 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22268 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22270 if (r
->in
.buffer
) {
22271 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22274 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22277 if (flags
& NDR_OUT
) {
22278 ndr_print_struct(ndr
, "out", "spoolss_EnumForms");
22280 ndr_print_ptr(ndr
, "count", r
->out
.count
);
22282 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
22284 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22287 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
22289 for (cntr_info_1
=0;cntr_info_1
<*r
->out
.count
;cntr_info_1
++) {
22291 if (asprintf(&idx_1
, "[%d]", cntr_info_1
) != -1) {
22292 ndr_print_set_switch_value(ndr
, &r
->out
.info
[cntr_info_1
], r
->in
.level
);
22293 ndr_print_spoolss_FormInfo(ndr
, "info", &r
->out
.info
[cntr_info_1
]);
22300 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22302 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22304 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22310 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPorts
*r
)
22312 if (flags
& NDR_IN
) {
22313 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
22314 if (r
->in
.servername
) {
22315 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22316 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22317 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22318 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22320 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22321 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22322 if (r
->in
.buffer
) {
22323 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22325 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22327 if (flags
& NDR_OUT
) {
22328 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22330 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
22332 if (r
->out
.needed
== NULL
) {
22333 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22335 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22336 if (r
->out
.count
== NULL
) {
22337 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22339 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
22340 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22342 return NDR_ERR_SUCCESS
;
22345 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPorts
*r
)
22347 uint32_t _ptr_servername
;
22348 uint32_t _ptr_buffer
;
22349 uint32_t _ptr_info
;
22350 TALLOC_CTX
*_mem_save_servername_0
;
22351 TALLOC_CTX
*_mem_save_buffer_0
;
22352 TALLOC_CTX
*_mem_save_info_0
;
22353 TALLOC_CTX
*_mem_save_needed_0
;
22354 TALLOC_CTX
*_mem_save_count_0
;
22355 if (flags
& NDR_IN
) {
22356 ZERO_STRUCT(r
->out
);
22358 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
22359 if (_ptr_servername
) {
22360 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
22362 r
->in
.servername
= NULL
;
22364 if (r
->in
.servername
) {
22365 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22366 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
22367 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
22368 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
22369 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
22370 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
));
22372 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
22373 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
22374 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
22376 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22377 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22379 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22381 r
->in
.buffer
= NULL
;
22383 if (r
->in
.buffer
) {
22384 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22385 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22386 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22387 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22389 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22390 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22391 ZERO_STRUCTP(r
->out
.needed
);
22392 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22393 ZERO_STRUCTP(r
->out
.count
);
22395 if (flags
& NDR_OUT
) {
22396 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22398 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22400 r
->out
.info
= NULL
;
22403 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22404 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22405 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
22406 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22408 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22409 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22411 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22412 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22413 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22414 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22415 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22416 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22418 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22419 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
22420 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
22421 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
22422 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22424 return NDR_ERR_SUCCESS
;
22427 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPorts
*r
)
22429 uint32_t cntr_info_0
;
22430 if (flags
& NDR_IN
) {
22431 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
22434 if (flags
& NDR_OUT
) {
22435 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22436 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22437 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22439 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22440 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22443 return NDR_ERR_SUCCESS
;
22446 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPorts
*r
)
22448 uint32_t cntr_info_0
;
22449 TALLOC_CTX
*_mem_save_info_0
;
22450 if (flags
& NDR_IN
) {
22451 ZERO_STRUCT(r
->out
);
22453 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22454 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
22456 if (flags
& NDR_OUT
) {
22457 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
22458 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22459 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22460 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22461 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22462 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22464 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22465 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22467 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22469 return NDR_ERR_SUCCESS
;
22472 _PUBLIC_
void ndr_print_spoolss_EnumPorts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPorts
*r
)
22474 uint32_t cntr_info_1
;
22475 ndr_print_struct(ndr
, name
, "spoolss_EnumPorts");
22477 if (flags
& NDR_SET_VALUES
) {
22478 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22480 if (flags
& NDR_IN
) {
22481 ndr_print_struct(ndr
, "in", "spoolss_EnumPorts");
22483 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
22485 if (r
->in
.servername
) {
22486 ndr_print_string(ndr
, "servername", r
->in
.servername
);
22489 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22490 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22492 if (r
->in
.buffer
) {
22493 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22496 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22499 if (flags
& NDR_OUT
) {
22500 ndr_print_struct(ndr
, "out", "spoolss_EnumPorts");
22502 ndr_print_ptr(ndr
, "count", r
->out
.count
);
22504 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
22506 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22509 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
22511 for (cntr_info_1
=0;cntr_info_1
<*r
->out
.count
;cntr_info_1
++) {
22513 if (asprintf(&idx_1
, "[%d]", cntr_info_1
) != -1) {
22514 ndr_print_set_switch_value(ndr
, &r
->out
.info
[cntr_info_1
], r
->in
.level
);
22515 ndr_print_spoolss_PortInfo(ndr
, "info", &r
->out
.info
[cntr_info_1
]);
22522 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22524 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22526 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22532 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumMonitors
*r
)
22534 if (flags
& NDR_IN
) {
22535 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
22536 if (r
->in
.servername
) {
22537 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22538 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22539 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22540 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22543 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22544 if (r
->in
.buffer
) {
22545 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22547 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22549 if (flags
& NDR_OUT
) {
22550 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22552 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
22554 if (r
->out
.needed
== NULL
) {
22555 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22557 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22558 if (r
->out
.count
== NULL
) {
22559 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22561 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
22562 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22564 return NDR_ERR_SUCCESS
;
22567 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumMonitors
*r
)
22569 uint32_t _ptr_servername
;
22570 uint32_t _ptr_buffer
;
22571 uint32_t _ptr_info
;
22572 TALLOC_CTX
*_mem_save_servername_0
;
22573 TALLOC_CTX
*_mem_save_buffer_0
;
22574 TALLOC_CTX
*_mem_save_info_0
;
22575 TALLOC_CTX
*_mem_save_needed_0
;
22576 TALLOC_CTX
*_mem_save_count_0
;
22577 if (flags
& NDR_IN
) {
22578 ZERO_STRUCT(r
->out
);
22580 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
22581 if (_ptr_servername
) {
22582 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
22584 r
->in
.servername
= NULL
;
22586 if (r
->in
.servername
) {
22587 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22588 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
22589 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
22590 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
22591 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
22592 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
));
22594 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
22595 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
22596 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
22598 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22599 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22601 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22603 r
->in
.buffer
= NULL
;
22605 if (r
->in
.buffer
) {
22606 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22607 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22608 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22609 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22611 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22612 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22613 ZERO_STRUCTP(r
->out
.needed
);
22614 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22615 ZERO_STRUCTP(r
->out
.count
);
22617 if (flags
& NDR_OUT
) {
22618 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22620 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22622 r
->out
.info
= NULL
;
22625 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22626 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22627 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
22628 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22630 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22631 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22633 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22634 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22635 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22637 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22638 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22640 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22641 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
22642 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
22643 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
22644 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22646 return NDR_ERR_SUCCESS
;
22649 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumMonitors
*r
)
22651 uint32_t cntr_info_0
;
22652 if (flags
& NDR_IN
) {
22653 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22654 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
22656 if (flags
& NDR_OUT
) {
22657 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22658 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22659 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22661 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22662 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22665 return NDR_ERR_SUCCESS
;
22668 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumMonitors
*r
)
22670 uint32_t cntr_info_0
;
22671 TALLOC_CTX
*_mem_save_info_0
;
22672 if (flags
& NDR_IN
) {
22673 ZERO_STRUCT(r
->out
);
22675 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22676 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
22678 if (flags
& NDR_OUT
) {
22679 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
22680 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22681 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22682 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22683 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22684 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22686 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22687 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22689 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22691 return NDR_ERR_SUCCESS
;
22694 _PUBLIC_
void ndr_print_spoolss_EnumMonitors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumMonitors
*r
)
22696 uint32_t cntr_info_1
;
22697 ndr_print_struct(ndr
, name
, "spoolss_EnumMonitors");
22699 if (flags
& NDR_SET_VALUES
) {
22700 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22702 if (flags
& NDR_IN
) {
22703 ndr_print_struct(ndr
, "in", "spoolss_EnumMonitors");
22705 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
22707 if (r
->in
.servername
) {
22708 ndr_print_string(ndr
, "servername", r
->in
.servername
);
22711 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22712 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22714 if (r
->in
.buffer
) {
22715 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22718 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22721 if (flags
& NDR_OUT
) {
22722 ndr_print_struct(ndr
, "out", "spoolss_EnumMonitors");
22724 ndr_print_ptr(ndr
, "count", r
->out
.count
);
22726 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
22728 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22731 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
22733 for (cntr_info_1
=0;cntr_info_1
<*r
->out
.count
;cntr_info_1
++) {
22735 if (asprintf(&idx_1
, "[%d]", cntr_info_1
) != -1) {
22736 ndr_print_set_switch_value(ndr
, &r
->out
.info
[cntr_info_1
], r
->in
.level
);
22737 ndr_print_spoolss_MonitorInfo(ndr
, "info", &r
->out
.info
[cntr_info_1
]);
22744 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22746 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22748 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22754 static enum ndr_err_code
ndr_push_spoolss_AddPort(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPort
*r
)
22756 if (flags
& NDR_IN
) {
22757 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
22758 if (r
->in
.server_name
) {
22759 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
22760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22761 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
22762 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
));
22764 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
22765 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
22766 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22767 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
22768 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
));
22770 if (flags
& NDR_OUT
) {
22771 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22773 return NDR_ERR_SUCCESS
;
22776 static enum ndr_err_code
ndr_pull_spoolss_AddPort(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPort
*r
)
22778 uint32_t _ptr_server_name
;
22779 TALLOC_CTX
*_mem_save_server_name_0
;
22780 if (flags
& NDR_IN
) {
22781 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
22782 if (_ptr_server_name
) {
22783 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
22785 r
->in
.server_name
= NULL
;
22787 if (r
->in
.server_name
) {
22788 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22789 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
22790 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
22791 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
22792 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
22793 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
));
22795 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
22796 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
));
22797 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
22799 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
22800 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.monitor_name
));
22801 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.monitor_name
));
22802 if (ndr_get_array_length(ndr
, &r
->in
.monitor_name
) > ndr_get_array_size(ndr
, &r
->in
.monitor_name
)) {
22803 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
));
22805 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.monitor_name
), sizeof(uint16_t)));
22806 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
));
22808 if (flags
& NDR_OUT
) {
22809 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22811 return NDR_ERR_SUCCESS
;
22814 _PUBLIC_
void ndr_print_spoolss_AddPort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPort
*r
)
22816 ndr_print_struct(ndr
, name
, "spoolss_AddPort");
22818 if (flags
& NDR_SET_VALUES
) {
22819 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22821 if (flags
& NDR_IN
) {
22822 ndr_print_struct(ndr
, "in", "spoolss_AddPort");
22824 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
22826 if (r
->in
.server_name
) {
22827 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
22830 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
22831 ndr_print_string(ndr
, "monitor_name", r
->in
.monitor_name
);
22834 if (flags
& NDR_OUT
) {
22835 ndr_print_struct(ndr
, "out", "spoolss_AddPort");
22837 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22843 static enum ndr_err_code
ndr_push_spoolss_ConfigurePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_ConfigurePort
*r
)
22845 if (flags
& NDR_IN
) {
22847 if (flags
& NDR_OUT
) {
22848 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22850 return NDR_ERR_SUCCESS
;
22853 static enum ndr_err_code
ndr_pull_spoolss_ConfigurePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_ConfigurePort
*r
)
22855 if (flags
& NDR_IN
) {
22857 if (flags
& NDR_OUT
) {
22858 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22860 return NDR_ERR_SUCCESS
;
22863 _PUBLIC_
void ndr_print_spoolss_ConfigurePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ConfigurePort
*r
)
22865 ndr_print_struct(ndr
, name
, "spoolss_ConfigurePort");
22867 if (flags
& NDR_SET_VALUES
) {
22868 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22870 if (flags
& NDR_IN
) {
22871 ndr_print_struct(ndr
, "in", "spoolss_ConfigurePort");
22875 if (flags
& NDR_OUT
) {
22876 ndr_print_struct(ndr
, "out", "spoolss_ConfigurePort");
22878 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22884 static enum ndr_err_code
ndr_push_spoolss_DeletePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePort
*r
)
22886 if (flags
& NDR_IN
) {
22888 if (flags
& NDR_OUT
) {
22889 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22891 return NDR_ERR_SUCCESS
;
22894 static enum ndr_err_code
ndr_pull_spoolss_DeletePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePort
*r
)
22896 if (flags
& NDR_IN
) {
22898 if (flags
& NDR_OUT
) {
22899 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22901 return NDR_ERR_SUCCESS
;
22904 _PUBLIC_
void ndr_print_spoolss_DeletePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePort
*r
)
22906 ndr_print_struct(ndr
, name
, "spoolss_DeletePort");
22908 if (flags
& NDR_SET_VALUES
) {
22909 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22911 if (flags
& NDR_IN
) {
22912 ndr_print_struct(ndr
, "in", "spoolss_DeletePort");
22916 if (flags
& NDR_OUT
) {
22917 ndr_print_struct(ndr
, "out", "spoolss_DeletePort");
22919 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22925 static enum ndr_err_code
ndr_push_spoolss_CreatePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
22927 if (flags
& NDR_IN
) {
22929 if (flags
& NDR_OUT
) {
22930 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22932 return NDR_ERR_SUCCESS
;
22935 static enum ndr_err_code
ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_CreatePrinterIC
*r
)
22937 if (flags
& NDR_IN
) {
22939 if (flags
& NDR_OUT
) {
22940 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22942 return NDR_ERR_SUCCESS
;
22945 _PUBLIC_
void ndr_print_spoolss_CreatePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
22947 ndr_print_struct(ndr
, name
, "spoolss_CreatePrinterIC");
22949 if (flags
& NDR_SET_VALUES
) {
22950 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22952 if (flags
& NDR_IN
) {
22953 ndr_print_struct(ndr
, "in", "spoolss_CreatePrinterIC");
22957 if (flags
& NDR_OUT
) {
22958 ndr_print_struct(ndr
, "out", "spoolss_CreatePrinterIC");
22960 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22966 static enum ndr_err_code
ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
22968 if (flags
& NDR_IN
) {
22970 if (flags
& NDR_OUT
) {
22971 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22973 return NDR_ERR_SUCCESS
;
22976 static enum ndr_err_code
ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
22978 if (flags
& NDR_IN
) {
22980 if (flags
& NDR_OUT
) {
22981 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22983 return NDR_ERR_SUCCESS
;
22986 _PUBLIC_
void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
22988 ndr_print_struct(ndr
, name
, "spoolss_PlayGDIScriptOnPrinterIC");
22990 if (flags
& NDR_SET_VALUES
) {
22991 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22993 if (flags
& NDR_IN
) {
22994 ndr_print_struct(ndr
, "in", "spoolss_PlayGDIScriptOnPrinterIC");
22998 if (flags
& NDR_OUT
) {
22999 ndr_print_struct(ndr
, "out", "spoolss_PlayGDIScriptOnPrinterIC");
23001 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23007 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
23009 if (flags
& NDR_IN
) {
23011 if (flags
& NDR_OUT
) {
23012 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23014 return NDR_ERR_SUCCESS
;
23017 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterIC
*r
)
23019 if (flags
& NDR_IN
) {
23021 if (flags
& NDR_OUT
) {
23022 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23024 return NDR_ERR_SUCCESS
;
23027 _PUBLIC_
void ndr_print_spoolss_DeletePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
23029 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterIC");
23031 if (flags
& NDR_SET_VALUES
) {
23032 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23034 if (flags
& NDR_IN
) {
23035 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterIC");
23039 if (flags
& NDR_OUT
) {
23040 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterIC");
23042 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23048 static enum ndr_err_code
ndr_push_spoolss_AddPrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
23050 if (flags
& NDR_IN
) {
23052 if (flags
& NDR_OUT
) {
23053 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23055 return NDR_ERR_SUCCESS
;
23058 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterConnection
*r
)
23060 if (flags
& NDR_IN
) {
23062 if (flags
& NDR_OUT
) {
23063 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23065 return NDR_ERR_SUCCESS
;
23068 _PUBLIC_
void ndr_print_spoolss_AddPrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
23070 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterConnection");
23072 if (flags
& NDR_SET_VALUES
) {
23073 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23075 if (flags
& NDR_IN
) {
23076 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterConnection");
23080 if (flags
& NDR_OUT
) {
23081 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterConnection");
23083 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23089 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
23091 if (flags
& NDR_IN
) {
23093 if (flags
& NDR_OUT
) {
23094 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23096 return NDR_ERR_SUCCESS
;
23099 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterConnection
*r
)
23101 if (flags
& NDR_IN
) {
23103 if (flags
& NDR_OUT
) {
23104 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23106 return NDR_ERR_SUCCESS
;
23109 _PUBLIC_
void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
23111 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterConnection");
23113 if (flags
& NDR_SET_VALUES
) {
23114 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23116 if (flags
& NDR_IN
) {
23117 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterConnection");
23121 if (flags
& NDR_OUT
) {
23122 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterConnection");
23124 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23130 static enum ndr_err_code
ndr_push_spoolss_PrinterMessageBox(struct ndr_push
*ndr
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
23132 if (flags
& NDR_IN
) {
23134 if (flags
& NDR_OUT
) {
23135 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23137 return NDR_ERR_SUCCESS
;
23140 static enum ndr_err_code
ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull
*ndr
, int flags
, struct spoolss_PrinterMessageBox
*r
)
23142 if (flags
& NDR_IN
) {
23144 if (flags
& NDR_OUT
) {
23145 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23147 return NDR_ERR_SUCCESS
;
23150 _PUBLIC_
void ndr_print_spoolss_PrinterMessageBox(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
23152 ndr_print_struct(ndr
, name
, "spoolss_PrinterMessageBox");
23154 if (flags
& NDR_SET_VALUES
) {
23155 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23157 if (flags
& NDR_IN
) {
23158 ndr_print_struct(ndr
, "in", "spoolss_PrinterMessageBox");
23162 if (flags
& NDR_OUT
) {
23163 ndr_print_struct(ndr
, "out", "spoolss_PrinterMessageBox");
23165 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23171 static enum ndr_err_code
ndr_push_spoolss_AddMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddMonitor
*r
)
23173 if (flags
& NDR_IN
) {
23175 if (flags
& NDR_OUT
) {
23176 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23178 return NDR_ERR_SUCCESS
;
23181 static enum ndr_err_code
ndr_pull_spoolss_AddMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddMonitor
*r
)
23183 if (flags
& NDR_IN
) {
23185 if (flags
& NDR_OUT
) {
23186 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23188 return NDR_ERR_SUCCESS
;
23191 _PUBLIC_
void ndr_print_spoolss_AddMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddMonitor
*r
)
23193 ndr_print_struct(ndr
, name
, "spoolss_AddMonitor");
23195 if (flags
& NDR_SET_VALUES
) {
23196 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23198 if (flags
& NDR_IN
) {
23199 ndr_print_struct(ndr
, "in", "spoolss_AddMonitor");
23203 if (flags
& NDR_OUT
) {
23204 ndr_print_struct(ndr
, "out", "spoolss_AddMonitor");
23206 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23212 static enum ndr_err_code
ndr_push_spoolss_DeleteMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteMonitor
*r
)
23214 if (flags
& NDR_IN
) {
23216 if (flags
& NDR_OUT
) {
23217 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23219 return NDR_ERR_SUCCESS
;
23222 static enum ndr_err_code
ndr_pull_spoolss_DeleteMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteMonitor
*r
)
23224 if (flags
& NDR_IN
) {
23226 if (flags
& NDR_OUT
) {
23227 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23229 return NDR_ERR_SUCCESS
;
23232 _PUBLIC_
void ndr_print_spoolss_DeleteMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteMonitor
*r
)
23234 ndr_print_struct(ndr
, name
, "spoolss_DeleteMonitor");
23236 if (flags
& NDR_SET_VALUES
) {
23237 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23239 if (flags
& NDR_IN
) {
23240 ndr_print_struct(ndr
, "in", "spoolss_DeleteMonitor");
23244 if (flags
& NDR_OUT
) {
23245 ndr_print_struct(ndr
, "out", "spoolss_DeleteMonitor");
23247 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23253 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
23255 if (flags
& NDR_IN
) {
23257 if (flags
& NDR_OUT
) {
23258 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23260 return NDR_ERR_SUCCESS
;
23263 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProcessor
*r
)
23265 if (flags
& NDR_IN
) {
23267 if (flags
& NDR_OUT
) {
23268 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23270 return NDR_ERR_SUCCESS
;
23273 _PUBLIC_
void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
23275 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProcessor");
23277 if (flags
& NDR_SET_VALUES
) {
23278 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23280 if (flags
& NDR_IN
) {
23281 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProcessor");
23285 if (flags
& NDR_OUT
) {
23286 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProcessor");
23288 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23294 static enum ndr_err_code
ndr_push_spoolss_AddPrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
23296 if (flags
& NDR_IN
) {
23298 if (flags
& NDR_OUT
) {
23299 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23301 return NDR_ERR_SUCCESS
;
23304 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProvidor
*r
)
23306 if (flags
& NDR_IN
) {
23308 if (flags
& NDR_OUT
) {
23309 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23311 return NDR_ERR_SUCCESS
;
23314 _PUBLIC_
void ndr_print_spoolss_AddPrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
23316 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProvidor");
23318 if (flags
& NDR_SET_VALUES
) {
23319 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23321 if (flags
& NDR_IN
) {
23322 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProvidor");
23326 if (flags
& NDR_OUT
) {
23327 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProvidor");
23329 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23335 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
23337 if (flags
& NDR_IN
) {
23339 if (flags
& NDR_OUT
) {
23340 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23342 return NDR_ERR_SUCCESS
;
23345 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProvidor
*r
)
23347 if (flags
& NDR_IN
) {
23349 if (flags
& NDR_OUT
) {
23350 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23352 return NDR_ERR_SUCCESS
;
23355 _PUBLIC_
void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
23357 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProvidor");
23359 if (flags
& NDR_SET_VALUES
) {
23360 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23362 if (flags
& NDR_IN
) {
23363 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProvidor");
23367 if (flags
& NDR_OUT
) {
23368 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProvidor");
23370 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23376 static enum ndr_err_code
ndr_push_spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrintProcDataTypes
*r
)
23378 if (flags
& NDR_IN
) {
23380 if (flags
& NDR_OUT
) {
23381 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23383 return NDR_ERR_SUCCESS
;
23386 static enum ndr_err_code
ndr_pull_spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrintProcDataTypes
*r
)
23388 if (flags
& NDR_IN
) {
23390 if (flags
& NDR_OUT
) {
23391 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23393 return NDR_ERR_SUCCESS
;
23396 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcDataTypes
*r
)
23398 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcDataTypes");
23400 if (flags
& NDR_SET_VALUES
) {
23401 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23403 if (flags
& NDR_IN
) {
23404 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcDataTypes");
23408 if (flags
& NDR_OUT
) {
23409 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcDataTypes");
23411 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23417 static enum ndr_err_code
ndr_push_spoolss_ResetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinter
*r
)
23419 if (flags
& NDR_IN
) {
23420 if (r
->in
.handle
== NULL
) {
23421 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23423 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23424 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_type
));
23425 if (r
->in
.data_type
) {
23426 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
23427 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23428 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
23429 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.data_type
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23431 if (r
->in
.devmode_ctr
== NULL
) {
23432 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23434 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
23436 if (flags
& NDR_OUT
) {
23437 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23439 return NDR_ERR_SUCCESS
;
23442 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinter
*r
)
23444 uint32_t _ptr_data_type
;
23445 TALLOC_CTX
*_mem_save_handle_0
;
23446 TALLOC_CTX
*_mem_save_data_type_0
;
23447 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
23448 if (flags
& NDR_IN
) {
23449 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23450 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23452 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23453 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23454 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23455 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23456 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
23457 if (_ptr_data_type
) {
23458 NDR_PULL_ALLOC(ndr
, r
->in
.data_type
);
23460 r
->in
.data_type
= NULL
;
23462 if (r
->in
.data_type
) {
23463 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23464 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_type
, 0);
23465 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data_type
));
23466 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data_type
));
23467 if (ndr_get_array_length(ndr
, &r
->in
.data_type
) > ndr_get_array_size(ndr
, &r
->in
.data_type
)) {
23468 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.data_type
), ndr_get_array_length(ndr
, &r
->in
.data_type
));
23470 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.data_type
), sizeof(uint16_t)));
23471 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.data_type
, ndr_get_array_length(ndr
, &r
->in
.data_type
), sizeof(uint16_t), CH_UTF16
));
23472 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
23474 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23475 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
23477 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23478 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
23479 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
23480 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
23482 if (flags
& NDR_OUT
) {
23483 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23485 return NDR_ERR_SUCCESS
;
23488 _PUBLIC_
void ndr_print_spoolss_ResetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinter
*r
)
23490 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinter");
23492 if (flags
& NDR_SET_VALUES
) {
23493 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23495 if (flags
& NDR_IN
) {
23496 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinter");
23498 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23500 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23502 ndr_print_ptr(ndr
, "data_type", r
->in
.data_type
);
23504 if (r
->in
.data_type
) {
23505 ndr_print_string(ndr
, "data_type", r
->in
.data_type
);
23508 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
23510 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
23514 if (flags
& NDR_OUT
) {
23515 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinter");
23517 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23523 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver2(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
23525 if (flags
& NDR_IN
) {
23526 if (r
->in
.handle
== NULL
) {
23527 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23529 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23530 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
23531 if (r
->in
.architecture
) {
23532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
23533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
23535 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23537 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23538 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23539 if (r
->in
.buffer
) {
23540 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_major_version
));
23544 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_minor_version
));
23546 if (flags
& NDR_OUT
) {
23547 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23550 struct ndr_push
*_ndr_info
;
23551 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23552 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23553 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
23554 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23557 if (r
->out
.needed
== NULL
) {
23558 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23560 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23561 if (r
->out
.server_major_version
== NULL
) {
23562 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23564 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_major_version
));
23565 if (r
->out
.server_minor_version
== NULL
) {
23566 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23568 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_minor_version
));
23569 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23571 return NDR_ERR_SUCCESS
;
23574 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver2
*r
)
23576 uint32_t _ptr_architecture
;
23577 uint32_t _ptr_buffer
;
23578 uint32_t _ptr_info
;
23579 TALLOC_CTX
*_mem_save_handle_0
;
23580 TALLOC_CTX
*_mem_save_architecture_0
;
23581 TALLOC_CTX
*_mem_save_buffer_0
;
23582 TALLOC_CTX
*_mem_save_info_0
;
23583 TALLOC_CTX
*_mem_save_needed_0
;
23584 TALLOC_CTX
*_mem_save_server_major_version_0
;
23585 TALLOC_CTX
*_mem_save_server_minor_version_0
;
23586 if (flags
& NDR_IN
) {
23587 ZERO_STRUCT(r
->out
);
23589 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23590 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23592 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23593 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23594 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23595 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23596 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
23597 if (_ptr_architecture
) {
23598 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
23600 r
->in
.architecture
= NULL
;
23602 if (r
->in
.architecture
) {
23603 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23604 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
23605 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
23606 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
23607 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
23608 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
));
23610 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
23611 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
23612 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
23614 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23615 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23617 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23619 r
->in
.buffer
= NULL
;
23621 if (r
->in
.buffer
) {
23622 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23623 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23624 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23625 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23627 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23628 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_major_version
));
23629 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_minor_version
));
23630 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23631 ZERO_STRUCTP(r
->out
.needed
);
23632 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
23633 ZERO_STRUCTP(r
->out
.server_major_version
);
23634 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
23635 ZERO_STRUCTP(r
->out
.server_minor_version
);
23637 if (flags
& NDR_OUT
) {
23638 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23640 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23642 r
->out
.info
= NULL
;
23645 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23646 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23648 struct ndr_pull
*_ndr_info
;
23649 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23650 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23651 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
23652 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23654 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23656 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23657 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23659 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23660 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23661 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23662 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23663 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23664 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
23666 _mem_save_server_major_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23667 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_major_version
, LIBNDR_FLAG_REF_ALLOC
);
23668 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_major_version
));
23669 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_major_version_0
, LIBNDR_FLAG_REF_ALLOC
);
23670 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23671 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
23673 _mem_save_server_minor_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23674 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_minor_version
, LIBNDR_FLAG_REF_ALLOC
);
23675 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_minor_version
));
23676 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_minor_version_0
, LIBNDR_FLAG_REF_ALLOC
);
23677 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23679 return NDR_ERR_SUCCESS
;
23682 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
23684 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver2");
23686 if (flags
& NDR_SET_VALUES
) {
23687 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23689 if (flags
& NDR_IN
) {
23690 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver2");
23692 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23694 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23696 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
23698 if (r
->in
.architecture
) {
23699 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
23702 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23703 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23705 if (r
->in
.buffer
) {
23706 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23709 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23710 ndr_print_uint32(ndr
, "client_major_version", r
->in
.client_major_version
);
23711 ndr_print_uint32(ndr
, "client_minor_version", r
->in
.client_minor_version
);
23714 if (flags
& NDR_OUT
) {
23715 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver2");
23717 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23720 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
23721 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
23724 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23726 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23728 ndr_print_ptr(ndr
, "server_major_version", r
->out
.server_major_version
);
23730 ndr_print_uint32(ndr
, "server_major_version", *r
->out
.server_major_version
);
23732 ndr_print_ptr(ndr
, "server_minor_version", r
->out
.server_minor_version
);
23734 ndr_print_uint32(ndr
, "server_minor_version", *r
->out
.server_minor_version
);
23736 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23742 static enum ndr_err_code
ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
23744 if (flags
& NDR_IN
) {
23746 if (flags
& NDR_OUT
) {
23747 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23749 return NDR_ERR_SUCCESS
;
23752 static enum ndr_err_code
ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindFirstPrinterChangeNotification
*r
)
23754 if (flags
& NDR_IN
) {
23756 if (flags
& NDR_OUT
) {
23757 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23759 return NDR_ERR_SUCCESS
;
23762 _PUBLIC_
void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
23764 ndr_print_struct(ndr
, name
, "spoolss_FindFirstPrinterChangeNotification");
23766 if (flags
& NDR_SET_VALUES
) {
23767 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23769 if (flags
& NDR_IN
) {
23770 ndr_print_struct(ndr
, "in", "spoolss_FindFirstPrinterChangeNotification");
23774 if (flags
& NDR_OUT
) {
23775 ndr_print_struct(ndr
, "out", "spoolss_FindFirstPrinterChangeNotification");
23777 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23783 static enum ndr_err_code
ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
23785 if (flags
& NDR_IN
) {
23787 if (flags
& NDR_OUT
) {
23788 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23790 return NDR_ERR_SUCCESS
;
23793 static enum ndr_err_code
ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindNextPrinterChangeNotification
*r
)
23795 if (flags
& NDR_IN
) {
23797 if (flags
& NDR_OUT
) {
23798 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23800 return NDR_ERR_SUCCESS
;
23803 _PUBLIC_
void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
23805 ndr_print_struct(ndr
, name
, "spoolss_FindNextPrinterChangeNotification");
23807 if (flags
& NDR_SET_VALUES
) {
23808 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23810 if (flags
& NDR_IN
) {
23811 ndr_print_struct(ndr
, "in", "spoolss_FindNextPrinterChangeNotification");
23815 if (flags
& NDR_OUT
) {
23816 ndr_print_struct(ndr
, "out", "spoolss_FindNextPrinterChangeNotification");
23818 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23824 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
23826 if (flags
& NDR_IN
) {
23827 if (r
->in
.handle
== NULL
) {
23828 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23830 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23832 if (flags
& NDR_OUT
) {
23833 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23835 return NDR_ERR_SUCCESS
;
23838 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindClosePrinterNotify
*r
)
23840 TALLOC_CTX
*_mem_save_handle_0
;
23841 if (flags
& NDR_IN
) {
23842 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23843 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23845 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23846 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23847 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23848 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23850 if (flags
& NDR_OUT
) {
23851 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23853 return NDR_ERR_SUCCESS
;
23856 _PUBLIC_
void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
23858 ndr_print_struct(ndr
, name
, "spoolss_FindClosePrinterNotify");
23860 if (flags
& NDR_SET_VALUES
) {
23861 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23863 if (flags
& NDR_IN
) {
23864 ndr_print_struct(ndr
, "in", "spoolss_FindClosePrinterNotify");
23866 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23868 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23872 if (flags
& NDR_OUT
) {
23873 ndr_print_struct(ndr
, "out", "spoolss_FindClosePrinterNotify");
23875 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23881 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
23883 if (flags
& NDR_IN
) {
23885 if (flags
& NDR_OUT
) {
23886 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23888 return NDR_ERR_SUCCESS
;
23891 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
23893 if (flags
& NDR_IN
) {
23895 if (flags
& NDR_OUT
) {
23896 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23898 return NDR_ERR_SUCCESS
;
23901 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
23903 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
23905 if (flags
& NDR_SET_VALUES
) {
23906 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23908 if (flags
& NDR_IN
) {
23909 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
23913 if (flags
& NDR_OUT
) {
23914 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
23916 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23922 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
23924 if (flags
& NDR_IN
) {
23925 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
23926 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
23928 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
));
23929 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
23930 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
23931 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
23932 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23933 if (r
->in
.buffer
) {
23934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
23935 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
23938 if (flags
& NDR_OUT
) {
23939 if (r
->out
.handle
== NULL
) {
23940 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23942 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
23943 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23945 return NDR_ERR_SUCCESS
;
23948 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyOpenPrinter
*r
)
23950 uint32_t _ptr_buffer
;
23951 TALLOC_CTX
*_mem_save_buffer_0
;
23952 TALLOC_CTX
*_mem_save_handle_0
;
23953 if (flags
& NDR_IN
) {
23954 ZERO_STRUCT(r
->out
);
23956 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
23957 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
23958 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
23959 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
));
23961 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
23962 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
));
23963 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
23964 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
23965 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
23966 if (r
->in
.bufsize
> 512) {
23967 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
23969 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23971 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23973 r
->in
.buffer
= NULL
;
23975 if (r
->in
.buffer
) {
23976 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23977 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23978 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
23979 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
23980 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
23981 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23983 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
23984 ZERO_STRUCTP(r
->out
.handle
);
23985 if (r
->in
.buffer
) {
23986 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
23989 if (flags
& NDR_OUT
) {
23990 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23991 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
23993 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23994 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23995 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
23996 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23997 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23999 return NDR_ERR_SUCCESS
;
24002 _PUBLIC_
void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
24004 ndr_print_struct(ndr
, name
, "spoolss_ReplyOpenPrinter");
24006 if (flags
& NDR_SET_VALUES
) {
24007 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24009 if (flags
& NDR_IN
) {
24010 ndr_print_struct(ndr
, "in", "spoolss_ReplyOpenPrinter");
24012 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
24013 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
24014 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
24015 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
24016 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24018 if (r
->in
.buffer
) {
24019 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
24024 if (flags
& NDR_OUT
) {
24025 ndr_print_struct(ndr
, "out", "spoolss_ReplyOpenPrinter");
24027 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
24029 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
24031 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24037 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
24039 if (flags
& NDR_IN
) {
24040 if (r
->in
.handle
== NULL
) {
24041 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24043 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24044 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
24045 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
24046 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24047 if (r
->in
.buffer
) {
24048 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
24049 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
24052 if (flags
& NDR_OUT
) {
24053 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24055 return NDR_ERR_SUCCESS
;
24058 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinter
*r
)
24060 uint32_t _ptr_buffer
;
24061 TALLOC_CTX
*_mem_save_handle_0
;
24062 TALLOC_CTX
*_mem_save_buffer_0
;
24063 if (flags
& NDR_IN
) {
24064 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24065 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24067 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24068 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24069 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24070 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24071 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
24072 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
24073 if (r
->in
.bufsize
> 512) {
24074 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
24076 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24078 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24080 r
->in
.buffer
= NULL
;
24082 if (r
->in
.buffer
) {
24083 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24084 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24085 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
24086 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
24087 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
24088 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24090 if (r
->in
.buffer
) {
24091 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
24094 if (flags
& NDR_OUT
) {
24095 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24097 return NDR_ERR_SUCCESS
;
24100 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
24102 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinter");
24104 if (flags
& NDR_SET_VALUES
) {
24105 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24107 if (flags
& NDR_IN
) {
24108 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinter");
24110 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24112 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24114 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
24115 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
24116 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24118 if (r
->in
.buffer
) {
24119 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
24124 if (flags
& NDR_OUT
) {
24125 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinter");
24127 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24133 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
24135 if (flags
& NDR_IN
) {
24136 if (r
->in
.handle
== NULL
) {
24137 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24139 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24141 if (flags
& NDR_OUT
) {
24142 if (r
->out
.handle
== NULL
) {
24143 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24145 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24146 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24148 return NDR_ERR_SUCCESS
;
24151 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyClosePrinter
*r
)
24153 TALLOC_CTX
*_mem_save_handle_0
;
24154 if (flags
& NDR_IN
) {
24155 ZERO_STRUCT(r
->out
);
24157 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24158 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24160 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24161 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24162 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24163 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24164 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24165 *r
->out
.handle
= *r
->in
.handle
;
24167 if (flags
& NDR_OUT
) {
24168 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24169 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24171 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24172 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24173 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24174 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24175 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24177 return NDR_ERR_SUCCESS
;
24180 _PUBLIC_
void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
24182 ndr_print_struct(ndr
, name
, "spoolss_ReplyClosePrinter");
24184 if (flags
& NDR_SET_VALUES
) {
24185 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24187 if (flags
& NDR_IN
) {
24188 ndr_print_struct(ndr
, "in", "spoolss_ReplyClosePrinter");
24190 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24192 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24196 if (flags
& NDR_OUT
) {
24197 ndr_print_struct(ndr
, "out", "spoolss_ReplyClosePrinter");
24199 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
24201 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
24203 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24209 static enum ndr_err_code
ndr_push_spoolss_AddPortEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPortEx
*r
)
24211 if (flags
& NDR_IN
) {
24213 if (flags
& NDR_OUT
) {
24214 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24216 return NDR_ERR_SUCCESS
;
24219 static enum ndr_err_code
ndr_pull_spoolss_AddPortEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPortEx
*r
)
24221 if (flags
& NDR_IN
) {
24223 if (flags
& NDR_OUT
) {
24224 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24226 return NDR_ERR_SUCCESS
;
24229 _PUBLIC_
void ndr_print_spoolss_AddPortEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPortEx
*r
)
24231 ndr_print_struct(ndr
, name
, "spoolss_AddPortEx");
24233 if (flags
& NDR_SET_VALUES
) {
24234 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24236 if (flags
& NDR_IN
) {
24237 ndr_print_struct(ndr
, "in", "spoolss_AddPortEx");
24241 if (flags
& NDR_OUT
) {
24242 ndr_print_struct(ndr
, "out", "spoolss_AddPortEx");
24244 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24250 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
24252 if (flags
& NDR_IN
) {
24254 if (flags
& NDR_OUT
) {
24255 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24257 return NDR_ERR_SUCCESS
;
24260 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
24262 if (flags
& NDR_IN
) {
24264 if (flags
& NDR_OUT
) {
24265 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24267 return NDR_ERR_SUCCESS
;
24270 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
24272 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotification");
24274 if (flags
& NDR_SET_VALUES
) {
24275 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24277 if (flags
& NDR_IN
) {
24278 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
24282 if (flags
& NDR_OUT
) {
24283 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
24285 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24291 static enum ndr_err_code
ndr_push_spoolss_SpoolerInit(struct ndr_push
*ndr
, int flags
, const struct spoolss_SpoolerInit
*r
)
24293 if (flags
& NDR_IN
) {
24295 if (flags
& NDR_OUT
) {
24296 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24298 return NDR_ERR_SUCCESS
;
24301 static enum ndr_err_code
ndr_pull_spoolss_SpoolerInit(struct ndr_pull
*ndr
, int flags
, struct spoolss_SpoolerInit
*r
)
24303 if (flags
& NDR_IN
) {
24305 if (flags
& NDR_OUT
) {
24306 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24308 return NDR_ERR_SUCCESS
;
24311 _PUBLIC_
void ndr_print_spoolss_SpoolerInit(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SpoolerInit
*r
)
24313 ndr_print_struct(ndr
, name
, "spoolss_SpoolerInit");
24315 if (flags
& NDR_SET_VALUES
) {
24316 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24318 if (flags
& NDR_IN
) {
24319 ndr_print_struct(ndr
, "in", "spoolss_SpoolerInit");
24323 if (flags
& NDR_OUT
) {
24324 ndr_print_struct(ndr
, "out", "spoolss_SpoolerInit");
24326 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24332 static enum ndr_err_code
ndr_push_spoolss_ResetPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
24334 if (flags
& NDR_IN
) {
24336 if (flags
& NDR_OUT
) {
24337 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24339 return NDR_ERR_SUCCESS
;
24342 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinterEx
*r
)
24344 if (flags
& NDR_IN
) {
24346 if (flags
& NDR_OUT
) {
24347 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24349 return NDR_ERR_SUCCESS
;
24352 _PUBLIC_
void ndr_print_spoolss_ResetPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
24354 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinterEx");
24356 if (flags
& NDR_SET_VALUES
) {
24357 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24359 if (flags
& NDR_IN
) {
24360 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinterEx");
24364 if (flags
& NDR_OUT
) {
24365 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinterEx");
24367 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24373 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
24375 if (flags
& NDR_IN
) {
24376 if (r
->in
.handle
== NULL
) {
24377 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24379 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24380 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
24381 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.options
));
24382 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.local_machine
));
24383 if (r
->in
.local_machine
) {
24384 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
24385 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
24387 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.local_machine
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24389 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
24390 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.notify_options
));
24391 if (r
->in
.notify_options
) {
24392 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
24395 if (flags
& NDR_OUT
) {
24396 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24398 return NDR_ERR_SUCCESS
;
24401 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
24403 uint32_t _ptr_local_machine
;
24404 uint32_t _ptr_notify_options
;
24405 TALLOC_CTX
*_mem_save_handle_0
;
24406 TALLOC_CTX
*_mem_save_local_machine_0
;
24407 TALLOC_CTX
*_mem_save_notify_options_0
;
24408 if (flags
& NDR_IN
) {
24409 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24410 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24412 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24413 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24414 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24415 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24416 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
24417 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.options
));
24418 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_local_machine
));
24419 if (_ptr_local_machine
) {
24420 NDR_PULL_ALLOC(ndr
, r
->in
.local_machine
);
24422 r
->in
.local_machine
= NULL
;
24424 if (r
->in
.local_machine
) {
24425 _mem_save_local_machine_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24426 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.local_machine
, 0);
24427 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.local_machine
));
24428 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.local_machine
));
24429 if (ndr_get_array_length(ndr
, &r
->in
.local_machine
) > ndr_get_array_size(ndr
, &r
->in
.local_machine
)) {
24430 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.local_machine
), ndr_get_array_length(ndr
, &r
->in
.local_machine
));
24432 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.local_machine
), sizeof(uint16_t)));
24433 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.local_machine
, ndr_get_array_length(ndr
, &r
->in
.local_machine
), sizeof(uint16_t), CH_UTF16
));
24434 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_local_machine_0
, 0);
24436 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
24437 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_options
));
24438 if (_ptr_notify_options
) {
24439 NDR_PULL_ALLOC(ndr
, r
->in
.notify_options
);
24441 r
->in
.notify_options
= NULL
;
24443 if (r
->in
.notify_options
) {
24444 _mem_save_notify_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24445 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.notify_options
, 0);
24446 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
24447 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_options_0
, 0);
24450 if (flags
& NDR_OUT
) {
24451 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24453 return NDR_ERR_SUCCESS
;
24456 _PUBLIC_
void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
24458 ndr_print_struct(ndr
, name
, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24460 if (flags
& NDR_SET_VALUES
) {
24461 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24463 if (flags
& NDR_IN
) {
24464 ndr_print_struct(ndr
, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24466 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24468 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24470 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
24471 ndr_print_uint32(ndr
, "options", r
->in
.options
);
24472 ndr_print_ptr(ndr
, "local_machine", r
->in
.local_machine
);
24474 if (r
->in
.local_machine
) {
24475 ndr_print_string(ndr
, "local_machine", r
->in
.local_machine
);
24478 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
24479 ndr_print_ptr(ndr
, "notify_options", r
->in
.notify_options
);
24481 if (r
->in
.notify_options
) {
24482 ndr_print_spoolss_NotifyOption(ndr
, "notify_options", r
->in
.notify_options
);
24487 if (flags
& NDR_OUT
) {
24488 ndr_print_struct(ndr
, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24490 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24496 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
24498 if (flags
& NDR_IN
) {
24499 if (r
->in
.handle
== NULL
) {
24500 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24502 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24503 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.color
));
24504 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
24505 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reply_type
));
24506 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
24507 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24509 if (flags
& NDR_OUT
) {
24510 if (r
->out
.reply_result
== NULL
) {
24511 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24513 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, *r
->out
.reply_result
));
24514 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24516 return NDR_ERR_SUCCESS
;
24519 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinterEx
*r
)
24521 TALLOC_CTX
*_mem_save_handle_0
;
24522 TALLOC_CTX
*_mem_save_reply_result_0
;
24523 if (flags
& NDR_IN
) {
24524 ZERO_STRUCT(r
->out
);
24526 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24527 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24529 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24530 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24531 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24532 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24533 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.color
));
24534 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
24535 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reply_type
));
24536 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
24537 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24538 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
24539 ZERO_STRUCTP(r
->out
.reply_result
);
24541 if (flags
& NDR_OUT
) {
24542 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24543 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
24545 _mem_save_reply_result_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24546 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.reply_result
, LIBNDR_FLAG_REF_ALLOC
);
24547 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, r
->out
.reply_result
));
24548 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_reply_result_0
, LIBNDR_FLAG_REF_ALLOC
);
24549 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24551 return NDR_ERR_SUCCESS
;
24554 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
24556 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinterEx");
24558 if (flags
& NDR_SET_VALUES
) {
24559 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24561 if (flags
& NDR_IN
) {
24562 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinterEx");
24564 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24566 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24568 ndr_print_uint32(ndr
, "color", r
->in
.color
);
24569 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
24570 ndr_print_uint32(ndr
, "reply_type", r
->in
.reply_type
);
24571 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
);
24572 ndr_print_spoolss_ReplyPrinterInfo(ndr
, "info", &r
->in
.info
);
24575 if (flags
& NDR_OUT
) {
24576 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinterEx");
24578 ndr_print_ptr(ndr
, "reply_result", r
->out
.reply_result
);
24580 ndr_print_spoolss_PrinterNotifyFlags(ndr
, "reply_result", *r
->out
.reply_result
);
24582 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24588 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
24590 if (flags
& NDR_IN
) {
24591 if (r
->in
.handle
== NULL
) {
24592 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24594 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_low
));
24596 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.options
));
24597 if (r
->in
.options
) {
24598 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
24601 if (flags
& NDR_OUT
) {
24602 if (r
->out
.info
== NULL
) {
24603 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24605 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
24606 if (*r
->out
.info
) {
24607 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
24609 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24611 return NDR_ERR_SUCCESS
;
24614 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
24616 uint32_t _ptr_options
;
24617 uint32_t _ptr_info
;
24618 TALLOC_CTX
*_mem_save_handle_0
;
24619 TALLOC_CTX
*_mem_save_options_0
;
24620 TALLOC_CTX
*_mem_save_info_0
;
24621 TALLOC_CTX
*_mem_save_info_1
;
24622 if (flags
& NDR_IN
) {
24623 ZERO_STRUCT(r
->out
);
24625 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24626 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24628 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24629 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24630 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24631 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24632 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_low
));
24633 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_options
));
24634 if (_ptr_options
) {
24635 NDR_PULL_ALLOC(ndr
, r
->in
.options
);
24637 r
->in
.options
= NULL
;
24639 if (r
->in
.options
) {
24640 _mem_save_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24641 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.options
, 0);
24642 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
24643 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_options_0
, 0);
24645 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24646 ZERO_STRUCTP(r
->out
.info
);
24648 if (flags
& NDR_OUT
) {
24649 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24650 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24652 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24653 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
24654 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24656 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
24658 *r
->out
.info
= NULL
;
24660 if (*r
->out
.info
) {
24661 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
24662 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
24663 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
24664 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
24666 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
24667 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24669 return NDR_ERR_SUCCESS
;
24672 _PUBLIC_
void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
24674 ndr_print_struct(ndr
, name
, "spoolss_RouterRefreshPrinterChangeNotify");
24676 if (flags
& NDR_SET_VALUES
) {
24677 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24679 if (flags
& NDR_IN
) {
24680 ndr_print_struct(ndr
, "in", "spoolss_RouterRefreshPrinterChangeNotify");
24682 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24684 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24686 ndr_print_uint32(ndr
, "change_low", r
->in
.change_low
);
24687 ndr_print_ptr(ndr
, "options", r
->in
.options
);
24689 if (r
->in
.options
) {
24690 ndr_print_spoolss_NotifyOption(ndr
, "options", r
->in
.options
);
24695 if (flags
& NDR_OUT
) {
24696 ndr_print_struct(ndr
, "out", "spoolss_RouterRefreshPrinterChangeNotify");
24698 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24700 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
24702 if (*r
->out
.info
) {
24703 ndr_print_spoolss_NotifyInfo(ndr
, "info", *r
->out
.info
);
24707 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24713 static enum ndr_err_code
ndr_push_spoolss_44(struct ndr_push
*ndr
, int flags
, const struct spoolss_44
*r
)
24715 if (flags
& NDR_IN
) {
24717 if (flags
& NDR_OUT
) {
24718 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24720 return NDR_ERR_SUCCESS
;
24723 static enum ndr_err_code
ndr_pull_spoolss_44(struct ndr_pull
*ndr
, int flags
, struct spoolss_44
*r
)
24725 if (flags
& NDR_IN
) {
24727 if (flags
& NDR_OUT
) {
24728 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24730 return NDR_ERR_SUCCESS
;
24733 _PUBLIC_
void ndr_print_spoolss_44(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_44
*r
)
24735 ndr_print_struct(ndr
, name
, "spoolss_44");
24737 if (flags
& NDR_SET_VALUES
) {
24738 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24740 if (flags
& NDR_IN
) {
24741 ndr_print_struct(ndr
, "in", "spoolss_44");
24745 if (flags
& NDR_OUT
) {
24746 ndr_print_struct(ndr
, "out", "spoolss_44");
24748 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24754 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
24756 if (flags
& NDR_IN
) {
24757 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
24758 if (r
->in
.printername
) {
24759 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
24760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24761 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
24762 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24764 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
24765 if (r
->in
.datatype
) {
24766 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
24767 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24768 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
24769 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24771 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
24772 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
24773 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24774 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
24775 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
24777 if (flags
& NDR_OUT
) {
24778 if (r
->out
.handle
== NULL
) {
24779 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24781 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24782 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24784 return NDR_ERR_SUCCESS
;
24787 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinterEx
*r
)
24789 uint32_t _ptr_printername
;
24790 uint32_t _ptr_datatype
;
24791 TALLOC_CTX
*_mem_save_printername_0
;
24792 TALLOC_CTX
*_mem_save_datatype_0
;
24793 TALLOC_CTX
*_mem_save_handle_0
;
24794 if (flags
& NDR_IN
) {
24795 ZERO_STRUCT(r
->out
);
24797 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
24798 if (_ptr_printername
) {
24799 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
24801 r
->in
.printername
= NULL
;
24803 if (r
->in
.printername
) {
24804 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24805 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
24806 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
24807 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
24808 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
24809 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
));
24811 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
24812 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
24813 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
24815 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
24816 if (_ptr_datatype
) {
24817 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
24819 r
->in
.datatype
= NULL
;
24821 if (r
->in
.datatype
) {
24822 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24823 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
24824 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
24825 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
24826 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
24827 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
));
24829 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
24830 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
24831 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
24833 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
24834 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
24835 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24836 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
24837 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
24838 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24839 ZERO_STRUCTP(r
->out
.handle
);
24841 if (flags
& NDR_OUT
) {
24842 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24843 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24845 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24846 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24847 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24848 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24849 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24851 return NDR_ERR_SUCCESS
;
24854 _PUBLIC_
void ndr_print_spoolss_OpenPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
24856 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinterEx");
24858 if (flags
& NDR_SET_VALUES
) {
24859 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24861 if (flags
& NDR_IN
) {
24862 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinterEx");
24864 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
24866 if (r
->in
.printername
) {
24867 ndr_print_string(ndr
, "printername", r
->in
.printername
);
24870 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
24872 if (r
->in
.datatype
) {
24873 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
24876 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
24877 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
24878 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24879 ndr_print_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
);
24880 ndr_print_spoolss_UserLevel(ndr
, "userlevel", &r
->in
.userlevel
);
24883 if (flags
& NDR_OUT
) {
24884 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinterEx");
24886 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
24888 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
24890 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24896 static enum ndr_err_code
ndr_push_spoolss_AddPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterEx
*r
)
24898 if (flags
& NDR_IN
) {
24899 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
24900 if (r
->in
.server
) {
24901 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
24902 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24903 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
24904 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24906 if (r
->in
.info_ctr
== NULL
) {
24907 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24909 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
24910 if (r
->in
.devmode_ctr
== NULL
) {
24911 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24913 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
24914 if (r
->in
.secdesc_ctr
== NULL
) {
24915 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24917 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
24918 if (r
->in
.userlevel_ctr
== NULL
) {
24919 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24921 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
24923 if (flags
& NDR_OUT
) {
24924 if (r
->out
.handle
== NULL
) {
24925 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24927 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24928 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24930 return NDR_ERR_SUCCESS
;
24933 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterEx
*r
)
24935 uint32_t _ptr_server
;
24936 TALLOC_CTX
*_mem_save_server_0
;
24937 TALLOC_CTX
*_mem_save_info_ctr_0
;
24938 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
24939 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
24940 TALLOC_CTX
*_mem_save_userlevel_ctr_0
;
24941 TALLOC_CTX
*_mem_save_handle_0
;
24942 if (flags
& NDR_IN
) {
24943 ZERO_STRUCT(r
->out
);
24945 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
24947 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
24949 r
->in
.server
= NULL
;
24951 if (r
->in
.server
) {
24952 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24953 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
24954 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
24955 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
24956 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
24957 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
));
24959 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
24960 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
24961 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
24963 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24964 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
24966 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24967 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
24968 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
24969 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
24970 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24971 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
24973 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24974 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
24975 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
24976 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
24977 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24978 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
24980 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24981 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
24982 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
24983 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
24984 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24985 NDR_PULL_ALLOC(ndr
, r
->in
.userlevel_ctr
);
24987 _mem_save_userlevel_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24988 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.userlevel_ctr
, LIBNDR_FLAG_REF_ALLOC
);
24989 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
24990 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_userlevel_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
24991 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24992 ZERO_STRUCTP(r
->out
.handle
);
24994 if (flags
& NDR_OUT
) {
24995 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24996 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24998 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24999 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25000 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25001 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25002 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25004 return NDR_ERR_SUCCESS
;
25007 _PUBLIC_
void ndr_print_spoolss_AddPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterEx
*r
)
25009 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterEx");
25011 if (flags
& NDR_SET_VALUES
) {
25012 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25014 if (flags
& NDR_IN
) {
25015 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterEx");
25017 ndr_print_ptr(ndr
, "server", r
->in
.server
);
25019 if (r
->in
.server
) {
25020 ndr_print_string(ndr
, "server", r
->in
.server
);
25023 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
25025 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
25027 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25029 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25031 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
25033 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
25035 ndr_print_ptr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
25037 ndr_print_spoolss_UserLevelCtr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
25041 if (flags
& NDR_OUT
) {
25042 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterEx");
25044 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
25046 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
25048 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25054 static enum ndr_err_code
ndr_push_spoolss_47(struct ndr_push
*ndr
, int flags
, const struct spoolss_47
*r
)
25056 if (flags
& NDR_IN
) {
25058 if (flags
& NDR_OUT
) {
25059 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25061 return NDR_ERR_SUCCESS
;
25064 static enum ndr_err_code
ndr_pull_spoolss_47(struct ndr_pull
*ndr
, int flags
, struct spoolss_47
*r
)
25066 if (flags
& NDR_IN
) {
25068 if (flags
& NDR_OUT
) {
25069 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25071 return NDR_ERR_SUCCESS
;
25074 _PUBLIC_
void ndr_print_spoolss_47(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_47
*r
)
25076 ndr_print_struct(ndr
, name
, "spoolss_47");
25078 if (flags
& NDR_SET_VALUES
) {
25079 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25081 if (flags
& NDR_IN
) {
25082 ndr_print_struct(ndr
, "in", "spoolss_47");
25086 if (flags
& NDR_OUT
) {
25087 ndr_print_struct(ndr
, "out", "spoolss_47");
25089 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25095 static enum ndr_err_code
ndr_push_spoolss_EnumPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterData
*r
)
25097 if (flags
& NDR_IN
) {
25098 if (r
->in
.handle
== NULL
) {
25099 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25101 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
25103 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
));
25104 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
25106 if (flags
& NDR_OUT
) {
25107 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
/ 2));
25108 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.value_name
, r
->in
.value_offered
/ 2, sizeof(uint16_t), CH_UTF16
));
25109 if (r
->out
.value_needed
== NULL
) {
25110 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25112 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.value_needed
));
25113 if (r
->out
.printerdata_type
== NULL
) {
25114 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25116 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.printerdata_type
));
25117 if (r
->out
.buffer
== NULL
) {
25118 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25120 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.buffer
));
25121 if (r
->out
.data_needed
== NULL
) {
25122 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25124 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_needed
));
25125 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25127 return NDR_ERR_SUCCESS
;
25130 static enum ndr_err_code
ndr_pull_spoolss_EnumPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterData
*r
)
25132 TALLOC_CTX
*_mem_save_handle_0
;
25133 TALLOC_CTX
*_mem_save_value_needed_0
;
25134 TALLOC_CTX
*_mem_save_printerdata_type_0
;
25135 TALLOC_CTX
*_mem_save_buffer_0
;
25136 TALLOC_CTX
*_mem_save_data_needed_0
;
25137 if (flags
& NDR_IN
) {
25138 ZERO_STRUCT(r
->out
);
25140 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25141 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25143 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25144 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25145 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25146 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25147 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
25148 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.value_offered
));
25149 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_offered
));
25150 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
25151 ZERO_STRUCTP(r
->out
.value_needed
);
25152 NDR_PULL_ALLOC(ndr
, r
->out
.printerdata_type
);
25153 ZERO_STRUCTP(r
->out
.printerdata_type
);
25154 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
25155 ZERO_STRUCTP(r
->out
.buffer
);
25156 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
25157 ZERO_STRUCTP(r
->out
.data_needed
);
25159 if (flags
& NDR_OUT
) {
25160 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value_name
));
25161 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
));
25162 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25163 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
25165 _mem_save_value_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25166 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value_needed
, LIBNDR_FLAG_REF_ALLOC
);
25167 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.value_needed
));
25168 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25169 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25170 NDR_PULL_ALLOC(ndr
, r
->out
.printerdata_type
);
25172 _mem_save_printerdata_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25173 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.printerdata_type
, LIBNDR_FLAG_REF_ALLOC
);
25174 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.printerdata_type
));
25175 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printerdata_type_0
, LIBNDR_FLAG_REF_ALLOC
);
25176 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25177 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
25179 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25180 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
25181 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.buffer
));
25182 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
25183 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25184 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
25186 _mem_save_data_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25187 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_needed
, LIBNDR_FLAG_REF_ALLOC
);
25188 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_needed
));
25189 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25190 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25191 if (r
->out
.value_name
) {
25192 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value_name
, r
->in
.value_offered
/ 2));
25195 return NDR_ERR_SUCCESS
;
25198 _PUBLIC_
void ndr_print_spoolss_EnumPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterData
*r
)
25200 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterData");
25202 if (flags
& NDR_SET_VALUES
) {
25203 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25205 if (flags
& NDR_IN
) {
25206 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterData");
25208 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25210 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25212 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
25213 ndr_print_uint32(ndr
, "value_offered", r
->in
.value_offered
);
25214 ndr_print_uint32(ndr
, "data_offered", r
->in
.data_offered
);
25217 if (flags
& NDR_OUT
) {
25218 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterData");
25220 ndr_print_string(ndr
, "value_name", r
->out
.value_name
);
25221 ndr_print_ptr(ndr
, "value_needed", r
->out
.value_needed
);
25223 ndr_print_uint32(ndr
, "value_needed", *r
->out
.value_needed
);
25225 ndr_print_ptr(ndr
, "printerdata_type", r
->out
.printerdata_type
);
25227 ndr_print_uint32(ndr
, "printerdata_type", *r
->out
.printerdata_type
);
25229 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
25231 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->out
.buffer
);
25233 ndr_print_ptr(ndr
, "data_needed", r
->out
.data_needed
);
25235 ndr_print_uint32(ndr
, "data_needed", *r
->out
.data_needed
);
25237 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25243 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterData
*r
)
25245 if (flags
& NDR_IN
) {
25246 if (r
->in
.handle
== NULL
) {
25247 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25249 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25252 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25253 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
));
25255 if (flags
& NDR_OUT
) {
25256 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25258 return NDR_ERR_SUCCESS
;
25261 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterData
*r
)
25263 TALLOC_CTX
*_mem_save_handle_0
;
25264 if (flags
& NDR_IN
) {
25265 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25266 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25268 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25269 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25270 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25271 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25272 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
25273 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
25274 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
25275 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
));
25277 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
25278 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
));
25280 if (flags
& NDR_OUT
) {
25281 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25283 return NDR_ERR_SUCCESS
;
25286 _PUBLIC_
void ndr_print_spoolss_DeletePrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterData
*r
)
25288 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterData");
25290 if (flags
& NDR_SET_VALUES
) {
25291 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25293 if (flags
& NDR_IN
) {
25294 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterData");
25296 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25298 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25300 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
25303 if (flags
& NDR_OUT
) {
25304 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterData");
25306 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25312 static enum ndr_err_code
ndr_push_spoolss_4a(struct ndr_push
*ndr
, int flags
, const struct spoolss_4a
*r
)
25314 if (flags
& NDR_IN
) {
25316 if (flags
& NDR_OUT
) {
25317 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25319 return NDR_ERR_SUCCESS
;
25322 static enum ndr_err_code
ndr_pull_spoolss_4a(struct ndr_pull
*ndr
, int flags
, struct spoolss_4a
*r
)
25324 if (flags
& NDR_IN
) {
25326 if (flags
& NDR_OUT
) {
25327 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25329 return NDR_ERR_SUCCESS
;
25332 _PUBLIC_
void ndr_print_spoolss_4a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4a
*r
)
25334 ndr_print_struct(ndr
, name
, "spoolss_4a");
25336 if (flags
& NDR_SET_VALUES
) {
25337 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25339 if (flags
& NDR_IN
) {
25340 ndr_print_struct(ndr
, "in", "spoolss_4a");
25344 if (flags
& NDR_OUT
) {
25345 ndr_print_struct(ndr
, "out", "spoolss_4a");
25347 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25353 static enum ndr_err_code
ndr_push_spoolss_4b(struct ndr_push
*ndr
, int flags
, const struct spoolss_4b
*r
)
25355 if (flags
& NDR_IN
) {
25357 if (flags
& NDR_OUT
) {
25358 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25360 return NDR_ERR_SUCCESS
;
25363 static enum ndr_err_code
ndr_pull_spoolss_4b(struct ndr_pull
*ndr
, int flags
, struct spoolss_4b
*r
)
25365 if (flags
& NDR_IN
) {
25367 if (flags
& NDR_OUT
) {
25368 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25370 return NDR_ERR_SUCCESS
;
25373 _PUBLIC_
void ndr_print_spoolss_4b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4b
*r
)
25375 ndr_print_struct(ndr
, name
, "spoolss_4b");
25377 if (flags
& NDR_SET_VALUES
) {
25378 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25380 if (flags
& NDR_IN
) {
25381 ndr_print_struct(ndr
, "in", "spoolss_4b");
25385 if (flags
& NDR_OUT
) {
25386 ndr_print_struct(ndr
, "out", "spoolss_4b");
25388 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25394 static enum ndr_err_code
ndr_push_spoolss_4c(struct ndr_push
*ndr
, int flags
, const struct spoolss_4c
*r
)
25396 if (flags
& NDR_IN
) {
25398 if (flags
& NDR_OUT
) {
25399 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25401 return NDR_ERR_SUCCESS
;
25404 static enum ndr_err_code
ndr_pull_spoolss_4c(struct ndr_pull
*ndr
, int flags
, struct spoolss_4c
*r
)
25406 if (flags
& NDR_IN
) {
25408 if (flags
& NDR_OUT
) {
25409 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25411 return NDR_ERR_SUCCESS
;
25414 _PUBLIC_
void ndr_print_spoolss_4c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4c
*r
)
25416 ndr_print_struct(ndr
, name
, "spoolss_4c");
25418 if (flags
& NDR_SET_VALUES
) {
25419 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25421 if (flags
& NDR_IN
) {
25422 ndr_print_struct(ndr
, "in", "spoolss_4c");
25426 if (flags
& NDR_OUT
) {
25427 ndr_print_struct(ndr
, "out", "spoolss_4c");
25429 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25435 static enum ndr_err_code
ndr_push_spoolss_SetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
25437 if (flags
& NDR_IN
) {
25438 if (r
->in
.handle
== NULL
) {
25439 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25441 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25444 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25445 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
));
25446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25447 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25448 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25449 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
));
25450 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.type
));
25451 if (r
->in
.buffer
== NULL
) {
25452 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25454 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25455 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
25456 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25458 if (flags
& NDR_OUT
) {
25459 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25461 return NDR_ERR_SUCCESS
;
25464 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterDataEx
*r
)
25466 TALLOC_CTX
*_mem_save_handle_0
;
25467 if (flags
& NDR_IN
) {
25468 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25469 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25471 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25472 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25473 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25474 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25475 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
25476 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
25477 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
25478 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
));
25480 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
25481 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
));
25482 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
25483 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
25484 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
25485 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
));
25487 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
25488 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
));
25489 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.type
));
25490 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
25491 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25492 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
25494 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
25495 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25496 if (r
->in
.buffer
) {
25497 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
25500 if (flags
& NDR_OUT
) {
25501 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25503 return NDR_ERR_SUCCESS
;
25506 _PUBLIC_
void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
25508 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterDataEx");
25510 if (flags
& NDR_SET_VALUES
) {
25511 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25513 if (flags
& NDR_IN
) {
25514 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterDataEx");
25516 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25518 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25520 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
25521 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
25522 ndr_print_uint32(ndr
, "type", r
->in
.type
);
25523 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25525 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
25527 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25530 if (flags
& NDR_OUT
) {
25531 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterDataEx");
25533 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25539 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
25541 if (flags
& NDR_IN
) {
25542 if (r
->in
.handle
== NULL
) {
25543 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25545 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25546 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25547 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25548 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25549 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
));
25550 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25551 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25552 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25553 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
));
25554 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25556 if (flags
& NDR_OUT
) {
25557 if (r
->out
.type
== NULL
) {
25558 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25560 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.type
));
25561 if (r
->out
.buffer
== NULL
) {
25562 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25564 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25565 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
25566 if (r
->out
.needed
== NULL
) {
25567 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
25570 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25572 return NDR_ERR_SUCCESS
;
25575 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDataEx
*r
)
25577 TALLOC_CTX
*_mem_save_handle_0
;
25578 TALLOC_CTX
*_mem_save_type_0
;
25579 TALLOC_CTX
*_mem_save_needed_0
;
25580 if (flags
& NDR_IN
) {
25581 ZERO_STRUCT(r
->out
);
25583 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25584 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25586 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25587 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25588 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25589 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25590 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
25591 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
25592 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
25593 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
));
25595 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
25596 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
));
25597 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
25598 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
25599 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
25600 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
));
25602 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
25603 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
));
25604 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25605 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
25606 ZERO_STRUCTP(r
->out
.type
);
25607 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, r
->in
.offered
);
25608 memset(r
->out
.buffer
, 0, (r
->in
.offered
) * sizeof(*r
->out
.buffer
));
25609 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25610 ZERO_STRUCTP(r
->out
.needed
);
25612 if (flags
& NDR_OUT
) {
25613 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25614 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
25616 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25617 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
25618 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.type
));
25619 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
25620 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
25621 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25622 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
25624 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
25625 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25626 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25628 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25629 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25630 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25631 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25632 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25633 if (r
->out
.buffer
) {
25634 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
25637 return NDR_ERR_SUCCESS
;
25640 _PUBLIC_
void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
25642 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDataEx");
25644 if (flags
& NDR_SET_VALUES
) {
25645 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25647 if (flags
& NDR_IN
) {
25648 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDataEx");
25650 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25652 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25654 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
25655 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
25656 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25659 if (flags
& NDR_OUT
) {
25660 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDataEx");
25662 ndr_print_ptr(ndr
, "type", r
->out
.type
);
25664 ndr_print_uint32(ndr
, "type", *r
->out
.type
);
25666 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
25668 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
25670 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25672 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25674 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25680 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
25682 if (flags
& NDR_IN
) {
25683 if (r
->in
.handle
== NULL
) {
25684 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25686 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25687 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25688 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25689 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25690 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
));
25691 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25693 if (flags
& NDR_OUT
) {
25694 if (r
->out
.buffer
== NULL
) {
25695 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25697 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25698 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
25699 if (r
->out
.needed
== NULL
) {
25700 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25702 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
25703 if (r
->out
.count
== NULL
) {
25704 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25706 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
25707 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25709 return NDR_ERR_SUCCESS
;
25712 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterDataEx
*r
)
25714 TALLOC_CTX
*_mem_save_handle_0
;
25715 TALLOC_CTX
*_mem_save_needed_0
;
25716 TALLOC_CTX
*_mem_save_count_0
;
25717 if (flags
& NDR_IN
) {
25718 ZERO_STRUCT(r
->out
);
25720 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25721 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25723 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25724 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25725 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25726 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25727 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
25728 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
25729 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
25730 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
));
25732 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
25733 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
));
25734 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25735 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, r
->in
.offered
);
25736 memset(r
->out
.buffer
, 0, (r
->in
.offered
) * sizeof(*r
->out
.buffer
));
25737 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25738 ZERO_STRUCTP(r
->out
.needed
);
25739 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25740 ZERO_STRUCTP(r
->out
.count
);
25742 if (flags
& NDR_OUT
) {
25743 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
25744 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25745 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
25747 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
25748 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25749 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25751 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25752 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25753 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25754 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25755 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25756 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25758 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25759 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
25760 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
25761 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
25762 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25763 if (r
->out
.buffer
) {
25764 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
25767 return NDR_ERR_SUCCESS
;
25770 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
25772 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDataEx");
25774 if (flags
& NDR_SET_VALUES
) {
25775 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25777 if (flags
& NDR_IN
) {
25778 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDataEx");
25780 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25782 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25784 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
25785 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25788 if (flags
& NDR_OUT
) {
25789 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDataEx");
25791 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
25793 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
25795 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25797 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25799 ndr_print_ptr(ndr
, "count", r
->out
.count
);
25801 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
25803 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25809 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
25811 uint32_t cntr_key_buffer_1
;
25812 if (flags
& NDR_IN
) {
25813 if (r
->in
.handle
== NULL
) {
25814 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25816 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25817 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25818 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25819 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25820 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
));
25821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.key_buffer_size
));
25823 if (flags
& NDR_OUT
) {
25824 if (r
->out
.key_buffer
== NULL
) {
25825 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25827 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.key_buffer_size
/ 2));
25828 for (cntr_key_buffer_1
= 0; cntr_key_buffer_1
< r
->in
.key_buffer_size
/ 2; cntr_key_buffer_1
++) {
25829 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->out
.key_buffer
[cntr_key_buffer_1
]));
25831 if (r
->out
.needed
== NULL
) {
25832 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25834 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
25835 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25837 return NDR_ERR_SUCCESS
;
25840 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterKey
*r
)
25842 uint32_t cntr_key_buffer_1
;
25843 TALLOC_CTX
*_mem_save_handle_0
;
25844 TALLOC_CTX
*_mem_save_key_buffer_1
;
25845 TALLOC_CTX
*_mem_save_needed_0
;
25846 if (flags
& NDR_IN
) {
25847 ZERO_STRUCT(r
->out
);
25849 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25850 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25852 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25853 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25854 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25855 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25856 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
25857 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
25858 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
25859 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
));
25861 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
25862 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
));
25863 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.key_buffer_size
));
25864 NDR_PULL_ALLOC_N(ndr
, r
->out
.key_buffer
, r
->in
.key_buffer_size
/ 2);
25865 memset(r
->out
.key_buffer
, 0, (r
->in
.key_buffer_size
/ 2) * sizeof(*r
->out
.key_buffer
));
25866 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25867 ZERO_STRUCTP(r
->out
.needed
);
25869 if (flags
& NDR_OUT
) {
25870 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.key_buffer
));
25871 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25872 NDR_PULL_ALLOC_N(ndr
, r
->out
.key_buffer
, ndr_get_array_size(ndr
, &r
->out
.key_buffer
));
25874 _mem_save_key_buffer_1
= NDR_PULL_GET_MEM_CTX(ndr
);
25875 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.key_buffer
, 0);
25876 for (cntr_key_buffer_1
= 0; cntr_key_buffer_1
< r
->in
.key_buffer_size
/ 2; cntr_key_buffer_1
++) {
25877 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->out
.key_buffer
[cntr_key_buffer_1
]));
25879 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_buffer_1
, 0);
25880 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25881 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25883 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25884 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25885 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25886 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25887 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25888 if (r
->out
.key_buffer
) {
25889 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.key_buffer
, r
->in
.key_buffer_size
/ 2));
25892 return NDR_ERR_SUCCESS
;
25895 _PUBLIC_
void ndr_print_spoolss_EnumPrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
25897 uint32_t cntr_key_buffer_1
;
25898 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterKey");
25900 if (flags
& NDR_SET_VALUES
) {
25901 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25903 if (flags
& NDR_IN
) {
25904 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterKey");
25906 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25908 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25910 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
25911 ndr_print_uint32(ndr
, "key_buffer_size", r
->in
.key_buffer_size
);
25914 if (flags
& NDR_OUT
) {
25915 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterKey");
25917 ndr_print_ptr(ndr
, "key_buffer", r
->out
.key_buffer
);
25919 ndr
->print(ndr
, "%s: ARRAY(%d)", "key_buffer", (int)r
->in
.key_buffer_size
/ 2);
25921 for (cntr_key_buffer_1
=0;cntr_key_buffer_1
<r
->in
.key_buffer_size
/ 2;cntr_key_buffer_1
++) {
25923 if (asprintf(&idx_1
, "[%d]", cntr_key_buffer_1
) != -1) {
25924 ndr_print_uint16(ndr
, "key_buffer", r
->out
.key_buffer
[cntr_key_buffer_1
]);
25930 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25932 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25934 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25940 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
25942 if (flags
& NDR_IN
) {
25943 if (r
->in
.handle
== NULL
) {
25944 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25946 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25947 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25948 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25949 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25950 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
));
25951 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25952 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25954 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
));
25956 if (flags
& NDR_OUT
) {
25957 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25959 return NDR_ERR_SUCCESS
;
25962 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDataEx
*r
)
25964 TALLOC_CTX
*_mem_save_handle_0
;
25965 if (flags
& NDR_IN
) {
25966 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25967 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25969 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25970 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25971 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25972 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25973 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
25974 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
25975 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
25976 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
));
25978 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
25979 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
));
25980 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
25981 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
25982 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
25983 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
));
25985 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
25986 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
));
25988 if (flags
& NDR_OUT
) {
25989 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25991 return NDR_ERR_SUCCESS
;
25994 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
25996 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDataEx");
25998 if (flags
& NDR_SET_VALUES
) {
25999 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26001 if (flags
& NDR_IN
) {
26002 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDataEx");
26004 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26006 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26008 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26009 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
26012 if (flags
& NDR_OUT
) {
26013 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDataEx");
26015 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26021 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
26023 if (flags
& NDR_IN
) {
26024 if (r
->in
.handle
== NULL
) {
26025 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26027 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26028 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26029 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26030 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26031 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
));
26033 if (flags
& NDR_OUT
) {
26034 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26036 return NDR_ERR_SUCCESS
;
26039 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterKey
*r
)
26041 TALLOC_CTX
*_mem_save_handle_0
;
26042 if (flags
& NDR_IN
) {
26043 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26044 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26046 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26047 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26048 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26050 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26051 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26052 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26053 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
));
26055 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26056 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
));
26058 if (flags
& NDR_OUT
) {
26059 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26061 return NDR_ERR_SUCCESS
;
26064 _PUBLIC_
void ndr_print_spoolss_DeletePrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
26066 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterKey");
26068 if (flags
& NDR_SET_VALUES
) {
26069 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26071 if (flags
& NDR_IN
) {
26072 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterKey");
26074 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26076 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26078 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26081 if (flags
& NDR_OUT
) {
26082 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterKey");
26084 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26090 static enum ndr_err_code
ndr_push_spoolss_53(struct ndr_push
*ndr
, int flags
, const struct spoolss_53
*r
)
26092 if (flags
& NDR_IN
) {
26094 if (flags
& NDR_OUT
) {
26095 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26097 return NDR_ERR_SUCCESS
;
26100 static enum ndr_err_code
ndr_pull_spoolss_53(struct ndr_pull
*ndr
, int flags
, struct spoolss_53
*r
)
26102 if (flags
& NDR_IN
) {
26104 if (flags
& NDR_OUT
) {
26105 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26107 return NDR_ERR_SUCCESS
;
26110 _PUBLIC_
void ndr_print_spoolss_53(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_53
*r
)
26112 ndr_print_struct(ndr
, name
, "spoolss_53");
26114 if (flags
& NDR_SET_VALUES
) {
26115 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26117 if (flags
& NDR_IN
) {
26118 ndr_print_struct(ndr
, "in", "spoolss_53");
26122 if (flags
& NDR_OUT
) {
26123 ndr_print_struct(ndr
, "out", "spoolss_53");
26125 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26131 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
26133 if (flags
& NDR_IN
) {
26134 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
26135 if (r
->in
.server
) {
26136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
26137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
26139 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26141 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
26142 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26143 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
26144 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
26146 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
26148 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26149 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, r
->in
.delete_flags
));
26150 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.version
));
26152 if (flags
& NDR_OUT
) {
26153 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26155 return NDR_ERR_SUCCESS
;
26158 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriverEx
*r
)
26160 uint32_t _ptr_server
;
26161 TALLOC_CTX
*_mem_save_server_0
;
26162 if (flags
& NDR_IN
) {
26163 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
26165 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
26167 r
->in
.server
= NULL
;
26169 if (r
->in
.server
) {
26170 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26171 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
26172 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
26173 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
26174 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
26175 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
));
26177 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
26178 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
26179 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
26181 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
26182 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
26183 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
26184 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
));
26186 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
26187 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
26188 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
26189 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
26190 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
26191 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
));
26193 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
26194 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
26195 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, &r
->in
.delete_flags
));
26196 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.version
));
26198 if (flags
& NDR_OUT
) {
26199 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26201 return NDR_ERR_SUCCESS
;
26204 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
26206 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriverEx");
26208 if (flags
& NDR_SET_VALUES
) {
26209 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26211 if (flags
& NDR_IN
) {
26212 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriverEx");
26214 ndr_print_ptr(ndr
, "server", r
->in
.server
);
26216 if (r
->in
.server
) {
26217 ndr_print_string(ndr
, "server", r
->in
.server
);
26220 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
26221 ndr_print_string(ndr
, "driver", r
->in
.driver
);
26222 ndr_print_spoolss_DeleteDriverFlags(ndr
, "delete_flags", r
->in
.delete_flags
);
26223 ndr_print_uint32(ndr
, "version", r
->in
.version
);
26226 if (flags
& NDR_OUT
) {
26227 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriverEx");
26229 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26235 static enum ndr_err_code
ndr_push_spoolss_55(struct ndr_push
*ndr
, int flags
, const struct spoolss_55
*r
)
26237 if (flags
& NDR_IN
) {
26239 if (flags
& NDR_OUT
) {
26240 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26242 return NDR_ERR_SUCCESS
;
26245 static enum ndr_err_code
ndr_pull_spoolss_55(struct ndr_pull
*ndr
, int flags
, struct spoolss_55
*r
)
26247 if (flags
& NDR_IN
) {
26249 if (flags
& NDR_OUT
) {
26250 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26252 return NDR_ERR_SUCCESS
;
26255 _PUBLIC_
void ndr_print_spoolss_55(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_55
*r
)
26257 ndr_print_struct(ndr
, name
, "spoolss_55");
26259 if (flags
& NDR_SET_VALUES
) {
26260 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26262 if (flags
& NDR_IN
) {
26263 ndr_print_struct(ndr
, "in", "spoolss_55");
26267 if (flags
& NDR_OUT
) {
26268 ndr_print_struct(ndr
, "out", "spoolss_55");
26270 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26276 static enum ndr_err_code
ndr_push_spoolss_56(struct ndr_push
*ndr
, int flags
, const struct spoolss_56
*r
)
26278 if (flags
& NDR_IN
) {
26280 if (flags
& NDR_OUT
) {
26281 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26283 return NDR_ERR_SUCCESS
;
26286 static enum ndr_err_code
ndr_pull_spoolss_56(struct ndr_pull
*ndr
, int flags
, struct spoolss_56
*r
)
26288 if (flags
& NDR_IN
) {
26290 if (flags
& NDR_OUT
) {
26291 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26293 return NDR_ERR_SUCCESS
;
26296 _PUBLIC_
void ndr_print_spoolss_56(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_56
*r
)
26298 ndr_print_struct(ndr
, name
, "spoolss_56");
26300 if (flags
& NDR_SET_VALUES
) {
26301 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26303 if (flags
& NDR_IN
) {
26304 ndr_print_struct(ndr
, "in", "spoolss_56");
26308 if (flags
& NDR_OUT
) {
26309 ndr_print_struct(ndr
, "out", "spoolss_56");
26311 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26317 static enum ndr_err_code
ndr_push_spoolss_57(struct ndr_push
*ndr
, int flags
, const struct spoolss_57
*r
)
26319 if (flags
& NDR_IN
) {
26321 if (flags
& NDR_OUT
) {
26322 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26324 return NDR_ERR_SUCCESS
;
26327 static enum ndr_err_code
ndr_pull_spoolss_57(struct ndr_pull
*ndr
, int flags
, struct spoolss_57
*r
)
26329 if (flags
& NDR_IN
) {
26331 if (flags
& NDR_OUT
) {
26332 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26334 return NDR_ERR_SUCCESS
;
26337 _PUBLIC_
void ndr_print_spoolss_57(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_57
*r
)
26339 ndr_print_struct(ndr
, name
, "spoolss_57");
26341 if (flags
& NDR_SET_VALUES
) {
26342 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26344 if (flags
& NDR_IN
) {
26345 ndr_print_struct(ndr
, "in", "spoolss_57");
26349 if (flags
& NDR_OUT
) {
26350 ndr_print_struct(ndr
, "out", "spoolss_57");
26352 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26358 static enum ndr_err_code
ndr_push_spoolss_XcvData(struct ndr_push
*ndr
, int flags
, const struct spoolss_XcvData
*r
)
26360 if (flags
& NDR_IN
) {
26361 if (r
->in
.handle
== NULL
) {
26362 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26364 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26365 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
26366 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26367 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
26368 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
));
26369 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.in_data
));
26370 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.in_data
.length
));
26371 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
26372 if (r
->in
.status_code
== NULL
) {
26373 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.status_code
));
26377 if (flags
& NDR_OUT
) {
26378 if (r
->out
.out_data
== NULL
) {
26379 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26381 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
26382 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, r
->in
.out_data_size
));
26383 if (r
->out
.needed
== NULL
) {
26384 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26387 if (r
->out
.status_code
== NULL
) {
26388 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26390 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.status_code
));
26391 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26393 return NDR_ERR_SUCCESS
;
26396 static enum ndr_err_code
ndr_pull_spoolss_XcvData(struct ndr_pull
*ndr
, int flags
, struct spoolss_XcvData
*r
)
26398 TALLOC_CTX
*_mem_save_handle_0
;
26399 TALLOC_CTX
*_mem_save_needed_0
;
26400 TALLOC_CTX
*_mem_save_status_code_0
;
26401 if (flags
& NDR_IN
) {
26402 ZERO_STRUCT(r
->out
);
26404 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26405 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26407 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26408 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26409 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26410 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26411 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.function_name
));
26412 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.function_name
));
26413 if (ndr_get_array_length(ndr
, &r
->in
.function_name
) > ndr_get_array_size(ndr
, &r
->in
.function_name
)) {
26414 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
));
26416 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.function_name
), sizeof(uint16_t)));
26417 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
));
26418 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.in_data
));
26419 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._in_data_length
));
26420 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.out_data_size
));
26421 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26422 NDR_PULL_ALLOC(ndr
, r
->in
.status_code
);
26424 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26425 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
26426 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.status_code
));
26427 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
26428 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, r
->in
.out_data_size
);
26429 memset(r
->out
.out_data
, 0, (r
->in
.out_data_size
) * sizeof(*r
->out
.out_data
));
26430 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26431 ZERO_STRUCTP(r
->out
.needed
);
26432 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
26433 *r
->out
.status_code
= *r
->in
.status_code
;
26435 if (flags
& NDR_OUT
) {
26436 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.out_data
));
26437 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26438 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
));
26440 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
)));
26441 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26442 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26444 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26445 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26446 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26447 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26448 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26449 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
26451 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26452 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
26453 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.status_code
));
26454 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
26455 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26456 if (r
->out
.out_data
) {
26457 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.out_data
, r
->in
.out_data_size
));
26460 return NDR_ERR_SUCCESS
;
26463 _PUBLIC_
void ndr_print_spoolss_XcvData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_XcvData
*r
)
26465 ndr_print_struct(ndr
, name
, "spoolss_XcvData");
26467 if (flags
& NDR_SET_VALUES
) {
26468 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26470 if (flags
& NDR_IN
) {
26471 ndr_print_struct(ndr
, "in", "spoolss_XcvData");
26473 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26475 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26477 ndr_print_string(ndr
, "function_name", r
->in
.function_name
);
26478 ndr_print_DATA_BLOB(ndr
, "in_data", r
->in
.in_data
);
26479 ndr_print_uint32(ndr
, "_in_data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.in_data
.length
:r
->in
._in_data_length
);
26480 ndr_print_uint32(ndr
, "out_data_size", r
->in
.out_data_size
);
26481 ndr_print_ptr(ndr
, "status_code", r
->in
.status_code
);
26483 ndr_print_uint32(ndr
, "status_code", *r
->in
.status_code
);
26487 if (flags
& NDR_OUT
) {
26488 ndr_print_struct(ndr
, "out", "spoolss_XcvData");
26490 ndr_print_ptr(ndr
, "out_data", r
->out
.out_data
);
26492 ndr_print_array_uint8(ndr
, "out_data", r
->out
.out_data
, r
->in
.out_data_size
);
26494 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26496 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26498 ndr_print_ptr(ndr
, "status_code", r
->out
.status_code
);
26500 ndr_print_uint32(ndr
, "status_code", *r
->out
.status_code
);
26502 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26508 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
26510 if (flags
& NDR_IN
) {
26511 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
26512 if (r
->in
.servername
) {
26513 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
26514 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
26516 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26518 if (r
->in
.info_ctr
== NULL
) {
26519 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26521 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
26522 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
26524 if (flags
& NDR_OUT
) {
26525 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26527 return NDR_ERR_SUCCESS
;
26530 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriverEx
*r
)
26532 uint32_t _ptr_servername
;
26533 TALLOC_CTX
*_mem_save_servername_0
;
26534 TALLOC_CTX
*_mem_save_info_ctr_0
;
26535 if (flags
& NDR_IN
) {
26536 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
26537 if (_ptr_servername
) {
26538 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
26540 r
->in
.servername
= NULL
;
26542 if (r
->in
.servername
) {
26543 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26544 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
26545 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
26546 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
26547 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
26548 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
));
26550 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
26551 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
26552 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
26554 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26555 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
26557 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26558 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26559 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
26560 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26561 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
26563 if (flags
& NDR_OUT
) {
26564 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26566 return NDR_ERR_SUCCESS
;
26569 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
26571 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriverEx");
26573 if (flags
& NDR_SET_VALUES
) {
26574 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26576 if (flags
& NDR_IN
) {
26577 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriverEx");
26579 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
26581 if (r
->in
.servername
) {
26582 ndr_print_string(ndr
, "servername", r
->in
.servername
);
26585 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
26587 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
26589 ndr_print_spoolss_AddPrinterDriverExFlags(ndr
, "flags", r
->in
.flags
);
26592 if (flags
& NDR_OUT
) {
26593 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriverEx");
26595 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26601 static enum ndr_err_code
ndr_push_spoolss_5a(struct ndr_push
*ndr
, int flags
, const struct spoolss_5a
*r
)
26603 if (flags
& NDR_IN
) {
26605 if (flags
& NDR_OUT
) {
26606 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26608 return NDR_ERR_SUCCESS
;
26611 static enum ndr_err_code
ndr_pull_spoolss_5a(struct ndr_pull
*ndr
, int flags
, struct spoolss_5a
*r
)
26613 if (flags
& NDR_IN
) {
26615 if (flags
& NDR_OUT
) {
26616 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26618 return NDR_ERR_SUCCESS
;
26621 _PUBLIC_
void ndr_print_spoolss_5a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5a
*r
)
26623 ndr_print_struct(ndr
, name
, "spoolss_5a");
26625 if (flags
& NDR_SET_VALUES
) {
26626 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26628 if (flags
& NDR_IN
) {
26629 ndr_print_struct(ndr
, "in", "spoolss_5a");
26633 if (flags
& NDR_OUT
) {
26634 ndr_print_struct(ndr
, "out", "spoolss_5a");
26636 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26642 static enum ndr_err_code
ndr_push_spoolss_5b(struct ndr_push
*ndr
, int flags
, const struct spoolss_5b
*r
)
26644 if (flags
& NDR_IN
) {
26646 if (flags
& NDR_OUT
) {
26647 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26649 return NDR_ERR_SUCCESS
;
26652 static enum ndr_err_code
ndr_pull_spoolss_5b(struct ndr_pull
*ndr
, int flags
, struct spoolss_5b
*r
)
26654 if (flags
& NDR_IN
) {
26656 if (flags
& NDR_OUT
) {
26657 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26659 return NDR_ERR_SUCCESS
;
26662 _PUBLIC_
void ndr_print_spoolss_5b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5b
*r
)
26664 ndr_print_struct(ndr
, name
, "spoolss_5b");
26666 if (flags
& NDR_SET_VALUES
) {
26667 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26669 if (flags
& NDR_IN
) {
26670 ndr_print_struct(ndr
, "in", "spoolss_5b");
26674 if (flags
& NDR_OUT
) {
26675 ndr_print_struct(ndr
, "out", "spoolss_5b");
26677 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26683 static enum ndr_err_code
ndr_push_spoolss_5c(struct ndr_push
*ndr
, int flags
, const struct spoolss_5c
*r
)
26685 if (flags
& NDR_IN
) {
26687 if (flags
& NDR_OUT
) {
26688 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26690 return NDR_ERR_SUCCESS
;
26693 static enum ndr_err_code
ndr_pull_spoolss_5c(struct ndr_pull
*ndr
, int flags
, struct spoolss_5c
*r
)
26695 if (flags
& NDR_IN
) {
26697 if (flags
& NDR_OUT
) {
26698 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26700 return NDR_ERR_SUCCESS
;
26703 _PUBLIC_
void ndr_print_spoolss_5c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5c
*r
)
26705 ndr_print_struct(ndr
, name
, "spoolss_5c");
26707 if (flags
& NDR_SET_VALUES
) {
26708 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26710 if (flags
& NDR_IN
) {
26711 ndr_print_struct(ndr
, "in", "spoolss_5c");
26715 if (flags
& NDR_OUT
) {
26716 ndr_print_struct(ndr
, "out", "spoolss_5c");
26718 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26724 static enum ndr_err_code
ndr_push_spoolss_5d(struct ndr_push
*ndr
, int flags
, const struct spoolss_5d
*r
)
26726 if (flags
& NDR_IN
) {
26728 if (flags
& NDR_OUT
) {
26729 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26731 return NDR_ERR_SUCCESS
;
26734 static enum ndr_err_code
ndr_pull_spoolss_5d(struct ndr_pull
*ndr
, int flags
, struct spoolss_5d
*r
)
26736 if (flags
& NDR_IN
) {
26738 if (flags
& NDR_OUT
) {
26739 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26741 return NDR_ERR_SUCCESS
;
26744 _PUBLIC_
void ndr_print_spoolss_5d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5d
*r
)
26746 ndr_print_struct(ndr
, name
, "spoolss_5d");
26748 if (flags
& NDR_SET_VALUES
) {
26749 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26751 if (flags
& NDR_IN
) {
26752 ndr_print_struct(ndr
, "in", "spoolss_5d");
26756 if (flags
& NDR_OUT
) {
26757 ndr_print_struct(ndr
, "out", "spoolss_5d");
26759 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26765 static enum ndr_err_code
ndr_push_spoolss_5e(struct ndr_push
*ndr
, int flags
, const struct spoolss_5e
*r
)
26767 if (flags
& NDR_IN
) {
26769 if (flags
& NDR_OUT
) {
26770 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26772 return NDR_ERR_SUCCESS
;
26775 static enum ndr_err_code
ndr_pull_spoolss_5e(struct ndr_pull
*ndr
, int flags
, struct spoolss_5e
*r
)
26777 if (flags
& NDR_IN
) {
26779 if (flags
& NDR_OUT
) {
26780 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26782 return NDR_ERR_SUCCESS
;
26785 _PUBLIC_
void ndr_print_spoolss_5e(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5e
*r
)
26787 ndr_print_struct(ndr
, name
, "spoolss_5e");
26789 if (flags
& NDR_SET_VALUES
) {
26790 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26792 if (flags
& NDR_IN
) {
26793 ndr_print_struct(ndr
, "in", "spoolss_5e");
26797 if (flags
& NDR_OUT
) {
26798 ndr_print_struct(ndr
, "out", "spoolss_5e");
26800 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26806 static enum ndr_err_code
ndr_push_spoolss_5f(struct ndr_push
*ndr
, int flags
, const struct spoolss_5f
*r
)
26808 if (flags
& NDR_IN
) {
26810 if (flags
& NDR_OUT
) {
26811 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26813 return NDR_ERR_SUCCESS
;
26816 static enum ndr_err_code
ndr_pull_spoolss_5f(struct ndr_pull
*ndr
, int flags
, struct spoolss_5f
*r
)
26818 if (flags
& NDR_IN
) {
26820 if (flags
& NDR_OUT
) {
26821 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26823 return NDR_ERR_SUCCESS
;
26826 _PUBLIC_
void ndr_print_spoolss_5f(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5f
*r
)
26828 ndr_print_struct(ndr
, name
, "spoolss_5f");
26830 if (flags
& NDR_SET_VALUES
) {
26831 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26833 if (flags
& NDR_IN
) {
26834 ndr_print_struct(ndr
, "in", "spoolss_5f");
26838 if (flags
& NDR_OUT
) {
26839 ndr_print_struct(ndr
, "out", "spoolss_5f");
26841 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26847 static const struct ndr_interface_call spoolss_calls
[] = {
26849 "spoolss_EnumPrinters",
26850 sizeof(struct spoolss_EnumPrinters
),
26851 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinters
,
26852 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinters
,
26853 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinters
,
26857 "spoolss_OpenPrinter",
26858 sizeof(struct spoolss_OpenPrinter
),
26859 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinter
,
26860 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinter
,
26861 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinter
,
26866 sizeof(struct spoolss_SetJob
),
26867 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetJob
,
26868 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetJob
,
26869 (ndr_print_function_t
) ndr_print_spoolss_SetJob
,
26874 sizeof(struct spoolss_GetJob
),
26875 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetJob
,
26876 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetJob
,
26877 (ndr_print_function_t
) ndr_print_spoolss_GetJob
,
26881 "spoolss_EnumJobs",
26882 sizeof(struct spoolss_EnumJobs
),
26883 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumJobs
,
26884 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumJobs
,
26885 (ndr_print_function_t
) ndr_print_spoolss_EnumJobs
,
26889 "spoolss_AddPrinter",
26890 sizeof(struct spoolss_AddPrinter
),
26891 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinter
,
26892 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinter
,
26893 (ndr_print_function_t
) ndr_print_spoolss_AddPrinter
,
26897 "spoolss_DeletePrinter",
26898 sizeof(struct spoolss_DeletePrinter
),
26899 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinter
,
26900 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinter
,
26901 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinter
,
26905 "spoolss_SetPrinter",
26906 sizeof(struct spoolss_SetPrinter
),
26907 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinter
,
26908 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinter
,
26909 (ndr_print_function_t
) ndr_print_spoolss_SetPrinter
,
26913 "spoolss_GetPrinter",
26914 sizeof(struct spoolss_GetPrinter
),
26915 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinter
,
26916 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinter
,
26917 (ndr_print_function_t
) ndr_print_spoolss_GetPrinter
,
26921 "spoolss_AddPrinterDriver",
26922 sizeof(struct spoolss_AddPrinterDriver
),
26923 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriver
,
26924 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriver
,
26925 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriver
,
26929 "spoolss_EnumPrinterDrivers",
26930 sizeof(struct spoolss_EnumPrinterDrivers
),
26931 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDrivers
,
26932 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDrivers
,
26933 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDrivers
,
26937 "spoolss_GetPrinterDriver",
26938 sizeof(struct spoolss_GetPrinterDriver
),
26939 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver
,
26940 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver
,
26941 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver
,
26945 "spoolss_GetPrinterDriverDirectory",
26946 sizeof(struct spoolss_GetPrinterDriverDirectory
),
26947 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverDirectory
,
26948 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverDirectory
,
26949 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverDirectory
,
26953 "spoolss_DeletePrinterDriver",
26954 sizeof(struct spoolss_DeletePrinterDriver
),
26955 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriver
,
26956 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriver
,
26957 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriver
,
26961 "spoolss_AddPrintProcessor",
26962 sizeof(struct spoolss_AddPrintProcessor
),
26963 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProcessor
,
26964 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProcessor
,
26965 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProcessor
,
26969 "spoolss_EnumPrintProcessors",
26970 sizeof(struct spoolss_EnumPrintProcessors
),
26971 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcessors
,
26972 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcessors
,
26973 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcessors
,
26977 "spoolss_GetPrintProcessorDirectory",
26978 sizeof(struct spoolss_GetPrintProcessorDirectory
),
26979 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrintProcessorDirectory
,
26980 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrintProcessorDirectory
,
26981 (ndr_print_function_t
) ndr_print_spoolss_GetPrintProcessorDirectory
,
26985 "spoolss_StartDocPrinter",
26986 sizeof(struct spoolss_StartDocPrinter
),
26987 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartDocPrinter
,
26988 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartDocPrinter
,
26989 (ndr_print_function_t
) ndr_print_spoolss_StartDocPrinter
,
26993 "spoolss_StartPagePrinter",
26994 sizeof(struct spoolss_StartPagePrinter
),
26995 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartPagePrinter
,
26996 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartPagePrinter
,
26997 (ndr_print_function_t
) ndr_print_spoolss_StartPagePrinter
,
27001 "spoolss_WritePrinter",
27002 sizeof(struct spoolss_WritePrinter
),
27003 (ndr_push_flags_fn_t
) ndr_push_spoolss_WritePrinter
,
27004 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WritePrinter
,
27005 (ndr_print_function_t
) ndr_print_spoolss_WritePrinter
,
27009 "spoolss_EndPagePrinter",
27010 sizeof(struct spoolss_EndPagePrinter
),
27011 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndPagePrinter
,
27012 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndPagePrinter
,
27013 (ndr_print_function_t
) ndr_print_spoolss_EndPagePrinter
,
27017 "spoolss_AbortPrinter",
27018 sizeof(struct spoolss_AbortPrinter
),
27019 (ndr_push_flags_fn_t
) ndr_push_spoolss_AbortPrinter
,
27020 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AbortPrinter
,
27021 (ndr_print_function_t
) ndr_print_spoolss_AbortPrinter
,
27025 "spoolss_ReadPrinter",
27026 sizeof(struct spoolss_ReadPrinter
),
27027 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReadPrinter
,
27028 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReadPrinter
,
27029 (ndr_print_function_t
) ndr_print_spoolss_ReadPrinter
,
27033 "spoolss_EndDocPrinter",
27034 sizeof(struct spoolss_EndDocPrinter
),
27035 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndDocPrinter
,
27036 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndDocPrinter
,
27037 (ndr_print_function_t
) ndr_print_spoolss_EndDocPrinter
,
27042 sizeof(struct spoolss_AddJob
),
27043 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddJob
,
27044 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddJob
,
27045 (ndr_print_function_t
) ndr_print_spoolss_AddJob
,
27049 "spoolss_ScheduleJob",
27050 sizeof(struct spoolss_ScheduleJob
),
27051 (ndr_push_flags_fn_t
) ndr_push_spoolss_ScheduleJob
,
27052 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ScheduleJob
,
27053 (ndr_print_function_t
) ndr_print_spoolss_ScheduleJob
,
27057 "spoolss_GetPrinterData",
27058 sizeof(struct spoolss_GetPrinterData
),
27059 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterData
,
27060 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterData
,
27061 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterData
,
27065 "spoolss_SetPrinterData",
27066 sizeof(struct spoolss_SetPrinterData
),
27067 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterData
,
27068 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterData
,
27069 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterData
,
27073 "spoolss_WaitForPrinterChange",
27074 sizeof(struct spoolss_WaitForPrinterChange
),
27075 (ndr_push_flags_fn_t
) ndr_push_spoolss_WaitForPrinterChange
,
27076 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WaitForPrinterChange
,
27077 (ndr_print_function_t
) ndr_print_spoolss_WaitForPrinterChange
,
27081 "spoolss_ClosePrinter",
27082 sizeof(struct spoolss_ClosePrinter
),
27083 (ndr_push_flags_fn_t
) ndr_push_spoolss_ClosePrinter
,
27084 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ClosePrinter
,
27085 (ndr_print_function_t
) ndr_print_spoolss_ClosePrinter
,
27090 sizeof(struct spoolss_AddForm
),
27091 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddForm
,
27092 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddForm
,
27093 (ndr_print_function_t
) ndr_print_spoolss_AddForm
,
27097 "spoolss_DeleteForm",
27098 sizeof(struct spoolss_DeleteForm
),
27099 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteForm
,
27100 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteForm
,
27101 (ndr_print_function_t
) ndr_print_spoolss_DeleteForm
,
27106 sizeof(struct spoolss_GetForm
),
27107 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetForm
,
27108 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetForm
,
27109 (ndr_print_function_t
) ndr_print_spoolss_GetForm
,
27114 sizeof(struct spoolss_SetForm
),
27115 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetForm
,
27116 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetForm
,
27117 (ndr_print_function_t
) ndr_print_spoolss_SetForm
,
27121 "spoolss_EnumForms",
27122 sizeof(struct spoolss_EnumForms
),
27123 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumForms
,
27124 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumForms
,
27125 (ndr_print_function_t
) ndr_print_spoolss_EnumForms
,
27129 "spoolss_EnumPorts",
27130 sizeof(struct spoolss_EnumPorts
),
27131 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPorts
,
27132 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPorts
,
27133 (ndr_print_function_t
) ndr_print_spoolss_EnumPorts
,
27137 "spoolss_EnumMonitors",
27138 sizeof(struct spoolss_EnumMonitors
),
27139 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumMonitors
,
27140 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumMonitors
,
27141 (ndr_print_function_t
) ndr_print_spoolss_EnumMonitors
,
27146 sizeof(struct spoolss_AddPort
),
27147 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPort
,
27148 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPort
,
27149 (ndr_print_function_t
) ndr_print_spoolss_AddPort
,
27153 "spoolss_ConfigurePort",
27154 sizeof(struct spoolss_ConfigurePort
),
27155 (ndr_push_flags_fn_t
) ndr_push_spoolss_ConfigurePort
,
27156 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ConfigurePort
,
27157 (ndr_print_function_t
) ndr_print_spoolss_ConfigurePort
,
27161 "spoolss_DeletePort",
27162 sizeof(struct spoolss_DeletePort
),
27163 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePort
,
27164 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePort
,
27165 (ndr_print_function_t
) ndr_print_spoolss_DeletePort
,
27169 "spoolss_CreatePrinterIC",
27170 sizeof(struct spoolss_CreatePrinterIC
),
27171 (ndr_push_flags_fn_t
) ndr_push_spoolss_CreatePrinterIC
,
27172 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_CreatePrinterIC
,
27173 (ndr_print_function_t
) ndr_print_spoolss_CreatePrinterIC
,
27177 "spoolss_PlayGDIScriptOnPrinterIC",
27178 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC
),
27179 (ndr_push_flags_fn_t
) ndr_push_spoolss_PlayGDIScriptOnPrinterIC
,
27180 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC
,
27181 (ndr_print_function_t
) ndr_print_spoolss_PlayGDIScriptOnPrinterIC
,
27185 "spoolss_DeletePrinterIC",
27186 sizeof(struct spoolss_DeletePrinterIC
),
27187 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterIC
,
27188 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterIC
,
27189 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterIC
,
27193 "spoolss_AddPrinterConnection",
27194 sizeof(struct spoolss_AddPrinterConnection
),
27195 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterConnection
,
27196 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterConnection
,
27197 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterConnection
,
27201 "spoolss_DeletePrinterConnection",
27202 sizeof(struct spoolss_DeletePrinterConnection
),
27203 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterConnection
,
27204 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterConnection
,
27205 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterConnection
,
27209 "spoolss_PrinterMessageBox",
27210 sizeof(struct spoolss_PrinterMessageBox
),
27211 (ndr_push_flags_fn_t
) ndr_push_spoolss_PrinterMessageBox
,
27212 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PrinterMessageBox
,
27213 (ndr_print_function_t
) ndr_print_spoolss_PrinterMessageBox
,
27217 "spoolss_AddMonitor",
27218 sizeof(struct spoolss_AddMonitor
),
27219 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddMonitor
,
27220 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddMonitor
,
27221 (ndr_print_function_t
) ndr_print_spoolss_AddMonitor
,
27225 "spoolss_DeleteMonitor",
27226 sizeof(struct spoolss_DeleteMonitor
),
27227 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteMonitor
,
27228 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteMonitor
,
27229 (ndr_print_function_t
) ndr_print_spoolss_DeleteMonitor
,
27233 "spoolss_DeletePrintProcessor",
27234 sizeof(struct spoolss_DeletePrintProcessor
),
27235 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProcessor
,
27236 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProcessor
,
27237 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProcessor
,
27241 "spoolss_AddPrintProvidor",
27242 sizeof(struct spoolss_AddPrintProvidor
),
27243 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProvidor
,
27244 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProvidor
,
27245 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProvidor
,
27249 "spoolss_DeletePrintProvidor",
27250 sizeof(struct spoolss_DeletePrintProvidor
),
27251 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProvidor
,
27252 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProvidor
,
27253 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProvidor
,
27257 "spoolss_EnumPrintProcDataTypes",
27258 sizeof(struct spoolss_EnumPrintProcDataTypes
),
27259 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcDataTypes
,
27260 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcDataTypes
,
27261 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcDataTypes
,
27265 "spoolss_ResetPrinter",
27266 sizeof(struct spoolss_ResetPrinter
),
27267 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinter
,
27268 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinter
,
27269 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinter
,
27273 "spoolss_GetPrinterDriver2",
27274 sizeof(struct spoolss_GetPrinterDriver2
),
27275 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver2
,
27276 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver2
,
27277 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver2
,
27281 "spoolss_FindFirstPrinterChangeNotification",
27282 sizeof(struct spoolss_FindFirstPrinterChangeNotification
),
27283 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindFirstPrinterChangeNotification
,
27284 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindFirstPrinterChangeNotification
,
27285 (ndr_print_function_t
) ndr_print_spoolss_FindFirstPrinterChangeNotification
,
27289 "spoolss_FindNextPrinterChangeNotification",
27290 sizeof(struct spoolss_FindNextPrinterChangeNotification
),
27291 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindNextPrinterChangeNotification
,
27292 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindNextPrinterChangeNotification
,
27293 (ndr_print_function_t
) ndr_print_spoolss_FindNextPrinterChangeNotification
,
27297 "spoolss_FindClosePrinterNotify",
27298 sizeof(struct spoolss_FindClosePrinterNotify
),
27299 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindClosePrinterNotify
,
27300 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindClosePrinterNotify
,
27301 (ndr_print_function_t
) ndr_print_spoolss_FindClosePrinterNotify
,
27305 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
27306 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld
),
27307 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
27308 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
27309 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
27313 "spoolss_ReplyOpenPrinter",
27314 sizeof(struct spoolss_ReplyOpenPrinter
),
27315 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyOpenPrinter
,
27316 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyOpenPrinter
,
27317 (ndr_print_function_t
) ndr_print_spoolss_ReplyOpenPrinter
,
27321 "spoolss_RouterReplyPrinter",
27322 sizeof(struct spoolss_RouterReplyPrinter
),
27323 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinter
,
27324 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinter
,
27325 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinter
,
27329 "spoolss_ReplyClosePrinter",
27330 sizeof(struct spoolss_ReplyClosePrinter
),
27331 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyClosePrinter
,
27332 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyClosePrinter
,
27333 (ndr_print_function_t
) ndr_print_spoolss_ReplyClosePrinter
,
27337 "spoolss_AddPortEx",
27338 sizeof(struct spoolss_AddPortEx
),
27339 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPortEx
,
27340 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPortEx
,
27341 (ndr_print_function_t
) ndr_print_spoolss_AddPortEx
,
27345 "spoolss_RouterFindFirstPrinterChangeNotification",
27346 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification
),
27347 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification
,
27348 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification
,
27349 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification
,
27353 "spoolss_SpoolerInit",
27354 sizeof(struct spoolss_SpoolerInit
),
27355 (ndr_push_flags_fn_t
) ndr_push_spoolss_SpoolerInit
,
27356 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SpoolerInit
,
27357 (ndr_print_function_t
) ndr_print_spoolss_SpoolerInit
,
27361 "spoolss_ResetPrinterEx",
27362 sizeof(struct spoolss_ResetPrinterEx
),
27363 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinterEx
,
27364 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinterEx
,
27365 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinterEx
,
27369 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
27370 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
),
27371 (ndr_push_flags_fn_t
) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
27372 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
27373 (ndr_print_function_t
) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
27377 "spoolss_RouterReplyPrinterEx",
27378 sizeof(struct spoolss_RouterReplyPrinterEx
),
27379 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinterEx
,
27380 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinterEx
,
27381 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinterEx
,
27385 "spoolss_RouterRefreshPrinterChangeNotify",
27386 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify
),
27387 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterRefreshPrinterChangeNotify
,
27388 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify
,
27389 (ndr_print_function_t
) ndr_print_spoolss_RouterRefreshPrinterChangeNotify
,
27394 sizeof(struct spoolss_44
),
27395 (ndr_push_flags_fn_t
) ndr_push_spoolss_44
,
27396 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_44
,
27397 (ndr_print_function_t
) ndr_print_spoolss_44
,
27401 "spoolss_OpenPrinterEx",
27402 sizeof(struct spoolss_OpenPrinterEx
),
27403 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinterEx
,
27404 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinterEx
,
27405 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinterEx
,
27409 "spoolss_AddPrinterEx",
27410 sizeof(struct spoolss_AddPrinterEx
),
27411 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterEx
,
27412 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterEx
,
27413 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterEx
,
27418 sizeof(struct spoolss_47
),
27419 (ndr_push_flags_fn_t
) ndr_push_spoolss_47
,
27420 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_47
,
27421 (ndr_print_function_t
) ndr_print_spoolss_47
,
27425 "spoolss_EnumPrinterData",
27426 sizeof(struct spoolss_EnumPrinterData
),
27427 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterData
,
27428 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterData
,
27429 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterData
,
27433 "spoolss_DeletePrinterData",
27434 sizeof(struct spoolss_DeletePrinterData
),
27435 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterData
,
27436 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterData
,
27437 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterData
,
27442 sizeof(struct spoolss_4a
),
27443 (ndr_push_flags_fn_t
) ndr_push_spoolss_4a
,
27444 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4a
,
27445 (ndr_print_function_t
) ndr_print_spoolss_4a
,
27450 sizeof(struct spoolss_4b
),
27451 (ndr_push_flags_fn_t
) ndr_push_spoolss_4b
,
27452 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4b
,
27453 (ndr_print_function_t
) ndr_print_spoolss_4b
,
27458 sizeof(struct spoolss_4c
),
27459 (ndr_push_flags_fn_t
) ndr_push_spoolss_4c
,
27460 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4c
,
27461 (ndr_print_function_t
) ndr_print_spoolss_4c
,
27465 "spoolss_SetPrinterDataEx",
27466 sizeof(struct spoolss_SetPrinterDataEx
),
27467 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterDataEx
,
27468 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterDataEx
,
27469 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterDataEx
,
27473 "spoolss_GetPrinterDataEx",
27474 sizeof(struct spoolss_GetPrinterDataEx
),
27475 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDataEx
,
27476 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDataEx
,
27477 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDataEx
,
27481 "spoolss_EnumPrinterDataEx",
27482 sizeof(struct spoolss_EnumPrinterDataEx
),
27483 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDataEx
,
27484 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDataEx
,
27485 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDataEx
,
27489 "spoolss_EnumPrinterKey",
27490 sizeof(struct spoolss_EnumPrinterKey
),
27491 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterKey
,
27492 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterKey
,
27493 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterKey
,
27497 "spoolss_DeletePrinterDataEx",
27498 sizeof(struct spoolss_DeletePrinterDataEx
),
27499 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDataEx
,
27500 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDataEx
,
27501 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDataEx
,
27505 "spoolss_DeletePrinterKey",
27506 sizeof(struct spoolss_DeletePrinterKey
),
27507 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterKey
,
27508 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterKey
,
27509 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterKey
,
27514 sizeof(struct spoolss_53
),
27515 (ndr_push_flags_fn_t
) ndr_push_spoolss_53
,
27516 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_53
,
27517 (ndr_print_function_t
) ndr_print_spoolss_53
,
27521 "spoolss_DeletePrinterDriverEx",
27522 sizeof(struct spoolss_DeletePrinterDriverEx
),
27523 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriverEx
,
27524 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriverEx
,
27525 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriverEx
,
27530 sizeof(struct spoolss_55
),
27531 (ndr_push_flags_fn_t
) ndr_push_spoolss_55
,
27532 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_55
,
27533 (ndr_print_function_t
) ndr_print_spoolss_55
,
27538 sizeof(struct spoolss_56
),
27539 (ndr_push_flags_fn_t
) ndr_push_spoolss_56
,
27540 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_56
,
27541 (ndr_print_function_t
) ndr_print_spoolss_56
,
27546 sizeof(struct spoolss_57
),
27547 (ndr_push_flags_fn_t
) ndr_push_spoolss_57
,
27548 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_57
,
27549 (ndr_print_function_t
) ndr_print_spoolss_57
,
27554 sizeof(struct spoolss_XcvData
),
27555 (ndr_push_flags_fn_t
) ndr_push_spoolss_XcvData
,
27556 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_XcvData
,
27557 (ndr_print_function_t
) ndr_print_spoolss_XcvData
,
27561 "spoolss_AddPrinterDriverEx",
27562 sizeof(struct spoolss_AddPrinterDriverEx
),
27563 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriverEx
,
27564 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriverEx
,
27565 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriverEx
,
27570 sizeof(struct spoolss_5a
),
27571 (ndr_push_flags_fn_t
) ndr_push_spoolss_5a
,
27572 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5a
,
27573 (ndr_print_function_t
) ndr_print_spoolss_5a
,
27578 sizeof(struct spoolss_5b
),
27579 (ndr_push_flags_fn_t
) ndr_push_spoolss_5b
,
27580 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5b
,
27581 (ndr_print_function_t
) ndr_print_spoolss_5b
,
27586 sizeof(struct spoolss_5c
),
27587 (ndr_push_flags_fn_t
) ndr_push_spoolss_5c
,
27588 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5c
,
27589 (ndr_print_function_t
) ndr_print_spoolss_5c
,
27594 sizeof(struct spoolss_5d
),
27595 (ndr_push_flags_fn_t
) ndr_push_spoolss_5d
,
27596 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5d
,
27597 (ndr_print_function_t
) ndr_print_spoolss_5d
,
27602 sizeof(struct spoolss_5e
),
27603 (ndr_push_flags_fn_t
) ndr_push_spoolss_5e
,
27604 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5e
,
27605 (ndr_print_function_t
) ndr_print_spoolss_5e
,
27610 sizeof(struct spoolss_5f
),
27611 (ndr_push_flags_fn_t
) ndr_push_spoolss_5f
,
27612 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5f
,
27613 (ndr_print_function_t
) ndr_print_spoolss_5f
,
27616 { NULL
, 0, NULL
, NULL
, NULL
, false }
27619 static const char * const spoolss_endpoint_strings
[] = {
27620 "ncacn_np:[\\pipe\\spoolss]",
27623 static const struct ndr_interface_string_array spoolss_endpoints
= {
27625 .names
= spoolss_endpoint_strings
27628 static const char * const spoolss_authservice_strings
[] = {
27632 static const struct ndr_interface_string_array spoolss_authservices
= {
27634 .names
= spoolss_authservice_strings
27638 const struct ndr_interface_table ndr_table_spoolss
= {
27641 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
27642 NDR_SPOOLSS_VERSION
27644 .helpstring
= NDR_SPOOLSS_HELPSTRING
,
27646 .calls
= spoolss_calls
,
27647 .endpoints
= &spoolss_endpoints
,
27648 .authservices
= &spoolss_authservices